如何在使用firebase进行社交登录的反应应用程序中使用赛普拉斯测试经过身份验证的页面?

时间:2018-02-15 06:26:21

标签: reactjs firebase firebase-authentication cypress

当我需要在经过身份验证的页面上测试某些内容时,我会在挂钩之前使用以下内容:

beforeEach('login', () => {
    cy.visit('/protected', {
      onBeforeLoad: (win) => {
        win.localStorage.setItem(user1.key, user1.token);
      },
    });
    cy.on('uncaught:exception', (err, runnable) => {
      console.error(err);
      return false;
    });
  });

user.1从'../fixtures/testUsers'导入,我在其中复制并粘贴了浏览器存储中的键和值对。

要获取键值对,我使用社交帐户登录,然后打开开发工具中的Application标签,打开左侧面板中的Local Storage,然后复制密钥和其中包含字符串firebase:authUser...的值。

有效。

更重要的是,它允许我使用两个不同的帐户登录,获取两组不同的用户密钥,然后在我的测试中模拟它们之间的交互。

但至少可以说,它感觉很糟糕。

这种方法有什么问题吗?有没有'适当'的方法来做到这一点?

0 个答案:

没有答案