import axios from 'axios'; import { config } from '../../config'; const base = "http://localhost:" + config.internal_port let axios_config = {}; beforeAll(async () => { jest.setTimeout(20000); const res = await axios.post(base + '/api/auth/login', { username: "demo", password: "demo" }); let access_token = res.data["access_token"]; axios_config = { headers: { "authorization": "Bearer " + access_token }, validateStatus: undefined }; }); describe('POST /api/users valid', () => { it('valid user creation with minimal parameters should return 200', async () => { const res = await axios.post(base + '/api/users', { "firstname": "demo_createASD123", "lastname": "demo_createASD123", "password": "demo_createASD123", "email": "demo_createASD123@dev.lauf-fuer-kaya.de" }, axios_config); expect(res.status).toEqual(200); }); it('valid user creation with all parameters should return 200', async () => { const res = await axios.post(base + '/api/users', { "firstname": "demo_createASD123_2", "middlename": "demo_createASD123_2", "lastname": "demo_createASD123_2", "username": "demo_createASD123_2", "password": "demo_createASD123_2", "email": "demo_createASD123_2@dev.lauf-fuer-kaya.de" }, axios_config); expect(res.status).toEqual(200); }); }); // --------------- describe('POST /api/users invalid -> 400', () => { it('user creation w/o firstname should return 400', async () => { const res = await axios.post(base + '/api/users', { "lastname": "demo_createASD123_3", "password": "demo_createASD123_3", "email": "demo_createASD123_3@dev.lauf-fuer-kaya.de" }, axios_config); expect(res.status).toEqual(400); }); it('user creation w/o lastname should return 400', async () => { const res = await axios.post(base + '/api/users', { "firstname": "demo_createASD123_3", "password": "demo_createASD123_3", "email": "demo_createASD123_3@dev.lauf-fuer-kaya.de" }, axios_config); expect(res.status).toEqual(400); }); it('user creation w/o password should return 400', async () => { const res = await axios.post(base + '/api/users', { "firstname": "demo_createASD123_3", "lastname": "demo_createASD123_3", "email": "demo_createASD123_3@dev.lauf-fuer-kaya.de" }, axios_config); expect(res.status).toEqual(400); }); it('user creation w/o email should return 400', async () => { const res = await axios.post(base + '/api/users', { "firstname": "demo_createASD123_3", "lastname": "demo_createASD123_3", "password": "demo_createASD123_3" }, axios_config); expect(res.status).toEqual(400); }); }); // --------------- describe('POST /api/users invalid -> Password errors', () => { it('user creation w/ invalid password -> No numbers should return 406', async () => { const res = await axios.post(base + '/api/users', { "firstname": "demo_createASD123_4", "lastname": "demo_createASD123_4", "password": "demo_createASD", "email": "demo_createASD123_4@dev.lauf-fuer-kaya.de" }, axios_config); expect(res.status).toEqual(406); }); it('user creation w/ invalid password -> No uppercase should return 406', async () => { const res = await axios.post(base + '/api/users', { "firstname": "demo_createASD123_4", "lastname": "demo_createASD123_4", "password": "demo_create_4", "email": "demo_createASD123_4@dev.lauf-fuer-kaya.de" }, axios_config); expect(res.status).toEqual(406); }); it('user creation w/ invalid password -> No lowercase should return 406', async () => { const res = await axios.post(base + '/api/users', { "firstname": "demo_createASD123_4", "lastname": "demo_createASD123_4", "password": "DEMO123123ASD", "email": "demo_createASD123_4@dev.lauf-fuer-kaya.de" }, axios_config); expect(res.status).toEqual(406); }); it('user creation w/ invalid password -> Too short should return 406', async () => { const res = await axios.post(base + '/api/users', { "firstname": "demo_createASD123_4", "lastname": "demo_createASD123_4", "password": "1Aa_", "email": "demo_createASD123_4@dev.lauf-fuer-kaya.de" }, axios_config); expect(res.status).toEqual(406); }); });