1
1
import type { Meta , StoryObj } from "@storybook/react" ;
2
2
import { expect , spyOn , userEvent , within } from "@storybook/test" ;
3
+ import { API } from "api/api" ;
4
+ import { MockUsers } from "pages/UsersPage/storybookData/users" ;
3
5
import {
4
6
MockTemplate ,
5
7
MockUserOwner ,
@@ -21,6 +23,12 @@ const meta: Meta<typeof TasksPage> = {
21
23
parameters : {
22
24
user : MockUserOwner ,
23
25
} ,
26
+ beforeEach : ( ) => {
27
+ spyOn ( API , "getUsers" ) . mockResolvedValue ( {
28
+ users : MockUsers ,
29
+ count : MockUsers . length ,
30
+ } ) ;
31
+ } ,
24
32
} ;
25
33
26
34
export default meta ;
@@ -62,7 +70,8 @@ export const LoadingTasks: Story = {
62
70
const canvas = within ( canvasElement ) ;
63
71
64
72
await step ( "Select the first AI template" , async ( ) => {
65
- const combobox = await canvas . findByRole ( "combobox" ) ;
73
+ const form = await canvas . findByRole ( "form" ) ;
74
+ const combobox = await within ( form ) . findByRole ( "combobox" ) ;
66
75
expect ( combobox ) . toHaveTextContent ( MockTemplate . display_name ) ;
67
76
} ) ;
68
77
} ,
@@ -94,37 +103,40 @@ export const LoadedTasks: Story = {
94
103
} ,
95
104
} ;
96
105
106
+ const newTaskData = {
107
+ prompt : "Create a new task" ,
108
+ workspace : {
109
+ ...MockWorkspace ,
110
+ id : "workspace-4" ,
111
+ latest_app_status : {
112
+ ...MockWorkspaceAppStatus ,
113
+ message : "Task created successfully!" ,
114
+ } ,
115
+ } ,
116
+ } ;
117
+
97
118
export const CreateTaskSuccessfully : Story = {
98
119
decorators : [ withProxyProvider ( ) ] ,
99
120
beforeEach : ( ) => {
100
121
spyOn ( data , "fetchAITemplates" ) . mockResolvedValue ( [ MockTemplate ] ) ;
101
- spyOn ( data , "fetchTasks" ) . mockResolvedValue ( MockTasks ) ;
102
- spyOn ( data , "createTask" ) . mockImplementation ( ( prompt : string ) => {
103
- return Promise . resolve ( {
104
- prompt,
105
- workspace : {
106
- ...MockWorkspace ,
107
- latest_app_status : {
108
- ...MockWorkspaceAppStatus ,
109
- message : "Task created successfully!" ,
110
- } ,
111
- } ,
112
- } ) ;
113
- } ) ;
122
+ spyOn ( data , "fetchTasks" )
123
+ . mockResolvedValueOnce ( MockTasks )
124
+ . mockResolvedValue ( [ newTaskData , ...MockTasks ] ) ;
125
+ spyOn ( data , "createTask" ) . mockResolvedValue ( newTaskData ) ;
114
126
} ,
115
127
play : async ( { canvasElement, step } ) => {
116
128
const canvas = within ( canvasElement ) ;
117
129
118
130
await step ( "Run task" , async ( ) => {
119
131
const prompt = await canvas . findByLabelText ( / p r o m p t / i) ;
120
- await userEvent . type ( prompt , "Create a new task" ) ;
132
+ await userEvent . type ( prompt , newTaskData . prompt ) ;
121
133
const submitButton = canvas . getByRole ( "button" , { name : / r u n t a s k / i } ) ;
122
134
await userEvent . click ( submitButton ) ;
123
135
} ) ;
124
136
125
137
await step ( "Verify task in the table" , async ( ) => {
126
138
await canvas . findByRole ( "row" , {
127
- name : / c r e a t e a n e w t a s k / i ,
139
+ name : new RegExp ( newTaskData . prompt , "i" ) ,
128
140
} ) ;
129
141
} ) ;
130
142
} ,
0 commit comments