Я передаю свой токен аутентификации через Cook-only HTTP ie в моем Nest JS API.
Таким образом, при написании некоторых тестов E2E для моих конечных точек Auth, у меня проблема с файлами cookie не там, где я их ожидаю.
Вот мой урезанный тестовый код:
describe('auth/logout', () => {
it('should log out a user', async (done) => {
// ... code to create user account
const loginResponse: Response = await request(app.getHttpServer())
.post('/auth/login')
.send({ username: newUser.email, password });
// get cookie manually from response.headers['set-cookie']
const cookie = getCookieFromHeaders(loginResponse);
// Log out the new user
const logoutResponse: Response = await request(app.getHttpServer())
.get('/auth/logout')
.set('Cookie', [cookie]);
});
});
В моей стратегии JWT я использую собственный анализатор cook ie , У меня проблема в том, что request.cookies
всегда undefined
, когда он попадает в парсер. Тем не менее, повар ie будет присутствовать в request.headers
.
Я следую примеру ручного приготовления ie из этой статьи Medium: https://medium.com/@juha.a.hytonen / testing-authenticated-запросы- with-supertest-325ccf47c2bb , и в объекте запроса, по-видимому, отсутствуют другие методы для установки файлов cookie.
Если я проверяю ту же функциональность в Postman, все работает должным образом. Что я делаю не так?