From 01b17175917a3a8f04ec327242cd65d3735ec9d3 Mon Sep 17 00:00:00 2001 From: Roland Bernard <rolbernard@unibz.it> Date: Sun, 23 May 2021 21:05:35 +0200 Subject: [PATCH] Fixed the UUIDs and added some tests for the user endpoints --- server/src/setupTests.ts | 216 ++++++++++++++++++------------------- server/src/v1/auth.test.ts | 12 +-- server/src/v1/user.test.ts | 41 ++++++- 3 files changed, 150 insertions(+), 119 deletions(-) diff --git a/server/src/setupTests.ts b/server/src/setupTests.ts index 4329df1..b0858c7 100644 --- a/server/src/setupTests.ts +++ b/server/src/setupTests.ts @@ -7,14 +7,14 @@ async function loadTestData() { await database('users') .insert([ { - id: '00000000-0000-0000-0000-000000000000', + id: '00000000-0000-4000-8000-000000000000', user_name: 'user0', passwd_hash: '$2b$10$sjHhJNz4sLNclKEwWISZRe4cVju6jn4QjMVs4wdZ6wug2SKG774pq', email: 'test0@example.com', real_name: 'Testing Tester', image: null, }, { - id: '00000000-0000-0000-0000-000000000001', + id: '00000000-0000-4000-8000-000000000001', user_name: 'user1', passwd_hash: '$2b$10$sjHhJNz4sLNclKEwWISZRe4cVju6jn4QjMVs4wdZ6wug2SKG774pq', email: 'test1@example.com', @@ -25,74 +25,74 @@ async function loadTestData() { await database('teams') .insert([ { - id: '00000000-0000-0000-0000-000000000000', + id: '00000000-0000-4000-8000-000000000000', name: 'Team0', }, { - id: '00000000-0000-0000-0000-000000000001', + id: '00000000-0000-4000-8000-000000000001', name: 'Team1', }, { - id: '00000000-0000-0000-0000-000000000002', + id: '00000000-0000-4000-8000-000000000002', name: 'Team2', } ]); await database('roles') .insert([ { - id: '00000000-0000-0000-0000-000000000000', - team_id: '00000000-0000-0000-0000-000000000000', + id: '00000000-0000-4000-8000-000000000000', + team_id: '00000000-0000-4000-8000-000000000000', name: 'Role0', }, { - id: '00000000-0000-0000-0000-000000000001', - team_id: '00000000-0000-0000-0000-000000000001', + id: '00000000-0000-4000-8000-000000000001', + team_id: '00000000-0000-4000-8000-000000000001', name: 'Role1', }, { - id: '00000000-0000-0000-0000-000000000002', - team_id: '00000000-0000-0000-0000-000000000002', + id: '00000000-0000-4000-8000-000000000002', + team_id: '00000000-0000-4000-8000-000000000002', name: 'Role2', }, { - id: '00000000-0000-0000-0000-000000000003', - team_id: '00000000-0000-0000-0000-000000000002', + id: '00000000-0000-4000-8000-000000000003', + team_id: '00000000-0000-4000-8000-000000000002', name: 'Role3', } ]); await database('team_members') .insert([ { - user_id: '00000000-0000-0000-0000-000000000000', - team_id: '00000000-0000-0000-0000-000000000000', - role_id: '00000000-0000-0000-0000-000000000000', + user_id: '00000000-0000-4000-8000-000000000000', + team_id: '00000000-0000-4000-8000-000000000000', + role_id: '00000000-0000-4000-8000-000000000000', }, { - user_id: '00000000-0000-0000-0000-000000000001', - team_id: '00000000-0000-0000-0000-000000000001', - role_id: '00000000-0000-0000-0000-000000000001', + user_id: '00000000-0000-4000-8000-000000000001', + team_id: '00000000-0000-4000-8000-000000000001', + role_id: '00000000-0000-4000-8000-000000000001', }, { - user_id: '00000000-0000-0000-0000-000000000000', - team_id: '00000000-0000-0000-0000-000000000002', - role_id: '00000000-0000-0000-0000-000000000002', + user_id: '00000000-0000-4000-8000-000000000000', + team_id: '00000000-0000-4000-8000-000000000002', + role_id: '00000000-0000-4000-8000-000000000002', }, { - user_id: '00000000-0000-0000-0000-000000000001', - team_id: '00000000-0000-0000-0000-000000000002', - role_id: '00000000-0000-0000-0000-000000000003', + user_id: '00000000-0000-4000-8000-000000000001', + team_id: '00000000-0000-4000-8000-000000000002', + role_id: '00000000-0000-4000-8000-000000000003', } ]); await database('projects') .insert([ { - id: '00000000-0000-0000-0000-000000000000', + id: '00000000-0000-4000-8000-000000000000', name: 'Project0', text: 'Project0 Text', color: '#00f', status: 'open', deadline: new Date('2020-10-10'), }, { - id: '00000000-0000-0000-0000-000000000001', + id: '00000000-0000-4000-8000-000000000001', name: 'Project1', text: 'Project1 Text', color: '#0f0', status: 'closed', deadline: null, }, { - id: '00000000-0000-0000-0000-000000000002', + id: '00000000-0000-4000-8000-000000000002', name: 'Project2', text: 'Project2 Text', color: '#f00', @@ -103,24 +103,24 @@ async function loadTestData() { await database('team_projects') .insert([ { - project_id: '00000000-0000-0000-0000-000000000000', - team_id: '00000000-0000-0000-0000-000000000000', + project_id: '00000000-0000-4000-8000-000000000000', + team_id: '00000000-0000-4000-8000-000000000000', }, { - project_id: '00000000-0000-0000-0000-000000000001', - team_id: '00000000-0000-0000-0000-000000000002', + project_id: '00000000-0000-4000-8000-000000000001', + team_id: '00000000-0000-4000-8000-000000000002', }, { - project_id: '00000000-0000-0000-0000-000000000002', - team_id: '00000000-0000-0000-0000-000000000000', + project_id: '00000000-0000-4000-8000-000000000002', + team_id: '00000000-0000-4000-8000-000000000000', }, { - project_id: '00000000-0000-0000-0000-000000000002', - team_id: '00000000-0000-0000-0000-000000000001', + project_id: '00000000-0000-4000-8000-000000000002', + team_id: '00000000-0000-4000-8000-000000000001', } ]); await database('tasks') .insert([ { - id: '00000000-0000-0000-0000-000000000000', - project_id: '00000000-0000-0000-0000-000000000000', + id: '00000000-0000-4000-8000-000000000000', + project_id: '00000000-0000-4000-8000-000000000000', name: 'Task0', text: 'Task0 Text', icon: '0', @@ -129,8 +129,8 @@ async function loadTestData() { created: new Date('2020-10-05'), edited: new Date('2020-10-10'), }, { - id: '00000000-0000-0000-0000-000000000001', - project_id: '00000000-0000-0000-0000-000000000001', + id: '00000000-0000-4000-8000-000000000001', + project_id: '00000000-0000-4000-8000-000000000001', name: 'Task1', text: 'Task1 Text', icon: '1', @@ -139,8 +139,8 @@ async function loadTestData() { created: new Date('2020-10-10'), edited: new Date('2020-10-15'), }, { - id: '00000000-0000-0000-0000-000000000002', - project_id: '00000000-0000-0000-0000-000000000002', + id: '00000000-0000-4000-8000-000000000002', + project_id: '00000000-0000-4000-8000-000000000002', name: 'Task2', text: 'Task2 Text', icon: '2', @@ -149,8 +149,8 @@ async function loadTestData() { created: new Date('2020-10-15'), edited: new Date('2020-10-20'), }, { - id: '00000000-0000-0000-0000-000000000003', - project_id: '00000000-0000-0000-0000-000000000002', + id: '00000000-0000-4000-8000-000000000003', + project_id: '00000000-0000-4000-8000-000000000002', name: 'Task3', text: 'Task3 Text', icon: '3', @@ -159,8 +159,8 @@ async function loadTestData() { created: new Date('2020-10-15'), edited: new Date('2020-10-20'), }, { - id: '00000000-0000-0000-0000-000000000004', - project_id: '00000000-0000-0000-0000-000000000002', + id: '00000000-0000-4000-8000-000000000004', + project_id: '00000000-0000-4000-8000-000000000002', name: 'Task4', text: 'Task4 Text', icon: '4', @@ -169,8 +169,8 @@ async function loadTestData() { created: new Date('2020-10-15'), edited: new Date('2020-10-20'), }, { - id: '00000000-0000-0000-0000-000000000005', - project_id: '00000000-0000-0000-0000-000000000002', + id: '00000000-0000-4000-8000-000000000005', + project_id: '00000000-0000-4000-8000-000000000002', name: 'Task5', text: 'Task5 Text', icon: '5', @@ -183,35 +183,35 @@ async function loadTestData() { await database('task_requirements') .insert([ { - task_id: '00000000-0000-0000-0000-000000000000', - role_id: '00000000-0000-0000-0000-000000000000', + task_id: '00000000-0000-4000-8000-000000000000', + role_id: '00000000-0000-4000-8000-000000000000', time: 30, }, { - task_id: '00000000-0000-0000-0000-000000000001', - role_id: '00000000-0000-0000-0000-000000000001', + task_id: '00000000-0000-4000-8000-000000000001', + role_id: '00000000-0000-4000-8000-000000000001', time: 30, }, { - task_id: '00000000-0000-0000-0000-000000000005', - role_id: '00000000-0000-0000-0000-000000000000', + task_id: '00000000-0000-4000-8000-000000000005', + role_id: '00000000-0000-4000-8000-000000000000', time: 60, }, { - task_id: '00000000-0000-0000-0000-000000000005', - role_id: '00000000-0000-0000-0000-000000000001', + task_id: '00000000-0000-4000-8000-000000000005', + role_id: '00000000-0000-4000-8000-000000000001', time: 30, } ]); await database('task_dependencies') .insert([ { - task_id: '00000000-0000-0000-0000-000000000002', - requires_id: '00000000-0000-0000-0000-000000000005', + task_id: '00000000-0000-4000-8000-000000000002', + requires_id: '00000000-0000-4000-8000-000000000005', } ]); await database('task_assignees') .insert([ { - task_id: '00000000-0000-0000-0000-000000000005', - user_id: '00000000-0000-0000-0000-000000000000', + task_id: '00000000-0000-4000-8000-000000000005', + user_id: '00000000-0000-4000-8000-000000000000', time: 120, finished: false, } @@ -219,21 +219,21 @@ async function loadTestData() { await database('workhours') .insert([ { - id: '00000000-0000-0000-0000-000000000000', - task_id: '00000000-0000-0000-0000-000000000005', - user_id: '00000000-0000-0000-0000-000000000000', + id: '00000000-0000-4000-8000-000000000000', + task_id: '00000000-0000-4000-8000-000000000005', + user_id: '00000000-0000-4000-8000-000000000000', started: new Date('2020-10-10T00:00:00'), finished: new Date('2020-10-10T01:00:00'), }, { - id: '00000000-0000-0000-0000-000000000001', - task_id: '00000000-0000-0000-0000-000000000005', - user_id: '00000000-0000-0000-0000-000000000000', + id: '00000000-0000-4000-8000-000000000001', + task_id: '00000000-0000-4000-8000-000000000005', + user_id: '00000000-0000-4000-8000-000000000000', started: new Date('2020-10-10T03:00:00'), finished: new Date('2020-10-10T04:00:00'), }, { - id: '00000000-0000-0000-0000-000000000002', - task_id: '00000000-0000-0000-0000-000000000005', - user_id: '00000000-0000-0000-0000-000000000000', + id: '00000000-0000-4000-8000-000000000002', + task_id: '00000000-0000-4000-8000-000000000005', + user_id: '00000000-0000-4000-8000-000000000000', started: new Date('2020-10-10T05:00:00'), finished: null, } @@ -241,23 +241,23 @@ async function loadTestData() { await database('comments') .insert([ { - id: '00000000-0000-0000-0000-000000000000', - task_id: '00000000-0000-0000-0000-000000000005', - user_id: '00000000-0000-0000-0000-000000000000', + id: '00000000-0000-4000-8000-000000000000', + task_id: '00000000-0000-4000-8000-000000000005', + user_id: '00000000-0000-4000-8000-000000000000', text: 'Comment0', created: new Date('2020-10-10T00:00:00'), edited: new Date('2020-10-10T01:00:00'), }, { - id: '00000000-0000-0000-0000-000000000001', - task_id: '00000000-0000-0000-0000-000000000005', - user_id: '00000000-0000-0000-0000-000000000001', + id: '00000000-0000-4000-8000-000000000001', + task_id: '00000000-0000-4000-8000-000000000005', + user_id: '00000000-0000-4000-8000-000000000001', text: 'Comment1', created: new Date('2020-10-10T03:00:00'), edited: new Date('2020-10-10T04:00:00'), }, { - id: '00000000-0000-0000-0000-000000000002', - task_id: '00000000-0000-0000-0000-000000000005', - user_id: '00000000-0000-0000-0000-000000000001', + id: '00000000-0000-4000-8000-000000000002', + task_id: '00000000-0000-4000-8000-000000000005', + user_id: '00000000-0000-4000-8000-000000000001', text: 'Comment2', created: new Date('2020-10-10T05:00:00'), edited: new Date('2020-10-10T05:00:00'), @@ -270,80 +270,80 @@ async function deleteTestData() { await database('comments') .delete() .whereIn('comments.task_id', [ - '00000000-0000-0000-0000-000000000005', + '00000000-0000-4000-8000-000000000005', ]); await database('workhours') .delete() .whereIn('workhours.task_id', [ - '00000000-0000-0000-0000-000000000005', + '00000000-0000-4000-8000-000000000005', ]); await database('task_assignees') .delete() .whereIn('task_assignees.task_id', [ - '00000000-0000-0000-0000-000000000005', + '00000000-0000-4000-8000-000000000005', ]); await database('task_dependencies') .delete() .whereIn('task_dependencies.task_id', [ - '00000000-0000-0000-0000-000000000005', + '00000000-0000-4000-8000-000000000005', ]); await database('task_requirements') .delete() .whereIn('task_requirements.task_id', [ - '00000000-0000-0000-0000-000000000000', - '00000000-0000-0000-0000-000000000001', - '00000000-0000-0000-0000-000000000005', + '00000000-0000-4000-8000-000000000000', + '00000000-0000-4000-8000-000000000001', + '00000000-0000-4000-8000-000000000005', ]); await database('tasks') .delete() .whereIn('tasks.id', [ - '00000000-0000-0000-0000-000000000000', - '00000000-0000-0000-0000-000000000001', - '00000000-0000-0000-0000-000000000002', - '00000000-0000-0000-0000-000000000003', - '00000000-0000-0000-0000-000000000004', - '00000000-0000-0000-0000-000000000005', + '00000000-0000-4000-8000-000000000000', + '00000000-0000-4000-8000-000000000001', + '00000000-0000-4000-8000-000000000002', + '00000000-0000-4000-8000-000000000003', + '00000000-0000-4000-8000-000000000004', + '00000000-0000-4000-8000-000000000005', ]); await database('team_projects') .delete() .whereIn('team_projects.team_id', [ - '00000000-0000-0000-0000-000000000000', - '00000000-0000-0000-0000-000000000001', - '00000000-0000-0000-0000-000000000002', + '00000000-0000-4000-8000-000000000000', + '00000000-0000-4000-8000-000000000001', + '00000000-0000-4000-8000-000000000002', ]); await database('projects') .delete() .whereIn('projects.id', [ - '00000000-0000-0000-0000-000000000000', - '00000000-0000-0000-0000-000000000001', - '00000000-0000-0000-0000-000000000002', + '00000000-0000-4000-8000-000000000000', + '00000000-0000-4000-8000-000000000001', + '00000000-0000-4000-8000-000000000002', ]); await database('team_members') .delete() .whereIn('team_members.user_id', [ - '00000000-0000-0000-0000-000000000000', - '00000000-0000-0000-0000-000000000001', + '00000000-0000-4000-8000-000000000000', + '00000000-0000-4000-8000-000000000001', ]); await database('roles') .delete() .whereIn('roles.id', [ - '00000000-0000-0000-0000-000000000000', - '00000000-0000-0000-0000-000000000001', - '00000000-0000-0000-0000-000000000002', - '00000000-0000-0000-0000-000000000003', + '00000000-0000-4000-8000-000000000000', + '00000000-0000-4000-8000-000000000001', + '00000000-0000-4000-8000-000000000002', + '00000000-0000-4000-8000-000000000003', ]); await database('teams') .delete() .whereIn('teams.id', [ - '00000000-0000-0000-0000-000000000000', - '00000000-0000-0000-0000-000000000001', - '00000000-0000-0000-0000-000000000002', + '00000000-0000-4000-8000-000000000000', + '00000000-0000-4000-8000-000000000001', + '00000000-0000-4000-8000-000000000002', ]); await database('users') .delete() .whereIn('users.id', [ - '00000000-0000-0000-0000-000000000000', - '00000000-0000-0000-0000-000000000001', + '00000000-0000-4000-8000-000000000000', + '00000000-0000-4000-8000-000000000001', ]); } else { // The test database is in memory only and does not have to be cleaned diff --git a/server/src/v1/auth.test.ts b/server/src/v1/auth.test.ts index fb67e4e..ff3a33d 100644 --- a/server/src/v1/auth.test.ts +++ b/server/src/v1/auth.test.ts @@ -109,7 +109,7 @@ describe('password can be changed', () => { beforeAll(async () => { response = await request .put('/v1/auth/password') - .set('Authorization', `Bearer ${await generateAuthToken('00000000-0000-0000-0000-000000000000')}`) + .set('Authorization', `Bearer ${await generateAuthToken('00000000-0000-4000-8000-000000000000')}`) .send({ password: 'testtest2', }); @@ -146,7 +146,7 @@ describe('password can be changed', () => { afterAll(async () => { response = await request .put('/v1/auth/password') - .set('Authorization', `Bearer ${await generateAuthToken('00000000-0000-0000-0000-000000000000')}`) + .set('Authorization', `Bearer ${await generateAuthToken('00000000-0000-4000-8000-000000000000')}`) .send({ password: 'testtest', }); @@ -156,7 +156,7 @@ describe('password can be changed', () => { test('changing username to an existing one fails', async () => { const response = await request .put('/v1/auth/username') - .set('Authorization', `Bearer ${await generateAuthToken('00000000-0000-0000-0000-000000000000')}`) + .set('Authorization', `Bearer ${await generateAuthToken('00000000-0000-4000-8000-000000000000')}`) .send({ username: 'User1', }); @@ -170,7 +170,7 @@ describe('username can be changed', () => { beforeAll(async () => { response = await request .put('/v1/auth/username') - .set('Authorization', `Bearer ${await generateAuthToken('00000000-0000-0000-0000-000000000000')}`) + .set('Authorization', `Bearer ${await generateAuthToken('00000000-0000-4000-8000-000000000000')}`) .send({ username: 'User00', }); @@ -207,7 +207,7 @@ describe('username can be changed', () => { afterAll(async () => { response = await request .put('/v1/auth/username') - .set('Authorization', `Bearer ${await generateAuthToken('00000000-0000-0000-0000-000000000000')}`) + .set('Authorization', `Bearer ${await generateAuthToken('00000000-0000-4000-8000-000000000000')}`) .send({ username: 'User0', }); @@ -217,7 +217,7 @@ describe('username can be changed', () => { test('valid tokens can be extended', async () => { const response = await request .get('/v1/auth/extend') - .set('Authorization', `Bearer ${await generateAuthToken('00000000-0000-0000-0000-000000000000')}`); + .set('Authorization', `Bearer ${await generateAuthToken('00000000-0000-4000-8000-000000000000')}`); expect(response.status).toEqual(200); expect(response.body.status).toEqual('success'); }); diff --git a/server/src/v1/user.test.ts b/server/src/v1/user.test.ts index 5587d6e..8eaf925 100644 --- a/server/src/v1/user.test.ts +++ b/server/src/v1/user.test.ts @@ -5,9 +5,40 @@ import { api } from '../api'; const request = supertest(api); -test('non existant username returns 404 for /v1/user/name/', async () => { - const response = await request.get('/v1/user/name/User3'); - expect(response.status).toEqual(404); - expect(response.body.status).toEqual('error'); -}); +describe('/user/name', () => { + test('non existant username returns', async () => { + const response = await request.get('/v1/user/name/User3'); + expect(response.status).toEqual(404); + expect(response.body.status).toEqual('error'); + }); + + test('existing username returns id', async () => { + const response = await request.get('/v1/user/name/User0'); + expect(response.status).toEqual(200); + expect(response.body.status).toEqual('success'); + expect(response.body.user.id).toEqual('00000000-0000-4000-8000-000000000000'); + }); + + test('existing username returns name', async () => { + const response = await request.get('/v1/user/name/User0'); + expect(response.status).toEqual(200); + expect(response.body.status).toEqual('success'); + expect(response.body.user.username).toEqual('user0'); + }); +}) + +describe('/:uuid/image', () => { + test('returns 404 without body if no image is set', async () => { + const response = await request.get('/v1/user/00000000-0000-4000-8000-000000000000/image'); + expect(response.status).toEqual(404); + expect(response.body).toEqual({}); + }) + + test('returns 404 if the user does not exist', async () => { + const response = await request.get('/v1/user/00000000-0000-4000-8000-000000000002/image'); + expect(response.status).toEqual(404); + expect(response.body.status).toEqual('error'); + }) +}) + -- GitLab