2017-12-22 25 views
1

Ich suche nach Hilfe mit Komponententests für meine App, wo ich indexedDB verwende. Bevor ich die indexedDB-Funktionalität implementiert habe, waren die Tests korrekt. Aber jetzt, für alle von ihnen sehe ich einen Fehler:IndexedDB Testen mit Jest & Enzym - ReferenceError: indexedDB ist nicht definiert

ReferenceError: indexedDB is not defined 

Kann mir jemand einen Rat, wie dieser Fehler loswerden? Ich suchte nach Informationen und probierte verschiedene Methoden aus, um "Fenster" oder "indexedDB" nachzuahmen, aber ohne Ergebnis.

Danke.

Antwort

1

Dieses Problem ist aufgrund Dexie erwartet window.indexedDB zu definieren, dies ist nicht der Fall, wenn in einem kopflosen Modus (mit Jest) ausgeführt wird, die keinen wahren DOM oder window Bereich hat.

eine Lösung tief in den git Fragen Dexie gefunden was darauf schließen lässt:

const Dexie = require('dexie') 

Dexie.dependencies.indexedDB = require('fake-indexeddb') 
Dexie.dependencies.IDBKeyRange = require('fake-indexeddb/lib/FDBKeyRange') 

Wir haben auch Erfolg mit:

import Dexie from 'dexie'; 
import indexedDB from 'fake-indexeddb'; 

Dexie.dependencies.indexedDB = indexedDB; 

Link zum Original-Ausgabe: https://github.com/dfahlander/Dexie.js/issues/495

Or Entsprechend der Dokumentation können Sie die indexedDB-Option wie folgt angeben:

import Dexie from 'dexie'; 
import indexedDB from 'fake-indexeddb'; 

var db = new Dexie("MyDatabase", { indexedDB: indexedDB }); 

Link zur Dokumentation: http://dexie.org/docs/Dexie/Dexie