OSS探訪

Node.jsのテストでIndexedDB互換APIをメモリ上に再現する

スコアの見方

OSS規模スコアはStars・Watchers・Forks・Contributorsを対数圧縮して重み付けした現在の規模指標(上限なし)です。発掘スコアは現在のOSS規模スコアから発掘時点のOSS規模スコアを引いた値、更新ペースは直近30日Commit数、成長モメンタムは直近の観測期間におけるOSS規模スコア差、OSS健全度は取得できた更新状況・Community Health・Releaseの0〜100評価です。

Stars
695
主要言語
JavaScript
ライセンス
Apache-2.0
リポジトリ最終更新
2026/05/13
ページ内ナビ

概要

fake-indexeddbは、ブラウザのIndexedDB APIを純粋なJavaScriptでメモリ上に実装し、Node.jsのテストからIndexedDB依存コードを動かせるようにするライブラリです。fake-indexeddb/autoでグローバルAPIを用意する方法と、必要なオブジェクトだけを明示的に読み込む方法を選べます。

特徴と向いている用途

公式資料に基づく紹介・実機未検証 · 内容確認日:

主な特徴

IndexedDB APIをNode.jsのテスト環境へ持ち込む

indexedDB、IDBKeyRangeなどの主要APIをメモリ上で提供します。アプリ側のIndexedDBアクセス層をブラウザ外でテストしやすくし、データベースの作成・object store・index・cursorなどの処理を同じAPI形状で確認できます。

出典:[2]

グローバル登録と明示的な読み込みを使い分ける

最短ではfake-indexeddb/autoを読み込むだけでIndexedDB関連の変数をグローバルへ登録できます。グローバルを変更したくない場合はindexedDBやIDBKeyRangeを個別に読み込み、Dexieなどへ明示的に渡す構成も選べます。

出典:[2]

向いている用途

IndexedDBを使うフロントエンドの単体・結合テストに向く

Node.js上でIndexedDB依存コードを検証したい場合や、Jestなどのテスト環境でデータ層を再現したい場合に向きます。READMEではDexieなどのIndexedDBラッパーとの利用例も示されています。

出典:[2]

導入前の確認

永続化や実ブラウザとの完全一致を前提にしない

データはディスクへ永続化されず、実装はブラウザそのものではありません。ブラウザ固有の挙動、永続化、容量制限、複数タブ間の競合などが重要な機能は、実ブラウザを使うテストも併用してください。

出典:[2]

jsdomではstructuredCloneの有無を確認する

v5以降はstructuredCloneのpolyfillを同梱しません。古い環境や一部のjsdom構成では、READMEに記載されたpolyfillまたはカスタム環境の対応が必要です。

出典:[2]

参考にした公式資料

  1. [1]dumbmatter/fakeIndexedDB repository(2026-09-30)
  2. [2]fake-indexeddb README(2026-09-30)
  3. [3]fake-indexeddb Apache-2.0 license(2026-09-30)
編集部からの補足

Node.jsだけでデータ層のテストを速く回せる一方、永続化やブラウザ固有挙動まで再現するものではありません。単体・結合テストと実ブラウザテストの役割を分けると導入しやすいです。

3ステップで試す

  1. 1

    fake-indexeddbを開発依存へ追加

    公式READMEの手順で、Node.jsのテスト環境へfake-indexeddbを追加します。

    npm install --save-dev fake-indexeddb
  2. 2

    IndexedDB APIをテスト環境へ登録

    テストの先頭または共通セットアップで読み込み、indexedDBなどのAPIをグローバルへ用意します。

    import "fake-indexeddb/auto";
  3. 3

    テスト用データベースを開く

    アプリと同じIndexedDB APIで最小のデータベースを開き、object storeや読み書き処理をテストします。データはディスクへ永続化されません。

    const request = indexedDB.open("test", 1);
公式READMEで確認

成長

成長の推移 · 直近30日

695 Stars

推移データを蓄積中です。

開発アクティビティ

直近90日・週次

Commit(直近30日)
0
Open PR
0

開発アクティビティを蓄積中です。

Built with

カテゴリとタグ

GitHubデータ

GitHubのデータGitHubの詳細データを見る

GitHub Topics

  • indexeddb
  • ponyfill
  • shim
  • polyfill
Stars
695
Forks
79
Watchers
8
Open Issues
7
Contributors
16
所有者種別
User
主要言語
JavaScript
ライセンス
Apache-2.0
リポジトリ最終更新
2026/05/13

このOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。

情報の誤りを報告

掲載内容に誤りや古い情報があればお知らせください。

このページを読んで、次に何をすればよいか分かりましたか?