@@ -72,8 +72,38 @@ afterAll(() => {
7272
7373describe ( "useRemodels" , ( ) => {
7474 test ( "returns remodels data" , async ( ) => {
75+ const { result } = renderHook ( ( ) => useRemodels ( "test-brand-id" ) , {
76+ wrapper : createWrapper ( ) ,
77+ } ) ;
78+
79+ await waitFor ( ( ) => {
80+ expect ( result . current . isSuccess ) . toBe ( true ) ;
81+ } ) ;
82+
83+ expect ( result . current . data ) . toEqual ( {
84+ data : remodelsResponse ,
85+ success : true ,
86+ } ) ;
87+ } ) ;
88+
89+ test ( "returns remodels data with pageSize param" , async ( ) => {
90+ server . use (
91+ http . get (
92+ "/api/store/test-brand-id/models/remodel-allowlist" ,
93+ ( { request } ) => {
94+ const url = new URL ( request . url ) ;
95+
96+ expect ( url . searchParams . get ( "page-size" ) ) . toBe ( "10" ) ;
97+ return HttpResponse . json ( {
98+ data : remodelsResponse ,
99+ success : true ,
100+ } ) ;
101+ } ,
102+ ) ,
103+ ) ;
104+
75105 const { result } = renderHook (
76- ( ) => useRemodels ( "test-brand-id" , "test-to-model" ) ,
106+ ( ) => useRemodels ( "test-brand-id" , { pageSize : 10 } ) ,
77107 {
78108 wrapper : createWrapper ( ) ,
79109 } ,
@@ -89,9 +119,27 @@ describe("useRemodels", () => {
89119 } ) ;
90120 } ) ;
91121
92- test ( "returns error if request fails" , async ( ) => {
122+ test ( "returns remodels data with page param" , async ( ) => {
123+ server . use (
124+ http . get (
125+ "/api/store/test-brand-id/models/remodel-allowlist" ,
126+ ( { request } ) => {
127+ const url = new URL ( request . url ) ;
128+
129+ expect ( url . searchParams . get ( "page" ) ) . toBe ( "next_cursor_value" ) ;
130+ return HttpResponse . json ( {
131+ data : remodelsResponse ,
132+ success : true ,
133+ } ) ;
134+ } ,
135+ ) ,
136+ ) ;
137+
93138 const { result } = renderHook (
94- ( ) => useRemodels ( "test-brand-id-fail" , "test-to-model" ) ,
139+ ( ) =>
140+ useRemodels ( "test-brand-id" , {
141+ page : "next_cursor_value" ,
142+ } ) ,
95143 {
96144 wrapper : createWrapper ( ) ,
97145 } ,
@@ -102,19 +150,107 @@ describe("useRemodels", () => {
102150 } ) ;
103151
104152 expect ( result . current . data ) . toEqual ( {
105- message : "There was a problem fetching remodels" ,
106- success : false ,
153+ data : remodelsResponse ,
154+ success : true ,
107155 } ) ;
108156 } ) ;
109157
110- test ( "returns error if network error" , async ( ) => {
158+ test ( "returns remodels data with fromModel param" , async ( ) => {
159+ server . use (
160+ http . get (
161+ "/api/store/test-brand-id/models/remodel-allowlist" ,
162+ ( { request } ) => {
163+ const url = new URL ( request . url ) ;
164+
165+ expect ( url . searchParams . get ( "from-model" ) ) . toBe ( "test-from-model" ) ;
166+ return HttpResponse . json ( {
167+ data : remodelsResponse ,
168+ success : true ,
169+ } ) ;
170+ } ,
171+ ) ,
172+ ) ;
173+
174+ const { result } = renderHook (
175+ ( ) =>
176+ useRemodels ( "test-brand-id" , {
177+ fromModel : "test-from-model" ,
178+ } ) ,
179+ {
180+ wrapper : createWrapper ( ) ,
181+ } ,
182+ ) ;
183+
184+ await waitFor ( ( ) => {
185+ expect ( result . current . isSuccess ) . toBe ( true ) ;
186+ } ) ;
187+
188+ expect ( result . current . data ) . toEqual ( {
189+ data : remodelsResponse ,
190+ success : true ,
191+ } ) ;
192+ } ) ;
193+
194+ test ( "returns remodels data with pageSize, page and fromModel param" , async ( ) => {
195+ server . use (
196+ http . get (
197+ "/api/store/test-brand-id/models/remodel-allowlist" ,
198+ ( { request } ) => {
199+ const url = new URL ( request . url ) ;
200+
201+ expect ( url . searchParams . get ( "page-size" ) ) . toBe ( "25" ) ;
202+ expect ( url . searchParams . get ( "page" ) ) . toBe ( "cursor123" ) ;
203+ expect ( url . searchParams . get ( "from-model" ) ) . toBe ( "test-from-model" ) ;
204+ return HttpResponse . json ( {
205+ data : remodelsResponse ,
206+ success : true ,
207+ } ) ;
208+ } ,
209+ ) ,
210+ ) ;
211+
111212 const { result } = renderHook (
112- ( ) => useRemodels ( "test-brand-id-error" , "test-to-model" ) ,
213+ ( ) =>
214+ useRemodels ( "test-brand-id" , {
215+ pageSize : 25 ,
216+ page : "cursor123" ,
217+ fromModel : "test-from-model" ,
218+ } ) ,
113219 {
114220 wrapper : createWrapper ( ) ,
115221 } ,
116222 ) ;
117223
224+ await waitFor ( ( ) => {
225+ expect ( result . current . isSuccess ) . toBe ( true ) ;
226+ } ) ;
227+
228+ expect ( result . current . data ) . toEqual ( {
229+ data : remodelsResponse ,
230+ success : true ,
231+ } ) ;
232+ } ) ;
233+
234+ test ( "returns error if request fails" , async ( ) => {
235+ const { result } = renderHook ( ( ) => useRemodels ( "test-brand-id-fail" ) , {
236+ wrapper : createWrapper ( ) ,
237+ } ) ;
238+
239+ await waitFor ( ( ) => {
240+ expect ( result . current . isSuccess ) . toBe ( true ) ;
241+ } ) ;
242+
243+ expect ( result . current . data ) . toEqual ( {
244+ message : "There was a problem fetching remodels" ,
245+ success : false ,
246+ } ) ;
247+ } ) ;
248+
249+ test ( "returns error if network error" , async ( ) => {
250+ const { result } = renderHook ( ( ) => useRemodels ( "test-brand-id-error" ) , {
251+ wrapper : createWrapper ( ) ,
252+ } ) ;
253+
118254 await waitFor ( ( ) => {
119255 expect ( result . current . isError ) . toBe ( true ) ;
120256 } ) ;
0 commit comments