mirror of
https://github.com/koloml/furbooru-tagging-assistant.git
synced 2025-12-23 23:02:58 +00:00
Added initial implementation of mocks for chrome StorageArea, adding first tests for storage helper
This commit is contained in:
40
tests/lib/browser/StorageHelper.spec.ts
Normal file
40
tests/lib/browser/StorageHelper.spec.ts
Normal file
@@ -0,0 +1,40 @@
|
||||
import ChromeStorageArea from "$tests/mocks/ChromeStorageArea";
|
||||
import StorageHelper from "$lib/browser/StorageHelper";
|
||||
import { expect } from "vitest";
|
||||
|
||||
describe('StorageHelper', () => {
|
||||
let storageAreaMock: ChromeStorageArea;
|
||||
let storageHelper: StorageHelper;
|
||||
|
||||
beforeEach(() => {
|
||||
storageAreaMock = new ChromeStorageArea();
|
||||
storageHelper = new StorageHelper(storageAreaMock);
|
||||
});
|
||||
|
||||
it("should return value when data exists", async () => {
|
||||
const key = 'existingKey';
|
||||
const value = 'test value';
|
||||
|
||||
storageAreaMock.insertMockedData({[key]: value});
|
||||
|
||||
expect(await storageHelper.read(key)).toBe(value);
|
||||
});
|
||||
|
||||
it('should return default when data is not present', async () => {
|
||||
const fallbackValue = 'fallback';
|
||||
|
||||
expect(await storageHelper.read('nonexistent', fallbackValue)).toBe(fallbackValue);
|
||||
});
|
||||
|
||||
it('should treat falsy values as existing values', async () => {
|
||||
const falsyValues = [false, '', 0];
|
||||
const key = 'testedKey';
|
||||
const fallbackValue = 'fallback';
|
||||
|
||||
for (let testedValue of falsyValues) {
|
||||
storageAreaMock.insertMockedData({[key]: testedValue});
|
||||
|
||||
expect(await storageHelper.read(key, fallbackValue)).toBe(testedValue);
|
||||
}
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user