Skip to content
Snippets Groups Projects
Commit ca4fe049 authored by Bernard Roland (Student Com20)'s avatar Bernard Roland (Student Com20)
Browse files

Added initialization with test date

parent d785f864
No related branches found
No related tags found
No related merge requests found
import { ready, close } from './database';
import { env } from 'process';
import { database, ready, close } from './database';
async function loadTestData() {
await database('users')
.insert([
{
id: '00000000-0000-0000-0000-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',
user_name: 'User1',
passwd_hash: '$2b$10$sjHhJNz4sLNclKEwWISZRe4cVju6jn4QjMVs4wdZ6wug2SKG774pq',
email: 'test1@example.com',
real_name: 'Tester Testing',
image: Buffer.from('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', 'base64'),
}
]);
await database('teams')
.insert([
{
id: '00000000-0000-0000-0000-000000000000',
name: 'Team0',
}, {
id: '00000000-0000-0000-0000-000000000001',
name: 'Team1',
}, {
id: '00000000-0000-0000-0000-000000000002',
name: 'Team2',
}
]);
await database('roles')
.insert([
{
id: '00000000-0000-0000-0000-000000000000',
team_id: '00000000-0000-0000-0000-000000000000',
name: 'Role0',
}, {
id: '00000000-0000-0000-0000-000000000001',
team_id: '00000000-0000-0000-0000-000000000001',
name: 'Role1',
}, {
id: '00000000-0000-0000-0000-000000000002',
team_id: '00000000-0000-0000-0000-000000000002',
name: 'Role2',
}, {
id: '00000000-0000-0000-0000-000000000003',
team_id: '00000000-0000-0000-0000-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-0000-0000-000000000001',
team_id: '00000000-0000-0000-0000-000000000001',
role_id: '00000000-0000-0000-0000-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-0000-0000-000000000001',
team_id: '00000000-0000-0000-0000-000000000002',
role_id: '00000000-0000-0000-0000-000000000003',
}
]);
await database('projects')
.insert([
{
id: '00000000-0000-0000-0000-000000000000',
name: 'Project0',
text: 'Project0 Text',
color: '#00f',
status: 'open',
deadline: new Date('2020-10-10'),
}, {
id: '00000000-0000-0000-0000-000000000001',
name: 'Project1',
text: 'Project1 Text',
color: '#0f0',
status: 'closed',
deadline: null,
}, {
id: '00000000-0000-0000-0000-000000000002',
name: 'Project2',
text: 'Project2 Text',
color: '#f00',
status: 'suspended',
deadline: null,
}
]);
await database('team_projects')
.insert([
{
project_id: '00000000-0000-0000-0000-000000000000',
team_id: '00000000-0000-0000-0000-000000000000',
}, {
project_id: '00000000-0000-0000-0000-000000000001',
team_id: '00000000-0000-0000-0000-000000000002',
}, {
project_id: '00000000-0000-0000-0000-000000000002',
team_id: '00000000-0000-0000-0000-000000000000',
}, {
project_id: '00000000-0000-0000-0000-000000000002',
team_id: '00000000-0000-0000-0000-000000000001',
}
]);
await database('tasks')
.insert([
{
id: '00000000-0000-0000-0000-000000000000',
project_id: '00000000-0000-0000-0000-000000000000',
name: 'Task0',
text: 'Task0 Text',
icon: '0',
status: 'open',
priority: 'medium',
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',
name: 'Task1',
text: 'Task1 Text',
icon: '1',
status: 'closed',
priority: 'high',
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',
name: 'Task2',
text: 'Task2 Text',
icon: '2',
status: 'open',
priority: 'low',
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',
name: 'Task3',
text: 'Task3 Text',
icon: '3',
status: 'closed',
priority: 'urgent',
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',
name: 'Task4',
text: 'Task4 Text',
icon: '4',
status: 'suspended',
priority: 'urgent',
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',
name: 'Task5',
text: 'Task5 Text',
icon: '5',
status: 'open',
priority: 'urgent',
created: new Date('2020-10-15'),
edited: new Date('2020-10-20'),
}
]);
await database('task_requirements')
.insert([
{
task_id: '00000000-0000-0000-0000-000000000000',
role_id: '00000000-0000-0000-0000-000000000000',
time: 30,
}, {
task_id: '00000000-0000-0000-0000-000000000001',
role_id: '00000000-0000-0000-0000-000000000001',
time: 30,
}, {
task_id: '00000000-0000-0000-0000-000000000005',
role_id: '00000000-0000-0000-0000-000000000000',
time: 60,
}, {
task_id: '00000000-0000-0000-0000-000000000005',
role_id: '00000000-0000-0000-0000-000000000001',
time: 30,
}
]);
await database('task_dependencies')
.insert([
{
task_id: '00000000-0000-0000-0000-000000000002',
requires_id: '00000000-0000-0000-0000-000000000005',
}
]);
await database('task_assignees')
.insert([
{
task_id: '00000000-0000-0000-0000-000000000005',
user_id: '00000000-0000-0000-0000-000000000000',
time: 120,
finished: false,
}
]);
await database('workhours')
.insert([
{
id: '00000000-0000-0000-0000-000000000000',
task_id: '00000000-0000-0000-0000-000000000005',
user_id: '00000000-0000-0000-0000-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',
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',
started: new Date('2020-10-10T05:00:00'),
finished: null,
}
]);
await database('comments')
.insert([
{
id: '00000000-0000-0000-0000-000000000000',
task_id: '00000000-0000-0000-0000-000000000005',
user_id: '00000000-0000-0000-0000-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',
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',
text: 'Comment2',
created: new Date('2020-10-10T05:00:00'),
edited: new Date('2020-10-10T05:00:00'),
}
]);
}
async function deleteTestData() {
if (env.NODE_ENV !== 'test') {
await database('comments')
.delete()
.whereIn('comments.task_id', [
'00000000-0000-0000-0000-000000000005',
]);
await database('workhours')
.delete()
.whereIn('workhours.task_id', [
'00000000-0000-0000-0000-000000000005',
]);
await database('task_assignees')
.delete()
.whereIn('task_assignees.task_id', [
'00000000-0000-0000-0000-000000000005',
]);
await database('task_dependencies')
.delete()
.whereIn('task_dependencies.task_id', [
'00000000-0000-0000-0000-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',
]);
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',
]);
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',
]);
await database('projects')
.delete()
.whereIn('projects.id', [
'00000000-0000-0000-0000-000000000000',
'00000000-0000-0000-0000-000000000001',
'00000000-0000-0000-0000-000000000002',
]);
await database('team_members')
.delete()
.whereIn('team_members.user_id', [
'00000000-0000-0000-0000-000000000000',
'00000000-0000-0000-0000-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',
]);
await database('teams')
.delete()
.whereIn('teams.id', [
'00000000-0000-0000-0000-000000000000',
'00000000-0000-0000-0000-000000000001',
'00000000-0000-0000-0000-000000000002',
]);
await database('users')
.delete()
.whereIn('users.id', [
'00000000-0000-0000-0000-000000000000',
'00000000-0000-0000-0000-000000000001',
]);
} else {
// The test database is in memory only and does not have to be cleaned
}
}
beforeAll(async () => {
await ready;
await loadTestData();
});
afterAll(async () => {
await deleteTestData();
await close();
});
import supertest from 'supertest';
import { api } from '../api';
const request = supertest(api);
test('', async () => {
});
import { api } from '../api';
import supertest from 'supertest';
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/__NO_REAL_NAME__');
expect(response.status).toEqual(404);
expect(response.body.status).toEqual('error');
expect(response.body.message).toEqual('user not found');
expect(response.body).toEqual({
status: 'error',
message: 'user not found',
});
});
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment