File tree Expand file tree Collapse file tree 2 files changed +27
-0
lines changed Expand file tree Collapse file tree 2 files changed +27
-0
lines changed Original file line number Diff line number Diff line change @@ -652,6 +652,13 @@ export default class DownloadQueue {
652
652
async setActiveNetworkTypes ( types : string [ ] ) : Promise < void > {
653
653
this . verifyInitialized ( ) ;
654
654
655
+ if (
656
+ this . activeNetworkTypes . length === types . length &&
657
+ this . activeNetworkTypes . every ( type => types . includes ( type ) )
658
+ ) {
659
+ return ;
660
+ }
661
+
655
662
this . activeNetworkTypes = types ;
656
663
if ( this . netInfoFetchState ) {
657
664
const state = await this . netInfoFetchState ( ) ;
Original file line number Diff line number Diff line change @@ -1558,6 +1558,26 @@ describe("DownloadQueue", () => {
1558
1558
await expect ( queue . setActiveNetworkTypes ( [ "wifi" ] ) ) . rejects . toThrow ( ) ;
1559
1559
} ) ;
1560
1560
1561
+
1562
+ it ( "should do nothing when setting same active network types" , async ( ) => {
1563
+ const queue = new DownloadQueue ( ) ;
1564
+
1565
+ await queue . init ( {
1566
+ domain : "mydomain" ,
1567
+ activeNetworkTypes : [ "wifi" , "ethernet" ] ,
1568
+ netInfoAddEventListener : addEventListener ,
1569
+ netInfoFetchState : fetch ,
1570
+ } ) ;
1571
+ expect ( addEventListener ) . toHaveBeenCalledTimes ( 1 ) ;
1572
+ expect ( fetch ) . toHaveBeenCalledTimes ( 1 ) ;
1573
+
1574
+ await queue . setActiveNetworkTypes ( [ "ethernet" , "wifi" ] ) ;
1575
+ expect ( fetch ) . toHaveBeenCalledTimes ( 1 ) ; // no change
1576
+
1577
+ await queue . setActiveNetworkTypes ( [ "ethernet" , "wifi" , "cellular" ] ) ;
1578
+ expect ( fetch ) . toHaveBeenCalledTimes ( 2 ) ;
1579
+ } ) ;
1580
+
1561
1581
it ( "should update activeNetworkTypes to current conditions" , async ( ) => {
1562
1582
const queue = new DownloadQueue ( ) ;
1563
1583
const state = createNetState ( true ) ;
You can’t perform that action at this time.
0 commit comments