59 lines
2.4 KiB
TypeScript
59 lines
2.4 KiB
TypeScript
import axios from 'axios';
|
|
import { config } from '../../config';
|
|
|
|
const base = "http://localhost:" + config.internal_port
|
|
|
|
const axios_config = {
|
|
validateStatus: undefined
|
|
};;
|
|
|
|
beforeAll(async () => {
|
|
const res_login = await axios.post(base + '/api/auth/login', { username: "demo", password: "demo" });
|
|
await axios.post(base + '/api/users', {
|
|
"firstname": "demo_logout",
|
|
"middlename": "demo_logout",
|
|
"lastname": "demo_logout",
|
|
"username": "demo_logout",
|
|
"password": "demo_logout",
|
|
"email": "demo_logout@dev.lauf-fuer-kaya.de"
|
|
}, {
|
|
headers: { "authorization": "Bearer " + res_login.data["access_token"] },
|
|
validateStatus: undefined
|
|
});
|
|
});
|
|
|
|
describe('POST /api/auth/logout valid', () => {
|
|
let refresh_coookie;
|
|
it('valid logout with token in cookie should return 200', async () => {
|
|
const res_login = await axios.post(base + '/api/auth/login', { username: "demo_logout", password: "demo_logout" });
|
|
refresh_coookie = res_login.headers["set-cookie"];
|
|
const res = await axios.post(base + '/api/auth/logout', null, {
|
|
headers: { "Cookie": refresh_coookie },
|
|
validateStatus: undefined
|
|
});
|
|
expect(res.status).toEqual(200);
|
|
});
|
|
it('valid logout with token in body should return 200', async () => {
|
|
const res_login = await axios.post(base + '/api/auth/login', { username: "demo_logout", password: "demo_logout" });
|
|
const res = await axios.post(base + '/api/auth/logout', { token: res_login.data["refresh_token"] }, axios_config);
|
|
expect(res.status).toEqual(200);
|
|
});
|
|
it('getting users after valid logout should return 401', async () => {
|
|
const res = await axios.get(base + '/api/users', {
|
|
headers: { "Cookie": refresh_coookie },
|
|
validateStatus: undefined
|
|
});
|
|
expect(res.status).toEqual(401);
|
|
});
|
|
});
|
|
// ---------------
|
|
describe('POST /api/auth/logout ivalid', () => {
|
|
it('invalid logout without token should return 406', async () => {
|
|
const res = await axios.post(base + '/api/auth/logout', null, axios_config);
|
|
expect(res.status).toEqual(406);
|
|
});
|
|
it('invalid logout with invalid token in body should return 401', async () => {
|
|
const res = await axios.post(base + '/api/auth/logout', { token: "1" }, axios_config);
|
|
expect(res.status).toEqual(401);
|
|
});
|
|
}); |