1
1
import type { Meta , Parameters , StoryObj } from "@storybook/react-vite" ;
2
- import { expect , screen , userEvent , within } from "storybook/test" ;
3
2
import { templateVersionRoot } from "api/queries/templates" ;
4
3
import type {
5
4
TemplateVersion ,
6
5
Workspace ,
7
6
WorkspaceBuild ,
8
7
} from "api/typesGenerated" ;
9
8
import { useQueryClient } from "react-query" ;
9
+ import { action } from "storybook/internal/actions" ;
10
+ import { expect , screen , userEvent , within } from "storybook/test" ;
10
11
import { MockTemplateVersion , MockWorkspace } from "testHelpers/entities" ;
11
12
import { BatchUpdateModalForm } from "./BatchUpdateModalForm" ;
12
13
import { ACTIVE_BUILD_STATUSES } from "./WorkspacesPage" ;
13
- import { action } from "storybook/internal/actions" ;
14
14
15
15
type Writeable < T > = { - readonly [ Key in keyof T ] : T [ Key ] } ;
16
16
type MutableWorkspace = Writeable < Omit < Workspace , "latest_build" > > & {
@@ -81,20 +81,19 @@ export const OnlyReadyToUpdate: Story = {
81
81
beforeEach : ( ctx ) => {
82
82
const { workspaces, queries } = createPatchedDependencies ( 3 ) ;
83
83
ctx . args = { ...ctx . args , workspacesToUpdate : workspaces } ;
84
- ctx . parameters = { ... ctx . parameters , queries } ;
84
+ ctx . parameters . queries = queries ;
85
85
} ,
86
86
} ;
87
87
88
88
export const NoWorkspacesToUpdate : Story = {
89
89
beforeEach : ( ctx ) => {
90
90
const { workspaces, queries } = createPatchedDependencies ( 3 ) ;
91
- for ( const ws of workspaces ) {
92
- const writable = ws as MutableWorkspace ;
93
- writable . outdated = false ;
94
- }
91
+ const notOutdated = workspaces . map < Workspace > ( ( ws ) => {
92
+ return { ...ws , outdated : false } ;
93
+ } ) ;
95
94
96
- ctx . args = { ...ctx . args , workspacesToUpdate : workspaces } ;
97
- ctx . parameters = { ... ctx . parameters , queries } ;
95
+ ctx . args = { ...ctx . args , workspacesToUpdate : notOutdated } ;
96
+ ctx . parameters . queries = queries ;
98
97
} ,
99
98
} ;
100
99
@@ -103,7 +102,7 @@ export const CurrentlyProcessing: Story = {
103
102
beforeEach : ( ctx ) => {
104
103
const { workspaces, queries } = createPatchedDependencies ( 3 ) ;
105
104
ctx . args = { ...ctx . args , workspacesToUpdate : workspaces } ;
106
- ctx . parameters = { ... ctx . parameters , queries } ;
105
+ ctx . parameters . queries = queries ;
107
106
} ,
108
107
} ;
109
108
@@ -120,15 +119,15 @@ export const OnlyDormantWorkspaces: Story = {
120
119
writable . dormant_at = new Date ( ) . toISOString ( ) ;
121
120
}
122
121
ctx . args = { ...ctx . args , workspacesToUpdate : workspaces } ;
123
- ctx . parameters = { ... ctx . parameters , queries } ;
122
+ ctx . parameters . queries = queries ;
124
123
} ,
125
124
} ;
126
125
127
126
export const FetchError : Story = {
128
127
beforeEach : ( ctx ) => {
129
128
const { workspaces, queries } = createPatchedDependencies ( 3 ) ;
130
129
ctx . args = { ...ctx . args , workspacesToUpdate : workspaces } ;
131
- ctx . parameters = { ... ctx . parameters , queries } ;
130
+ ctx . parameters . queries = queries ;
132
131
} ,
133
132
decorators : [
134
133
( Story , ctx ) => {
@@ -155,39 +154,45 @@ export const TransitioningWorkspaces: Story = {
155
154
const { workspaces, queries } = createPatchedDependencies (
156
155
2 * ACTIVE_BUILD_STATUSES . length ,
157
156
) ;
158
- for ( const [ i , ws ] of workspaces . entries ( ) ) {
157
+ const withUpdatedStatuses = workspaces . map < Workspace > ( ( ws , i ) => {
159
158
if ( i % 2 === 0 ) {
160
- continue ;
159
+ return ws ;
161
160
}
162
- const writable = ws . latest_build as Writeable < WorkspaceBuild > ;
163
- writable . status = ACTIVE_BUILD_STATUSES [ i % ACTIVE_BUILD_STATUSES . length ] ;
164
- }
165
- ctx . args = { ...ctx . args , workspacesToUpdate : workspaces } ;
166
- ctx . parameters = { ...ctx . parameters , queries } ;
161
+ return {
162
+ ...ws ,
163
+ latest_build : {
164
+ ...ws . latest_build ,
165
+ status : ACTIVE_BUILD_STATUSES [ i % ACTIVE_BUILD_STATUSES . length ] ,
166
+ } ,
167
+ } ;
168
+ } ) ;
169
+
170
+ ctx . args = { ...ctx . args , workspacesToUpdate : withUpdatedStatuses } ;
171
+ ctx . parameters . queries = queries ;
167
172
} ,
168
173
} ;
169
174
170
175
export const RunningWorkspaces : Story = {
171
176
beforeEach : ( ctx ) => {
172
177
const { workspaces, queries } = createPatchedDependencies ( 3 ) ;
173
- for ( const ws of workspaces ) {
174
- const writable = ws . latest_build as Writeable < WorkspaceBuild > ;
175
- writable . status = "running" ;
176
- }
177
- ctx . args = { ...ctx . args , workspacesToUpdate : workspaces } ;
178
- ctx . parameters = { ... ctx . parameters , queries } ;
178
+ const allRunning = workspaces . map < Workspace > ( ( ws ) => {
179
+ return { ... ws , status : "running" } ;
180
+ } ) ;
181
+
182
+ ctx . args = { ...ctx . args , workspacesToUpdate : allRunning } ;
183
+ ctx . parameters . queries = queries ;
179
184
} ,
180
185
} ;
181
186
182
187
export const RunningWorkspacesFailedValidation : Story = {
183
188
beforeEach : ( ctx ) => {
184
189
const { workspaces, queries } = createPatchedDependencies ( 3 ) ;
185
- for ( const ws of workspaces ) {
186
- const writable = ws . latest_build as Writeable < WorkspaceBuild > ;
187
- writable . status = "running" ;
188
- }
189
- ctx . args = { ...ctx . args , workspacesToUpdate : workspaces } ;
190
- ctx . parameters = { ... ctx . parameters , queries } ;
190
+ const allRunning = workspaces . map < Workspace > ( ( ws ) => {
191
+ return { ... ws , status : "running" } ;
192
+ } ) ;
193
+
194
+ ctx . args = { ...ctx . args , workspacesToUpdate : allRunning } ;
195
+ ctx . parameters . queries = queries ;
191
196
} ,
192
197
play : async ( ) => {
193
198
// Can't use canvasElement from the play function's context because the
@@ -270,6 +275,6 @@ export const MixOfWorkspaces: Story = {
270
275
noUpdatesNeededTransitioning . latest_build . status = "starting" ;
271
276
272
277
ctx . args = { ...ctx . args , workspacesToUpdate : workspaces } ;
273
- ctx . parameters = { ... ctx . parameters , queries } ;
278
+ ctx . parameters . queries = queries ;
274
279
} ,
275
280
} ;
0 commit comments