Skip to content

Commit 2015651

Browse files
committed
update unit test
1 parent f1891c6 commit 2015651

4 files changed

Lines changed: 82 additions & 4 deletions

File tree

tests/index.mock.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ export const mockWorker = () => {
1919
postMessage(msg: string) {
2020
this.onmessage(msg)
2121
}
22+
terminate() {
23+
console.log('stop')
24+
}
2225
}
2326

2427
global.window = Object.create(window)
@@ -44,3 +47,12 @@ export const mockFetch = () => {
4447
})
4548
}
4649
}
50+
51+
export const mockDateToLocaleDateString = () => {
52+
global.window = Object.create(window)
53+
Object.defineProperty(window, 'Date()', {
54+
value: {
55+
toLocaleDateString: () => '2023/1/18',
56+
},
57+
})
58+
}

tests/index.test.ts

Lines changed: 67 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,17 @@
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'
610
import {
711
mockCreateObjectUrl,
812
mockWorker,
913
mockSetInterval,
1014
mockFetch,
15+
mockDateToLocaleDateString,
1116
} from './index.mock'
1217

1318
test('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+
})

utils/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ export const createWorkerFunc = () => {
4040
export const cancelUpdateFunc = (cancelMode, newVersion, cancelUpdateAndStopWorker, worker) => {
4141
const cancelModeType = cancelMode || 'ignore-current-version';
4242
const cancelModeTypeValue = localStorage.getItem('version-rocket:cancelled') || '';
43-
const todayDate = new Date().toLocaleDateString() || '';
43+
const todayDate = new Date().toLocaleDateString();
4444
const cancelModeTypeValueInSession = sessionStorage.getItem('version-rocket:cancelled') || '';
4545
const isStopWorker = cancelUpdateAndStopWorker || false;
4646
switch (cancelModeType) {

utils/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,12 +45,12 @@ export const cancelUpdateFunc = (
4545
cancelMode: string | undefined,
4646
newVersion: string,
4747
cancelUpdateAndStopWorker: boolean | undefined,
48-
worker: Worker | undefined
48+
worker: Worker | undefined,
4949
) => {
5050
const cancelModeType = cancelMode || 'ignore-current-version'
5151
const cancelModeTypeValue =
5252
localStorage.getItem('version-rocket:cancelled') || ''
53-
const todayDate = new Date().toLocaleDateString() || ''
53+
const todayDate = new Date().toLocaleDateString()
5454
const cancelModeTypeValueInSession =
5555
sessionStorage.getItem('version-rocket:cancelled') || ''
5656
const isStopWorker = cancelUpdateAndStopWorker || false

0 commit comments

Comments
 (0)