@@ -290,7 +290,7 @@ struct POSCatalogSyncRemoteTests {
290290 network. simulateResponse ( requestUrlSuffix: " products " , filename: " empty-data-array " )
291291
292292 // When loading page 1
293- let pagedProducts = try await remote. loadProducts ( siteID: sampleSiteID, pageNumber: 1 )
293+ let pagedProducts = try await remote. loadProducts ( siteID: sampleSiteID, pageNumber: 1 , allowCellular : true )
294294
295295 // Then there are more pages
296296 #expect( pagedProducts. hasMorePages == true )
@@ -304,7 +304,7 @@ struct POSCatalogSyncRemoteTests {
304304 let pageNumber = 2
305305
306306 // When
307- _ = try ? await remote. loadProducts ( siteID: sampleSiteID, pageNumber: pageNumber)
307+ _ = try ? await remote. loadProducts ( siteID: sampleSiteID, pageNumber: pageNumber, allowCellular : true )
308308
309309 // Then
310310 let queryParametersDictionary = try #require( network. queryParametersDictionary as? [ String : any Hashable ] )
@@ -321,7 +321,7 @@ struct POSCatalogSyncRemoteTests {
321321
322322 // When
323323 network. simulateResponse ( requestUrlSuffix: " products " , filename: " products-load-pos " )
324- let pagedProducts = try await remote. loadProducts ( siteID: sampleSiteID, pageNumber: 1 )
324+ let pagedProducts = try await remote. loadProducts ( siteID: sampleSiteID, pageNumber: 1 , allowCellular : true )
325325
326326 // Then
327327 #expect( pagedProducts. items. count == expectedProductsCount)
@@ -338,7 +338,7 @@ struct POSCatalogSyncRemoteTests {
338338
339339 // When/Then
340340 await #expect( throws: NetworkError . notFound ( ) ) {
341- try await remote. loadProducts ( siteID: sampleSiteID, pageNumber: 1 )
341+ try await remote. loadProducts ( siteID: sampleSiteID, pageNumber: 1 , allowCellular : true )
342342 }
343343 }
344344
@@ -350,7 +350,7 @@ struct POSCatalogSyncRemoteTests {
350350 let pageNumber = 3
351351
352352 // When
353- _ = try ? await remote. loadProductVariations ( siteID: sampleSiteID, pageNumber: pageNumber)
353+ _ = try ? await remote. loadProductVariations ( siteID: sampleSiteID, pageNumber: pageNumber, allowCellular : true )
354354
355355 // Then
356356 let queryParametersDictionary = try #require( network. queryParametersDictionary as? [ String : any Hashable ] )
@@ -366,7 +366,7 @@ struct POSCatalogSyncRemoteTests {
366366
367367 // When
368368 network. simulateResponse ( requestUrlSuffix: " variations " , filename: " product-variations-load-pos " )
369- let pagedVariations = try await remote. loadProductVariations ( siteID: sampleSiteID, pageNumber: 1 )
369+ let pagedVariations = try await remote. loadProductVariations ( siteID: sampleSiteID, pageNumber: 1 , allowCellular : true )
370370
371371 // Then
372372 #expect( pagedVariations. items. count == 1 )
@@ -383,7 +383,7 @@ struct POSCatalogSyncRemoteTests {
383383
384384 // When/Then
385385 await #expect( throws: NetworkError . notFound ( ) ) {
386- try await remote. loadProductVariations ( siteID: sampleSiteID, pageNumber: 1 )
386+ try await remote. loadProductVariations ( siteID: sampleSiteID, pageNumber: 1 , allowCellular : true )
387387 }
388388 }
389389
@@ -394,7 +394,7 @@ struct POSCatalogSyncRemoteTests {
394394 network. simulateResponse ( requestUrlSuffix: " variations " , filename: " empty-data-array " )
395395
396396 // When loading page 1
397- let pagedVariations = try await remote. loadProductVariations ( siteID: sampleSiteID, pageNumber: 1 )
397+ let pagedVariations = try await remote. loadProductVariations ( siteID: sampleSiteID, pageNumber: 1 , allowCellular : true )
398398
399399 // Then there are more pages
400400 #expect( pagedVariations. hasMorePages == true )
@@ -598,7 +598,7 @@ struct POSCatalogSyncRemoteTests {
598598 let remote = POSCatalogSyncRemote ( network: network)
599599
600600 // When
601- _ = try ? await remote. requestCatalogGeneration ( for: sampleSiteID, forceGeneration: false )
601+ _ = try ? await remote. requestCatalogGeneration ( for: sampleSiteID, forceGeneration: false , allowCellular : true )
602602
603603 // Then
604604 let queryParametersDictionary = try #require( network. queryParametersDictionary as? [ String : any Hashable ] )
@@ -612,7 +612,7 @@ struct POSCatalogSyncRemoteTests {
612612
613613 // When
614614 network. simulateResponse ( requestUrlSuffix: " catalog " , filename: " pos-catalog-generation " )
615- let response = try await remote. requestCatalogGeneration ( for: sampleSiteID, forceGeneration: false )
615+ let response = try await remote. requestCatalogGeneration ( for: sampleSiteID, forceGeneration: false , allowCellular : true )
616616
617617 // Then
618618 #expect( response. status == . complete)
@@ -625,7 +625,7 @@ struct POSCatalogSyncRemoteTests {
625625
626626 // When/Then
627627 await #expect( throws: NetworkError . notFound ( ) ) {
628- try await remote. requestCatalogGeneration ( for: sampleSiteID, forceGeneration: false )
628+ try await remote. requestCatalogGeneration ( for: sampleSiteID, forceGeneration: false , allowCellular : true )
629629 }
630630 }
631631
@@ -743,4 +743,51 @@ struct POSCatalogSyncRemoteTests {
743743 let urlRequest = try #require( network. requestsForResponseData. last as? URLRequest )
744744 #expect( urlRequest. allowsCellularAccess == allowCellular)
745745 }
746+
747+ // MARK: - Full Sync allowCellular Tests
748+
749+ @Test ( arguments: [ true , false ] )
750+ func requestCatalogGeneration_sets_allowsCellularAccess_on_request( allowCellular: Bool ) async throws {
751+ // Given
752+ let remote = POSCatalogSyncRemote ( network: network)
753+ network. simulateResponse ( requestUrlSuffix: " catalog " , filename: " pos-catalog-generation " )
754+
755+ // When
756+ _ = try await remote. requestCatalogGeneration ( for: sampleSiteID, forceGeneration: false , allowCellular: allowCellular)
757+
758+ // Then
759+ let jetpackRequest = try #require( network. requestsForResponseData. last as? JetpackRequest )
760+ let urlRequest = try jetpackRequest. asURLRequest ( )
761+ #expect( urlRequest. allowsCellularAccess == allowCellular)
762+ }
763+
764+ @Test ( arguments: [ true , false ] )
765+ func loadProducts_fullSync_sets_allowsCellularAccess_on_request( allowCellular: Bool ) async throws {
766+ // Given
767+ let remote = POSCatalogSyncRemote ( network: network)
768+ network. simulateResponse ( requestUrlSuffix: " products " , filename: " empty-data-array " )
769+
770+ // When
771+ _ = try await remote. loadProducts ( siteID: sampleSiteID, pageNumber: 1 , allowCellular: allowCellular)
772+
773+ // Then
774+ let jetpackRequest = try #require( network. requestsForResponseData. last as? JetpackRequest )
775+ let urlRequest = try jetpackRequest. asURLRequest ( )
776+ #expect( urlRequest. allowsCellularAccess == allowCellular)
777+ }
778+
779+ @Test ( arguments: [ true , false ] )
780+ func loadProductVariations_fullSync_sets_allowsCellularAccess_on_request( allowCellular: Bool ) async throws {
781+ // Given
782+ let remote = POSCatalogSyncRemote ( network: network)
783+ network. simulateResponse ( requestUrlSuffix: " variations " , filename: " empty-data-array " )
784+
785+ // When
786+ _ = try await remote. loadProductVariations ( siteID: sampleSiteID, pageNumber: 1 , allowCellular: allowCellular)
787+
788+ // Then
789+ let jetpackRequest = try #require( network. requestsForResponseData. last as? JetpackRequest )
790+ let urlRequest = try jetpackRequest. asURLRequest ( )
791+ #expect( urlRequest. allowsCellularAccess == allowCellular)
792+ }
746793}
0 commit comments