https://www.npmjs.com/package/fake-indexeddb
vite 버전과 충돌을 일으켜서 --legacy-peer-deps
옵션을 주어 설치했습니다.
npm install --save-dev fake-indexeddb --legacy-peer-deps
test 파일 상단에 import "fake-indexeddb/auto
를 추가하면 됩니다.
간단하게 indexedDB를 만들어 가져오는 유틸 함수를 만들고 테스트를 작성해 봅시다.
export default async function getIDB(name: string): Promise<IDBDatabase> {
return new Promise((resolve, reject) => {
const request = indexedDB.open(name);
request.onsuccess = () => {
resolve(request.result);
};
request.onerror = () => {
reject(null);
};
});
}
import "fake-indexeddb/auto";
import getIDB from "@/utils/getIDB";
import { test, expect } from "@jest/globals";
test("get DB", async () => {
const db = await getIDB("test");
expect(db).toBeInstanceOf(IDBDatabase);
});
vscode jest 익스텐션으로 수행한 테스트가 잘 동작하는 것을 확인할 수 있습니다.