在使用auth0进行身份验证的POST服务上实现Jest测试

问题描述 投票:0回答:1

我试图在我的node.js服务器上实现Jest测试但是我不确定如何测试使用auth0 ensureLoggedIn保护的POST服务,由于无法进行身份验证,我只得到302响应而不是预期200或400。

我最初尝试创建一个app.js的虚拟副本,其中ensureLoggedIn从服务声明中删除但是我被告知这不正确。我被指向了模拟函数的方向但是我不确定如何模拟auth0身份验证。

示例app.js

app.post('/secure', ensureLoggedIn, (req, res) => {
    -Process Request-
    if (Request Bad) {
        return res.sendStatus(400);
    }
    res.sendStatus(200);
});

示例test.js

describe('Test POST service /secure' () => {
    test('POST /secure with valid body' async() => {
        const update = {Valid JSON body};
        return request(app)
            .post('/secure')
            .send(update)
            .expect(200);
    });
})

现在,我希望这个测试失败,因为它没有经过身份验证。我的问题是,使用jest测试时使用auth0处理身份验证的正确方法是什么?

谢谢。

javascript node.js jestjs auth0
1个回答
0
投票

实际上在2017年有一篇与Auth0 and Jest testing有关的博客文章。回顾博客文章确实提供了一些例子来推断用Jest测试的时间。在使用模拟函数时,我还直接从Jest链接了下面的更多文档。我希望这可以帮助你完成任务!

https://jestjs.io/docs/en/mock-function-api

© www.soinside.com 2019 - 2024. All rights reserved.