axios-with-cookies
Version:
Fork of axios-cookiejar-support with configurable http(s)-agent
74 lines (55 loc) • 1.9 kB
text/typescript
import test from 'ava';
import axios from 'axios';
import { CookieJar } from 'tough-cookie';
import { wrapper } from '../';
import { createTestServer } from './helpers';
test.before(() => {
wrapper(axios);
});
test.serial.afterEach.always(() => {
delete axios.defaults.jar;
});
test.serial('should store cookies to cookiejar when default.jar was assigned', async (t) => {
const { port } = await createTestServer([
(_req, res) => {
res.setHeader('Set-Cookie', 'key=value');
res.end();
},
]);
const jar = new CookieJar();
axios.defaults.jar = jar;
await axios.get(`http://localhost:${port}`);
const cookies = await jar.getCookies(`http://localhost:${port}`);
t.like(cookies, {
0: { key: 'key', value: 'value' },
});
t.plan(1);
});
test.serial('should send cookies from cookiejar when default.jar was assigned', async (t) => {
const { port } = await createTestServer([
(req, res) => {
t.is(req.headers['cookie'], 'key=value');
res.end();
},
]);
const jar = new CookieJar();
axios.defaults.jar = jar;
await jar.setCookie('key=value', `http://localhost:${port}`);
await axios.get(`http://localhost:${port}`);
t.plan(1);
});
test.serial('should use config.cookiejar in preference to default.jar', async (t) => {
const { port } = await createTestServer([
(req, res) => {
t.is(req.headers['cookie'], 'key=config');
res.end();
},
]);
const defaultJar = new CookieJar();
axios.defaults.jar = defaultJar;
await defaultJar.setCookie('key=default', `http://localhost:${port}`);
const configJar = new CookieJar();
await configJar.setCookie('key=config', `http://localhost:${port}`);
await axios.get(`http://localhost:${port}`, { jar: configJar });
t.plan(1);
});