|
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