mirror of
https://github.com/bitwarden/browser.git
synced 2024-09-13 01:58:44 +02:00
[PM-6426] Adding jest tests for added BrowserApi methods
This commit is contained in:
parent
c903e0a0b0
commit
338042b0e4
@ -550,4 +550,66 @@ describe("BrowserApi", () => {
|
||||
expect(callbackMock).toHaveBeenCalled();
|
||||
});
|
||||
});
|
||||
|
||||
describe("clearAlarm", () => {
|
||||
it("clears the alarm with the provided name", async () => {
|
||||
const alarmName = "alarm-name";
|
||||
chrome.alarms.clear = jest.fn().mockImplementation((name, callback) => callback(true));
|
||||
|
||||
const wasCleared = await BrowserApi.clearAlarm(alarmName);
|
||||
|
||||
expect(chrome.alarms.clear).toHaveBeenCalledWith(alarmName, expect.any(Function));
|
||||
expect(wasCleared).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
describe("clearAllAlarms", () => {
|
||||
it("clears all alarms", async () => {
|
||||
chrome.alarms.clearAll = jest.fn().mockImplementation((callback) => callback(true));
|
||||
|
||||
const wasCleared = await BrowserApi.clearAllAlarms();
|
||||
|
||||
expect(chrome.alarms.clearAll).toHaveBeenCalledWith(expect.any(Function));
|
||||
expect(wasCleared).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
describe("createAlarm", () => {
|
||||
it("creates an alarm", async () => {
|
||||
const alarmName = "alarm-name";
|
||||
const alarmInfo = { when: 1000 };
|
||||
chrome.alarms.create = jest
|
||||
.fn()
|
||||
.mockImplementation((_name, _createInfo, callback) => callback());
|
||||
|
||||
await BrowserApi.createAlarm(alarmName, alarmInfo);
|
||||
|
||||
expect(chrome.alarms.create).toHaveBeenCalledWith(alarmName, alarmInfo, expect.any(Function));
|
||||
});
|
||||
});
|
||||
|
||||
describe("getAlarm", () => {
|
||||
it("gets the alarm by name", async () => {
|
||||
const alarmName = "alarm-name";
|
||||
const alarmMock = mock<chrome.alarms.Alarm>();
|
||||
chrome.alarms.get = jest.fn().mockImplementation((_name, callback) => callback(alarmMock));
|
||||
|
||||
const receivedAlarm = await BrowserApi.getAlarm(alarmName);
|
||||
|
||||
expect(chrome.alarms.get).toHaveBeenCalledWith(alarmName, expect.any(Function));
|
||||
expect(receivedAlarm).toBe(alarmMock);
|
||||
});
|
||||
});
|
||||
|
||||
describe("getAllAlarms", () => {
|
||||
it("gets all registered alarms", async () => {
|
||||
const alarms = [mock<chrome.alarms.Alarm>(), mock<chrome.alarms.Alarm>()];
|
||||
chrome.alarms.getAll = jest.fn().mockImplementation((callback) => callback(alarms));
|
||||
|
||||
const receivedAlarms = await BrowserApi.getAllAlarms();
|
||||
|
||||
expect(chrome.alarms.getAll).toHaveBeenCalledWith(expect.any(Function));
|
||||
expect(receivedAlarms).toBe(alarms);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
@ -592,22 +592,46 @@ export class BrowserApi {
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Clears a new alarm with the given name and create info. Returns a promise
|
||||
* that indicates when the alarm has been cleared successfully.
|
||||
*
|
||||
* @param alarmName - The name of the alarm to create.
|
||||
*/
|
||||
static clearAlarm(alarmName: string): Promise<boolean> {
|
||||
return new Promise((resolve) => chrome.alarms.clear(alarmName, resolve));
|
||||
}
|
||||
|
||||
/**
|
||||
* Clears all alarms that have been set by the extension. Returns a promise
|
||||
* that indicates when all alarms have been cleared successfully.
|
||||
*/
|
||||
static clearAllAlarms(): Promise<boolean> {
|
||||
return new Promise((resolve) => chrome.alarms.clearAll(resolve));
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a new alarm with the given name and create info.
|
||||
*
|
||||
* @param name - The name of the alarm to create.
|
||||
* @param createInfo - The creation info for the alarm.
|
||||
*/
|
||||
static createAlarm(name: string, createInfo: chrome.alarms.AlarmCreateInfo): Promise<void> {
|
||||
return new Promise((resolve) => chrome.alarms.create(name, createInfo, resolve));
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the alarm with the given name.
|
||||
*
|
||||
* @param alarmName - The name of the alarm to get.
|
||||
*/
|
||||
static getAlarm(alarmName: string): Promise<chrome.alarms.Alarm> {
|
||||
return new Promise((resolve) => chrome.alarms.get(alarmName, resolve));
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets all alarms that have been set by the extension.
|
||||
*/
|
||||
static getAllAlarms(): Promise<chrome.alarms.Alarm[]> {
|
||||
return new Promise((resolve) => chrome.alarms.getAll(resolve));
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user