Skip to content
Snippets Groups Projects
Commit 3d69f61e authored by Mathias Picker's avatar Mathias Picker
Browse files

fixed server tests

parent fafcfeb4
No related branches found
No related tags found
No related merge requests found
Pipeline #87978 failed
......@@ -33,6 +33,9 @@ test:
# Create database table
- echo "CREATE TABLE Tasks (id INT NOT NULL AUTO_INCREMENT, title TEXT NOT NULL, done BOOL
DEFAULT false, PRIMARY KEY(id));" | mysql $MYSQL_DATABASE
test_server:
script:
- cd server
- npm install
- npm test
......
......@@ -47,7 +47,7 @@ router.post('/tasks/update/:id', (request, response) => {
if (dataIsValid) {
taskService.update(updateTaskObject)
.then((task) => (task ? response.send(task) : response.status(404).send('Task not found')))
.then((task) => (task.affectedRows ? response.send(task) : response.status(404).send('Task not found')))
.catch((error: Error) => response.status(500).send(error));
} else {
response.status(400).send('Missing task title')
......
......@@ -6,9 +6,9 @@ import app from '../src/app';
import taskService, { type Task } from '../src/task-service';
const testTasks: Task[] = [
{ id: 1, title: 'Les leksjon', done: false },
{ id: 2, title: 'Møt opp på forelesning', done: false },
{ id: 3, title: 'Gjør øving', done: false },
{ id: 1, title: 'Les leksjon', description: 'Coolio', done: false },
{ id: 2, title: 'Møt opp på forelesning', description: 'Okei da', done: false },
{ id: 3, title: 'Gjør øving', description: 'Will do', done: false },
];
// Since API is not compatible with v1, API version is increased to v2
......@@ -27,9 +27,9 @@ beforeEach((done) => {
// Create testTasks sequentially in order to set correct id, and call done() when finished
taskService
.create(testTasks[0].title)
.then(() => taskService.create(testTasks[1].title)) // Create testTask[1] after testTask[0] has been created
.then(() => taskService.create(testTasks[2].title)) // Create testTask[2] after testTask[1] has been created
.create({ title: testTasks[0].title, description: testTasks[0].description })
.then(() => taskService.create({ title: testTasks[1].title, description: testTasks[1].description })) // Create testTask[1] after testTask[0] has been created
.then(() => taskService.create({ title: testTasks[2].title, description: testTasks[2].description })) // Create testTask[2] after testTask[1] has been created
.then(() => done()); // Call done() after testTask[2] has been created
// Note that the above expression can be written as:
......@@ -93,7 +93,7 @@ describe('Fetch tasks (GET)', () => {
describe('Create new task (POST)', () => {
test('Create new task (200 OK)', (done) => {
axios
.post<{}, number>('/tasks', { title: 'Ny oppgave' })
.post<{}, number>('/tasks', { title: 'Ny oppgave', description: "Ny beskrivelse" })
.then((response) => {
expect(response.status).toEqual(200);
expect(response.data).toEqual({ id: 4 });
......@@ -102,6 +102,28 @@ describe('Create new task (POST)', () => {
});
});
describe('Update tasks (PUT)', () => {
test('Update existing tasks title (200 OK)', (done) => {
axios
.post<{}>('/tasks/update/1', { title: 'Ny oppgave' })
.then((response) => {
expect(response.status).toEqual(200);
expect(response.data.affectedRows).toEqual(1);
expect(response.data.changedRows).toEqual(1);
done();
});
});
test('Update task that does not exist (404 NOT FOUND)', (done) => {
axios
.post<{}>('/tasks/update/10', { title: 'Ny oppgave' })
.catch((error: Error) => {
expect(error.message).toEqual('Request failed with status code 404');
done();
});
});
});
describe('Delete task (DELETE)', () => {
test('Delete task (200 OK)', (done) => {
axios.delete('/tasks/2').then((response) => {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment