10
10
'use strict' ;
11
11
12
12
import { clearDOM } from '@symfony/stimulus-testing' ;
13
- import { initLiveComponent , startStimulus } from '../tools' ;
13
+ import { initLiveComponent , mockRerender , startStimulus } from '../tools' ;
14
14
import { getByLabelText , waitFor } from '@testing-library/dom' ;
15
15
import userEvent from '@testing-library/user-event' ;
16
16
import fetchMock from 'fetch-mock-jest' ;
@@ -114,9 +114,8 @@ describe('LiveController data-model Tests', () => {
114
114
delete inputElement . dataset . model ;
115
115
inputElement . setAttribute ( 'name' , 'name' ) ;
116
116
117
- fetchMock . getOnce ( 'end:?name=Ryan+WEAVER' , {
118
- html : template ( { name : 'Ryan Weaver' } ) ,
119
- data : { name : 'Ryan Weaver' }
117
+ mockRerender ( { name : 'Ryan WEAVER' } , template , ( data ) => {
118
+ data . name = 'Ryan Weaver' ;
120
119
} ) ;
121
120
122
121
await userEvent . type ( inputElement , ' WEAVER' ) ;
@@ -137,10 +136,9 @@ describe('LiveController data-model Tests', () => {
137
136
inputElement . setAttribute ( 'name' , 'first_name' ) ;
138
137
139
138
// ?name should be what's sent to the server
140
- fetchMock . getOnce ( 'end:?name=Ryan+WEAVER' , {
141
- html : template ( { name : 'Ryan Weaver' } ) ,
142
- data : { name : 'Ryan Weaver' }
143
- } ) ;
139
+ mockRerender ( { name : 'Ryan WEAVER' } , template , ( data ) => {
140
+ data . name = 'Ryan Weaver' ;
141
+ } )
144
142
145
143
await userEvent . type ( inputElement , ' WEAVER' ) ;
146
144
@@ -172,9 +170,8 @@ describe('LiveController data-model Tests', () => {
172
170
const inputElement = getByLabelText ( element , 'First Name:' ) ;
173
171
174
172
const newData = { user : { firstName : 'Ryan Weaver' } } ;
175
- fetchMock . getOnce ( 'end:?user%5BfirstName%5D=Ryan+WEAVER' , {
176
- html : deeperModelTemplate ( newData ) ,
177
- data : newData
173
+ mockRerender ( { 'user' : { firstName : 'Ryan WEAVER' } } , deeperModelTemplate , ( data ) => {
174
+ data . user . firstName = 'Ryan Weaver' ;
178
175
} ) ;
179
176
180
177
await userEvent . type ( inputElement , ' WEAVER' ) ;
@@ -206,9 +203,8 @@ describe('LiveController data-model Tests', () => {
206
203
const data = { firstName : 'Ryan' } ;
207
204
const { element } = await startStimulus ( parentUpdateTemplate ( data ) ) ;
208
205
209
- fetchMock . getOnce ( 'end:?firstName=Ryan+WEAVER' , {
210
- html : parentUpdateTemplate ( { firstName : 'Ryan Weaver' } ) ,
211
- data : { firstName : 'Ryan Weaver' }
206
+ mockRerender ( { firstName : 'Ryan WEAVER' } , parentUpdateTemplate , ( data ) => {
207
+ data . firstName = 'Ryan Weaver' ;
212
208
} ) ;
213
209
214
210
const inputElement = getByLabelText ( element , 'Name:' ) ;
@@ -227,9 +223,8 @@ describe('LiveController data-model Tests', () => {
227
223
const data = { name : 'Ryan' , validatedFields : [ 'otherField' ] } ;
228
224
const { element } = await startStimulus ( template ( data ) ) ;
229
225
230
- fetchMock . getOnce ( 'end:?name=Ryan+WEAVER&validatedFields%5B0%5D=otherField&validatedFields%5B1%5D=name' , {
231
- html : template ( { name : 'Ryan Weaver' } ) ,
232
- data : { name : 'Ryan Weaver' }
226
+ mockRerender ( { name : 'Ryan WEAVER' , validatedFields : [ 'otherField' , 'name' ] } , template , ( data ) => {
227
+ data . name = 'Ryan Weaver' ;
233
228
} ) ;
234
229
235
230
const inputElement = getByLabelText ( element , 'Name:' ) ;
@@ -240,7 +235,4 @@ describe('LiveController data-model Tests', () => {
240
235
// assert all calls were done the correct number of times
241
236
fetchMock . done ( ) ;
242
237
} ) ;
243
-
244
- // TODO - test changing debounce
245
- // TODO - test deferred rendering
246
238
} ) ;
0 commit comments