From ab6534087bb65e2273e0cf2e3d3bf3ffef33ee4b Mon Sep 17 00:00:00 2001
From: Roland Bernard <rolbernard@unibz.it>
Date: Tue, 25 May 2021 22:44:50 +0200
Subject: [PATCH] Added more tests for the project api endpoint

---
 server/src/v1/project.test.ts | 60 +++++++++++++++++++++++++++++++++++
 1 file changed, 60 insertions(+)

diff --git a/server/src/v1/project.test.ts b/server/src/v1/project.test.ts
index 5c44d28..3ee499b 100644
--- a/server/src/v1/project.test.ts
+++ b/server/src/v1/project.test.ts
@@ -262,3 +262,63 @@ describe('GET /project/:uuid/work', () => {
     });
 });
 
+describe('GET /project/:uuid/activity', () => {
+    test('returns time worked for all days', async () => {
+        const response = await request
+            .get('/v1/project/00000000-0000-4000-8000-000000000002/activity')
+            .set('Authorization', `Bearer ${await generateAuthToken('00000000-0000-4000-8000-000000000000')}`);
+        expect(response.status).toEqual(200);
+        expect(response.body.status).toEqual('success');
+        expect(response.body.activity.length).toEqual(1);
+    });
+
+    test('returns the total amount of work for each day', async () => {
+        const response = await request
+            .get('/v1/project/00000000-0000-4000-8000-000000000002/activity')
+            .set('Authorization', `Bearer ${await generateAuthToken('00000000-0000-4000-8000-000000000000')}`);
+        expect(response.status).toEqual(200);
+        expect(response.body.status).toEqual('success');
+        expect(response.body.activity[0].day).toEqual('2020-10-10');
+        expect(response.body.activity[0].time).toEqual(120 * 60 * 1000);
+    });
+
+    test('can be limited in time with from date', async () => {
+        const response = await request
+            .get(`/v1/project/00000000-0000-4000-8000-000000000002/activity?since=${Date.parse('2020-10-10T20:00:00')}`)
+            .set('Authorization', `Bearer ${await generateAuthToken('00000000-0000-4000-8000-000000000000')}`);
+        expect(response.status).toEqual(200);
+        expect(response.body.status).toEqual('success');
+        expect(response.body.activity.length).toEqual(0);
+    });
+});
+
+describe('GET /project/:uuid/completion', () => {
+    test('returns completion for all tasks of the project', async () => {
+        const response = await request
+            .get('/v1/project/00000000-0000-4000-8000-000000000002/completion')
+            .set('Authorization', `Bearer ${await generateAuthToken('00000000-0000-4000-8000-000000000000')}`);
+        expect(response.status).toEqual(200);
+        expect(response.body.status).toEqual('success');
+        expect(response.body.completion).toEqual({
+            open: 1,
+            closed: 1,
+            suspended: 1,
+            overdue: 1,
+        });
+    });
+
+    test('can be limited in time with from date', async () => {
+        const response = await request
+            .get(`/v1/project/00000000-0000-4000-8000-000000000002/completion?since=${Date.parse('2020-10-30T20:00:00')}`)
+            .set('Authorization', `Bearer ${await generateAuthToken('00000000-0000-4000-8000-000000000000')}`);
+        expect(response.status).toEqual(200);
+        expect(response.body.status).toEqual('success');
+        expect(response.body.completion).toEqual({
+            open: 0,
+            closed: 0,
+            suspended: 0,
+            overdue: 1,
+        });
+    });
+});
+
-- 
GitLab