1010'use strict' ;
1111
1212import { clearDOM } from '@symfony/stimulus-testing' ;
13- import { initLiveComponent , startStimulus } from '../tools' ;
13+ import { initLiveComponent , mockRerender , startStimulus } from '../tools' ;
1414import { getByLabelText , waitFor } from '@testing-library/dom' ;
1515import userEvent from '@testing-library/user-event' ;
1616import fetchMock from 'fetch-mock-jest' ;
@@ -114,9 +114,8 @@ describe('LiveController data-model Tests', () => {
114114 delete inputElement . dataset . model ;
115115 inputElement . setAttribute ( 'name' , 'name' ) ;
116116
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' ;
120119 } ) ;
121120
122121 await userEvent . type ( inputElement , ' WEAVER' ) ;
@@ -137,10 +136,9 @@ describe('LiveController data-model Tests', () => {
137136 inputElement . setAttribute ( 'name' , 'first_name' ) ;
138137
139138 // ?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+ } )
144142
145143 await userEvent . type ( inputElement , ' WEAVER' ) ;
146144
@@ -172,9 +170,8 @@ describe('LiveController data-model Tests', () => {
172170 const inputElement = getByLabelText ( element , 'First Name:' ) ;
173171
174172 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' ;
178175 } ) ;
179176
180177 await userEvent . type ( inputElement , ' WEAVER' ) ;
@@ -206,9 +203,8 @@ describe('LiveController data-model Tests', () => {
206203 const data = { firstName : 'Ryan' } ;
207204 const { element } = await startStimulus ( parentUpdateTemplate ( data ) ) ;
208205
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' ;
212208 } ) ;
213209
214210 const inputElement = getByLabelText ( element , 'Name:' ) ;
@@ -227,9 +223,8 @@ describe('LiveController data-model Tests', () => {
227223 const data = { name : 'Ryan' , validatedFields : [ 'otherField' ] } ;
228224 const { element } = await startStimulus ( template ( data ) ) ;
229225
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' ;
233228 } ) ;
234229
235230 const inputElement = getByLabelText ( element , 'Name:' ) ;
@@ -240,7 +235,4 @@ describe('LiveController data-model Tests', () => {
240235 // assert all calls were done the correct number of times
241236 fetchMock . done ( ) ;
242237 } ) ;
243-
244- // TODO - test changing debounce
245- // TODO - test deferred rendering
246238} ) ;
0 commit comments