如何在Jest测试中发送签名Cookie

rdlzhqv9  于 2023-01-28  发布在  Jest
关注(0)|答案(1)|浏览(174)

我正在我的Node.js/express应用程序中编写API测试,我需要向不同的API发出请求。路由器请求接收一个签名的cookie,以将cookie所有者添加为发布内容的所有者,或者标识用户/所有者。但显然我无法登录到服务器来获取所述cookie。
我在谷歌上搜索了一下,但没有找到任何与我相关的问题,那么有没有人知道如何在笑话测试中制作/模拟签名饼干?

2wnc66cl

2wnc66cl1#

cookie-parser库在幕后使用cookie-signature库,我假设你可以访问加密密钥或cookie秘密(在.env或任何地方),没有它,你不能签署你的cookie。
我使用supertest来处理请求。

import request from 'supertest';
import { unsign } from 'cookie-signature';
// If your key comes from .env
import dotenv from 'dotenv';
dotenv.config();

const baseURL = 'http://localhost:3000';
const key = process.env.COOKIE_SECRET; // Set your key here. Mine comes from .env

describe('My super awesome test group', () => {
  it('test some stuff', async () => {
    const res = await request(app)
        .get('/your-endpoint')
        .set('Cookie', `myCookie=s:${sign('my value', key)}`);
    expect(res.status).toBe(200);
    // Do other assertions
  });
});

希望能有所帮助:)

相关问题