玩笑测试-当前环境不支持指定的持久性类型

Mat*_*lon 5 firebase jestjs firebaseui

我使用Jest在结合Firebase Web SDK和FirebaseUI的Create React App上运行一些测试

每当我尝试使用--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}]);
    });
});
Run Code Online (Sandbox Code Playgroud)

小智 5

您是否在 Firebase 配置中设置了持久性?测试环境不支持持久化,所以你可以做这样的事情来规避它:

firebase.auth().setPersistence(process.env.NODE_ENV === 'test' 
  ? firebase.auth.Auth.Persistence.NONE 
  : firebase.auth.Auth.Persistence.LOCAL);
Run Code Online (Sandbox Code Playgroud)