Skip to content

Commit 062524e

Browse files
committed
feat(testing): add register test
1 parent 8c72995 commit 062524e

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed

test/register.test.ts

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
import { JSDOM } from "jsdom"
2+
import { registerServiceWorker } from "../src/browser/register"
3+
const { window } = new JSDOM()
4+
global.window = (window as unknown) as Window & typeof globalThis
5+
global.document = window.document
6+
global.navigator = window.navigator
7+
8+
describe("register", () => {
9+
const spy = jest.fn()
10+
beforeAll(() => {
11+
// register relies on navigator to be defined globally
12+
// this is because the code is called on the browser
13+
// so we're sure it will be defined
14+
// We have to cast/assert so that TS thinks it's the correct type
15+
Object.defineProperty(global.navigator, "serviceWorker", {
16+
value: {
17+
register: spy,
18+
},
19+
})
20+
// global.navigator.serviceWorker.register = (spy as unknown) as ServiceWorkerContainer["register"]
21+
})
22+
23+
afterEach(() => {
24+
jest.resetAllMocks()
25+
})
26+
27+
afterAll(() => {
28+
jest.restoreAllMocks()
29+
})
30+
it("should register a ServiceWorker", () => {
31+
// call registerServiceWorker
32+
const path = "/hello"
33+
const mockOptions = {
34+
base: "",
35+
csStaticBase: "",
36+
logLevel: 0,
37+
}
38+
registerServiceWorker(navigator, path, mockOptions)
39+
// expect spy to have been called
40+
expect(spy).toHaveBeenCalled()
41+
expect(spy).toHaveBeenCalledTimes(1)
42+
})
43+
})

0 commit comments

Comments
 (0)