Jest Test - текущая среда не поддерживает указанный тип персистентности - PullRequest
0 голосов
/ 08 декабря 2018

Я использую jest для запуска некоторых тестов в своем приложении Create React с Firebase Web SDK в сочетании с FirebaseUI

Всякий раз, когда я пытаюсь запустить некоторые тесты с --env = jsdom - я сталкиваюсь с: The current environment does not support the specified persistence type. кажетсясвязанные с Auth

Есть ли какие-либо известные проблемы / обходные пути?код, кажется, работает / компилируется должным образом, кроме тестов.

Google мало чем помог

Вот тест, довольно простой.Нужно добавить import "firebase/storage"; из-за этого: firebase.storage () не является функцией в шутливых тестах

Заранее спасибо

import React from "react";

import Enzyme from "enzyme";
import Adapter from "enzyme-adapter-react-16";
import "firebase/storage";
import {filterIngredientsToRemove} from "./shoppingList-reducer";

Enzyme.configure({adapter: new Adapter()});

describe("", () => {
    let shoppingList;
    let recipeId;

    beforeEach(() => {
        shoppingList = {
            shoppingListItems: {
                "1234": {ingredientId: 987, name: "patate", recipeId: 1234},
                "2345": {ingredientId: 987, name: "patate", recipeId: 5432}
            },
            shoppingListRecipes: {
                "1234": {portion: 3}
            }
        };

        recipeId = 1234;
    });

    it("should filter out the shoppinglistItems with the provided recipeId", () => {
        const result = filterIngredientsToRemove(recipeId, shoppingList.shoppingListItems);
        expect(result).toEqual([{ingredientId: 987, name: "patate", recipeId: 1234}]);
    });
});

1 Ответ

0 голосов
/ 19 марта 2019

Вы устанавливаете постоянство в своей конфигурации Firebase?Постоянство не поддерживается в тестовой среде, поэтому вы можете сделать что-то вроде этого, чтобы обойти это:

firebase.auth().setPersistence(process.env.NODE_ENV === 'test' 
  ? firebase.auth.Auth.Persistence.NONE 
  : firebase.auth.Auth.Persistence.LOCAL);
...