22 * @jest -environment jsdom
33 */
44
5- import { createWorker , createWorkerFunc } from '../utils/index'
5+ import {
6+ createWorker ,
7+ createWorkerFunc ,
8+ cancelUpdateFunc ,
9+ } from '../utils/index'
610import {
711 mockCreateObjectUrl ,
812 mockWorker ,
913 mockSetInterval ,
1014 mockFetch ,
15+ mockDateToLocaleDateString ,
1116} from './index.mock'
1217
1318test ( 'create web worker' , ( ) => {
@@ -24,10 +29,71 @@ test('create worker function', () => {
2429 data : {
2530 'version-key' : '1.1.0' ,
2631 'polling-time' : 0 ,
32+ immediate : true ,
2733 'origin-version-file-url' : 'https://www.example.com' ,
2834 } ,
2935 } )
3036 temp . postMessage = ( obj : { refreshPageVersion : string } ) => {
3137 expect ( typeof obj === 'object' && obj . refreshPageVersion ) . toBeTruthy ( )
3238 }
3339} )
40+
41+ test ( 'cancel update function' , ( ) => {
42+ mockWorker ( )
43+ const worker = new Worker ( 'https://test.com' )
44+
45+ // ignore-current-version -> true
46+ localStorage . setItem ( 'version-rocket:cancelled' , '1.0.0' )
47+ expect (
48+ cancelUpdateFunc ( 'ignore-current-version' , '1.0.0' , true , worker ) ,
49+ ) . toBeTruthy ( )
50+ expect (
51+ cancelUpdateFunc ( 'ignore-current-version' , '1.0.0' , true , undefined ) ,
52+ ) . toBeTruthy ( )
53+
54+ // ignore-current-version -> false
55+ localStorage . setItem ( 'version-rocket:cancelled' , '1.1.0' )
56+ expect (
57+ cancelUpdateFunc ( 'ignore-current-version' , '1.0.0' , false , worker ) ,
58+ ) . toBeFalsy ( )
59+
60+ // ignore-today -> true
61+ mockDateToLocaleDateString ( )
62+ localStorage . setItem ( 'version-rocket:cancelled' , '2023/1/18' )
63+ expect ( cancelUpdateFunc ( 'ignore-today' , '1.0.0' , true , worker ) ) . toBeTruthy ( )
64+ expect (
65+ cancelUpdateFunc ( 'ignore-today' , '1.0.0' , true , undefined ) ,
66+ ) . toBeTruthy ( )
67+
68+ // ignore-today -> false
69+ localStorage . setItem ( 'version-rocket:cancelled' , '2023/1/19' )
70+ expect ( cancelUpdateFunc ( 'ignore-today' , '1.0.0' , false , worker ) ) . toBeFalsy ( )
71+
72+ // ignore-current-version -> true
73+ sessionStorage . setItem ( 'version-rocket:cancelled' , 'true' )
74+ expect (
75+ cancelUpdateFunc ( 'ignore-current-window' , '1.0.0' , true , worker ) ,
76+ ) . toBeTruthy ( )
77+ expect (
78+ cancelUpdateFunc ( 'ignore-current-window' , '1.0.0' , true , undefined ) ,
79+ ) . toBeTruthy ( )
80+
81+ // ignore-current-version -> false
82+ sessionStorage . setItem ( 'version-rocket:cancelled' , '' )
83+ expect (
84+ cancelUpdateFunc ( 'ignore-current-window' , '1.0.0' , false , worker ) ,
85+ ) . toBeFalsy ( )
86+
87+ // default
88+ expect ( cancelUpdateFunc ( 'ignore-test' , '1.0.0' , false , worker ) ) . toBeFalsy ( )
89+
90+ // no args
91+ localStorage . setItem ( 'version-rocket:cancelled' , '1.1.0' )
92+ expect ( cancelUpdateFunc ( undefined , '' , undefined , undefined ) ) . toBeFalsy ( )
93+
94+ localStorage . setItem ( 'version-rocket:cancelled' , '' )
95+ expect ( cancelUpdateFunc ( 'ignore-today' , '' , undefined , undefined ) ) . toBeFalsy ( )
96+
97+ sessionStorage . setItem ( 'version-rocket:cancelled' , '' )
98+ expect ( cancelUpdateFunc ( 'ignore-today' , '' , undefined , undefined ) ) . toBeFalsy ( )
99+ } )
0 commit comments