|
| 1 | +/* eslint-disable no-useless-escape */ |
1 | 2 | import api from '../../api/api' |
2 | 3 | import MockAdapter from 'axios-mock-adapter' |
3 | 4 | import { render, screen, waitFor } from '@testing-library/react' |
@@ -132,7 +133,7 @@ describe('<PlayerProps />', () => { |
132 | 133 | await userEvent.click(screen.getByText('New property')) |
133 | 134 |
|
134 | 135 | await userEvent.type(screen.getByPlaceholderText('Property'), 'treasuresDiscovered') |
135 | | - await userEvent.type(screen.getByDisplayValue(''), '5') |
| 136 | + await userEvent.type(screen.getAllByPlaceholderText('Value').at(-1)!, '5') |
136 | 137 |
|
137 | 138 | expect(screen.getByDisplayValue('treasuresDiscovered')).toBeInTheDocument() |
138 | 139 | expect(screen.getByDisplayValue('5')).toBeInTheDocument() |
@@ -261,7 +262,7 @@ describe('<PlayerProps />', () => { |
261 | 262 | await userEvent.click(screen.getByText('New property')) |
262 | 263 |
|
263 | 264 | await userEvent.type(screen.getByPlaceholderText('Property'), 'treasuresDiscovered') |
264 | | - await userEvent.type(screen.getByDisplayValue(''), '5') |
| 265 | + await userEvent.type(screen.getAllByPlaceholderText('Value').at(-1)!, '5') |
265 | 266 |
|
266 | 267 | await userEvent.click(screen.getByText('Save changes')) |
267 | 268 |
|
@@ -329,4 +330,31 @@ describe('<PlayerProps />', () => { |
329 | 330 | expect(screen.getByText('SCREEN WIDTH')).toBeInTheDocument() |
330 | 331 | expect(screen.getByText('1920')).toBeInTheDocument() |
331 | 332 | }) |
| 333 | + |
| 334 | + it('should add props from JSON input', async () => { |
| 335 | + render( |
| 336 | + <KitchenSink |
| 337 | + states={[ |
| 338 | + { node: activeGameState, initialValue: { id: 1 } }, |
| 339 | + { node: userState, initialValue: userValue } |
| 340 | + ]} |
| 341 | + routePath='/:id' |
| 342 | + initialEntries={[{ pathname: `/${basePlayer.id}`, state: { player: basePlayer } }]} |
| 343 | + > |
| 344 | + <PlayerProps /> |
| 345 | + </KitchenSink> |
| 346 | + ) |
| 347 | + |
| 348 | + await userEvent.click(screen.getByLabelText('Import props')) |
| 349 | + await userEvent.paste(JSON.stringify({ |
| 350 | + speed: '100', |
| 351 | + strength: '50' |
| 352 | + })) |
| 353 | + await userEvent.click(screen.getByText('Parse JSON')) |
| 354 | + |
| 355 | + expect(screen.getByDisplayValue('speed')).toBeInTheDocument() |
| 356 | + expect(screen.getByDisplayValue('100')).toBeInTheDocument() |
| 357 | + expect(screen.getByDisplayValue('strength')).toBeInTheDocument() |
| 358 | + expect(screen.getByDisplayValue('50')).toBeInTheDocument() |
| 359 | + }) |
332 | 360 | }) |
0 commit comments