|
1 | | -// import { rest } from 'msw'; |
2 | | -// import { setupServer } from 'msw/node'; |
3 | | -// import React from 'react'; |
4 | | -// import lodash from 'lodash'; |
5 | | -// import { Provider } from 'react-redux'; // Import the Provider from react-redux |
6 | | -// import { createStore, applyMiddleware } from 'redux'; |
7 | | -// import thunk from 'redux-thunk'; |
8 | | - |
9 | | -// import { |
10 | | -// fireEvent, |
11 | | -// reduxRender, |
12 | | -// screen, |
13 | | -// waitFor |
14 | | -// } from '../../../../test-utils'; |
15 | | -// import { selectProjectName } from '../../selectors/project'; |
16 | | -// import ToolbarComponent from './Toolbar'; |
17 | | -// import rootReducer from '../../../../reducers'; |
18 | | - |
19 | | -// const server = setupServer( |
20 | | -// rest.put(`/projects/id`, (req, res, ctx) => res(ctx.json(req.body))) |
21 | | -// ); |
22 | | - |
23 | | -// beforeAll(() => server.listen()); |
24 | | -// afterEach(() => server.resetHandlers()); |
25 | | -// afterAll(() => server.close()); |
26 | | - |
27 | | -// // Set up the Redux store with the root reducer and thunk middleware |
28 | | -// const store = createStore(rootReducer, applyMiddleware(thunk)); |
29 | | - |
30 | | -// const renderComponent = (extraState = {}) => { |
31 | | -// const initialState = lodash.merge( |
32 | | -// { |
33 | | -// ide: { |
34 | | -// isPlaying: false |
35 | | -// }, |
36 | | -// user: { |
37 | | -// authenticated: true, |
38 | | -// username: 'me', |
39 | | -// id: 'userId' |
40 | | -// }, |
41 | | -// project: { |
42 | | -// name: 'testname', |
43 | | -// id: 'id', |
44 | | -// owner: { |
45 | | -// username: 'me', |
46 | | -// id: 'userId' |
47 | | -// } |
48 | | -// } |
49 | | -// }, |
50 | | -// extraState |
51 | | -// ); |
52 | | - |
53 | | -// const props = { |
54 | | -// syncFileContent: jest.fn() |
55 | | -// }; |
56 | | - |
57 | | -// return { |
58 | | -// ...props, |
59 | | -// ...reduxRender( |
60 | | -// <Provider store={store}> |
61 | | -// <ToolbarComponent {...props} /> |
62 | | -// </Provider>, |
63 | | -// { initialState } |
64 | | -// ) |
65 | | -// }; |
66 | | -// }; |
67 | | - |
68 | | -// describe('<ToolbarComponent />', () => { |
69 | | -// it('sketch owner can switch to sketch name editing mode', async () => { |
70 | | -// renderComponent(); |
71 | | -// const sketchName = screen.getByLabelText('Edit sketch name'); |
72 | | - |
73 | | -// fireEvent.click(sketchName); |
74 | | - |
75 | | -// await waitFor(() => { |
76 | | -// expect(screen.getByLabelText('New sketch name')).toHaveFocus(); |
77 | | -// expect(screen.getByLabelText('New sketch name')).toBeEnabled(); |
78 | | -// }); |
79 | | -// }); |
80 | | - |
81 | | -// it("non-owner can't switch to sketch editing mode", async () => { |
82 | | -// renderComponent({ user: { username: 'not-me', id: 'not-me' } }); |
83 | | -// const sketchName = screen.getByLabelText('Edit sketch name'); |
84 | | - |
85 | | -// fireEvent.click(sketchName); |
86 | | - |
87 | | -// expect(sketchName).toBeDisabled(); |
88 | | -// await waitFor(() => |
89 | | -// expect(screen.getByLabelText('New sketch name')).toBeDisabled() |
90 | | -// ); |
91 | | -// }); |
92 | | - |
93 | | -// it("sketch owner can't change to empty name", async () => { |
94 | | -// renderComponent(); |
95 | | -// const sketchNameInput = screen.getByLabelText('New sketch name'); |
96 | | -// fireEvent.change(sketchNameInput, { target: { value: '' } }); |
97 | | -// fireEvent.blur(sketchNameInput); |
98 | | - |
99 | | -// await waitFor(() => |
100 | | -// expect(selectProjectName(store.getState())).toBe('testname') |
101 | | -// ); |
102 | | -// }); |
103 | | - |
104 | | -// it('sketch owner can change name', async () => { |
105 | | -// renderComponent(); |
106 | | -// const sketchNameInput = screen.getByLabelText('New sketch name'); |
107 | | -// fireEvent.change(sketchNameInput, { |
108 | | -// target: { value: 'my new sketch name' } |
109 | | -// }); |
110 | | -// fireEvent.blur(sketchNameInput); |
111 | | - |
112 | | -// await waitFor(() => |
113 | | -// expect(selectProjectName(store.getState())).toBe('my new sketch name') |
114 | | -// ); |
115 | | -// }); |
116 | | - |
117 | | -// it('sketch is stopped when stop button is clicked', async () => { |
118 | | -// renderComponent(); |
119 | | -// const stopButton = screen.getByLabelText('Stop sketch'); |
120 | | - |
121 | | -// fireEvent.click(stopButton); |
122 | | - |
123 | | -// await waitFor(() => expect(store.getState().ide.isPlaying).toBe(false)); |
124 | | -// }); |
125 | | - |
126 | | -// it('sketch is started when play button is clicked', async () => { |
127 | | -// renderComponent(); |
128 | | -// const playButton = screen.getByLabelText('Play only visual sketch'); |
129 | | -// fireEvent.click(playButton); |
130 | | - |
131 | | -// await waitFor(() => expect(store.getState().ide.isPlaying).toBe(true)); |
132 | | -// }); |
133 | | - |
134 | | -// it('sketch content is synched when play button is clicked', async () => { |
135 | | -// const props = renderComponent(); |
136 | | -// const playButton = screen.getByLabelText('Play only visual sketch'); |
137 | | -// fireEvent.click(playButton); |
138 | | - |
139 | | -// await waitFor(() => expect(props.syncFileContent).toHaveBeenCalled()); |
140 | | -// }); |
141 | | -// }); |
142 | | - |
143 | 1 | import { rest } from 'msw'; |
144 | 2 | import { setupServer } from 'msw/node'; |
145 | 3 | import React from 'react'; |
@@ -216,7 +74,7 @@ describe('<ToolbarComponent />', () => { |
216 | 74 |
|
217 | 75 | expect(sketchName).toBeDisabled(); |
218 | 76 | await waitFor(() => |
219 | | - expect(screen.getByLabelText('New sketch name')).toBeDisabled() |
| 77 | + expect(screen.getByLabelText('New sketch name').disabled).toBe(true) |
220 | 78 | ); |
221 | 79 | }); |
222 | 80 |
|
|
0 commit comments