From f9f60e7c594e1c2ec94cadff647aaad44b5e0172 Mon Sep 17 00:00:00 2001 From: Cesar Gonzalez Date: Tue, 2 Apr 2024 16:13:49 -0500 Subject: [PATCH] [PM-6426] Adding jest tests to the BrowserApi implementation --- .../src/platform/browser/browser-api.spec.ts | 74 +++++++++++++++++++ 1 file changed, 74 insertions(+) diff --git a/apps/browser/src/platform/browser/browser-api.spec.ts b/apps/browser/src/platform/browser/browser-api.spec.ts index ff66fa468b..d26f4cae79 100644 --- a/apps/browser/src/platform/browser/browser-api.spec.ts +++ b/apps/browser/src/platform/browser/browser-api.spec.ts @@ -552,6 +552,21 @@ describe("BrowserApi", () => { }); describe("clearAlarm", () => { + it("uses the browser.alarms API if it is available", async () => { + const alarmName = "alarm-name"; + globalThis.browser = { + // eslint-disable-next-line + // @ts-ignore + alarms: { + clear: jest.fn(), + }, + }; + + await BrowserApi.clearAlarm(alarmName); + + expect(browser.alarms.clear).toHaveBeenCalledWith(alarmName); + }); + it("clears the alarm with the provided name", async () => { const alarmName = "alarm-name"; @@ -563,6 +578,20 @@ describe("BrowserApi", () => { }); describe("clearAllAlarms", () => { + it("uses the browser.alarms API if it is available", async () => { + globalThis.browser = { + // eslint-disable-next-line + // @ts-ignore + alarms: { + clearAll: jest.fn(), + }, + }; + + await BrowserApi.clearAllAlarms(); + + expect(browser.alarms.clearAll).toHaveBeenCalled(); + }); + it("clears all alarms", async () => { const wasCleared = await BrowserApi.clearAllAlarms(); @@ -572,6 +601,22 @@ describe("BrowserApi", () => { }); describe("createAlarm", () => { + it("uses the browser.alarms API if it is available", async () => { + const alarmName = "alarm-name"; + const alarmInfo = { when: 1000 }; + globalThis.browser = { + // eslint-disable-next-line + // @ts-ignore + alarms: { + create: jest.fn(), + }, + }; + + await BrowserApi.createAlarm(alarmName, alarmInfo); + + expect(browser.alarms.create).toHaveBeenCalledWith(alarmName, alarmInfo); + }); + it("creates an alarm", async () => { const alarmName = "alarm-name"; const alarmInfo = { when: 1000 }; @@ -583,6 +628,21 @@ describe("BrowserApi", () => { }); describe("getAlarm", () => { + it("uses the browser.alarms API if it is available", async () => { + const alarmName = "alarm-name"; + globalThis.browser = { + // eslint-disable-next-line + // @ts-ignore + alarms: { + get: jest.fn(), + }, + }; + + await BrowserApi.getAlarm(alarmName); + + expect(browser.alarms.get).toHaveBeenCalledWith(alarmName); + }); + it("gets the alarm by name", async () => { const alarmName = "alarm-name"; const alarmMock = mock(); @@ -596,6 +656,20 @@ describe("BrowserApi", () => { }); describe("getAllAlarms", () => { + it("uses the browser.alarms API if it is available", async () => { + globalThis.browser = { + // eslint-disable-next-line + // @ts-ignore + alarms: { + getAll: jest.fn(), + }, + }; + + await BrowserApi.getAllAlarms(); + + expect(browser.alarms.getAll).toHaveBeenCalled(); + }); + it("gets all registered alarms", async () => { const alarms = [mock(), mock()]; chrome.alarms.getAll = jest.fn().mockImplementation((callback) => callback(alarms));