Skip to content

Commit 69eb465

Browse files
authored
Fix: Integration test due to date range calculation & auth token expiry (#2389)
* fixed the date range forecast and auth token expiry * Refactor: Use const for taskRequestObj in requests test * fix/data type return * Revert "fix/data type return" This reverts commit 70e3196. * fix/data type return * fix: prevent TypeError when updateRequest returns null or undefined
1 parent 1d4b457 commit 69eb465

File tree

3 files changed

+70
-44
lines changed

3 files changed

+70
-44
lines changed

test/fixtures/oooRequest/oooRequest.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ export const createOooStatusRequests = {
1313

1414
export const validOooStatusRequests = {
1515
type: "OOO",
16-
from: Date.now() + 100000,
17-
until: Date.now() + 200000,
16+
from: Date.now() + 1 * 24 * 60 * 60 * 1000,
17+
until: Date.now() + 5 * 24 * 60 * 60 * 1000,
1818
message: "Out of office for personal reasons.",
1919
state: REQUEST_STATE.PENDING,
2020
};

test/integration/onboardingExtension.test.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ describe("/requests Onboarding Extension", () => {
3939
let testUserId: string;
4040
let testUserIdForInvalidDiscordJoinedDate: string;
4141
let testUserDiscordIdForInvalidDiscordJoinedDate: string = "54321";
42+
let botToken: string;
4243

4344
const testUserDiscordId: string = "654321";
4445
const extensionRequest = {
@@ -47,15 +48,16 @@ describe("/requests Onboarding Extension", () => {
4748
requestNumber: 1
4849
};
4950
const postEndpoint = "/requests";
50-
const botToken = generateToken({name: CLOUDFLARE_WORKER})
5151
const body: CreateOnboardingExtensionBody = {
5252
type: REQUEST_TYPE.ONBOARDING,
5353
numberOfDays: 5,
5454
reason: "This is the reason",
5555
userId: testUserDiscordId,
5656
};
57-
57+
5858
beforeEach(async () => {
59+
botToken = generateToken({name: CLOUDFLARE_WORKER});
60+
5961
testUserId = await addUser({
6062
...userData[6],
6163
discordId: testUserDiscordId,

test/integration/requests.test.ts

Lines changed: 64 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -56,8 +56,13 @@ describe("/requests OOO", function () {
5656
const { id: pendingOooId }: any = await createRequest(oooRequestData2);
5757
pendingOooRequestId = pendingOooId;
5858

59-
const { id: approveOooId }: any = await updateRequest(oooRequestId, { state: REQUEST_STATE.APPROVED }, superUserId, REQUEST_TYPE.OOO);
60-
approvedOooRequestId = approveOooId;
59+
const response = await updateRequest(
60+
oooRequestId,
61+
{ state: REQUEST_STATE.APPROVED },
62+
superUserId,
63+
REQUEST_TYPE.OOO
64+
);
65+
approvedOooRequestId = response?.id;
6166

6267
authToken = authService.generateAuthToken({ userId });
6368
superUserToken = authService.generateAuthToken({ userId: superUserId });
@@ -68,6 +73,17 @@ describe("/requests OOO", function () {
6873
});
6974

7075
describe("POST /requests", function () {
76+
beforeEach(async function () {
77+
const userIdPromises = [addUser(userData[16])];
78+
const [userId] = await Promise.all(userIdPromises);
79+
80+
authToken = authService.generateAuthToken({ userId });
81+
});
82+
83+
afterEach(async function () {
84+
await cleanDb();
85+
});
86+
7187
it("should return 401 if user is not logged in", function (done) {
7288
chai
7389
.request(app)
@@ -273,16 +289,16 @@ describe("/requests OOO", function () {
273289
});
274290
});
275291

276-
it("should return the request by Id query", function (done) {
277-
chai
278-
.request(app)
279-
.get(`/requests?id=${oooRequestId}`)
280-
.end(function (err, res) {
281-
expect(res).to.have.status(200);
282-
expect(res.body.data.id === oooRequestId);
283-
done();
284-
});
285-
});
292+
it("should return the request by Id query", function (done) {
293+
chai
294+
.request(app)
295+
.get(`/requests?id=${oooRequestId}`)
296+
.end(function (err, res) {
297+
expect(res).to.have.status(200);
298+
expect(res.body.data.id === oooRequestId);
299+
done();
300+
});
301+
});
286302

287303
it("should return all requests by specific user", function (done) {
288304
chai
@@ -390,7 +406,7 @@ describe("/requests Extension", function () {
390406
oldEndsOn: 1694736000,
391407
newEndsOn: 1709674980000,
392408
message: "Due to some reasons",
393-
state: "PENDING"
409+
state: "PENDING",
394410
};
395411

396412
const taskData = [
@@ -427,7 +443,6 @@ describe("/requests Extension", function () {
427443

428444
taskId1 = (await updateTask({ ...taskData[0], assigneeId: userId1 })).taskId;
429445
taskId2 = (await updateTask({ ...taskData[1] })).taskId;
430-
431446
});
432447

433448
afterEach(async function () {
@@ -448,7 +463,7 @@ describe("/requests Extension", function () {
448463
it("should create a new extension request", function (done) {
449464
const extensionRequestObj = {
450465
taskId: taskId1,
451-
...extensionRequest
466+
...extensionRequest,
452467
};
453468
chai
454469
.request(app)
@@ -458,15 +473,15 @@ describe("/requests Extension", function () {
458473
.end(function (err, res) {
459474
expect(res).to.have.status(201);
460475
expect(res.body).to.have.property("message");
461-
expect(res.body.message).to.equal('Extension Request created successfully!');
476+
expect(res.body.message).to.equal("Extension Request created successfully!");
462477
done();
463478
});
464479
});
465480

466481
it("should create a new extension request by super user", function (done) {
467482
const extensionRequestObj = {
468483
taskId: taskId1,
469-
...extensionRequest
484+
...extensionRequest,
470485
};
471486
chai
472487
.request(app)
@@ -476,15 +491,15 @@ describe("/requests Extension", function () {
476491
.end(function (err, res) {
477492
expect(res).to.have.status(201);
478493
expect(res.body).to.have.property("message");
479-
expect(res.body.message).to.equal('Extension Request created successfully!');
494+
expect(res.body.message).to.equal("Extension Request created successfully!");
480495
done();
481496
});
482497
});
483498

484499
it("should not create a new extension request by another user", function (done) {
485500
const extensionRequestObj = {
486501
taskId: taskId1,
487-
...extensionRequest
502+
...extensionRequest,
488503
};
489504
chai
490505
.request(app)
@@ -494,15 +509,17 @@ describe("/requests Extension", function () {
494509
.end(function (err, res) {
495510
expect(res).to.have.status(403);
496511
expect(res.body).to.have.property("message");
497-
expect(res.body.message).to.equal('Only assigned user and super user can create an extension request for this task.');
512+
expect(res.body.message).to.equal(
513+
"Only assigned user and super user can create an extension request for this task."
514+
);
498515
done();
499516
});
500517
});
501518

502519
it("should not create a new extension request if task is not exist", function (done) {
503520
const extensionRequestObj = {
504521
taskId: "randomId",
505-
...extensionRequest
522+
...extensionRequest,
506523
};
507524
chai
508525
.request(app)
@@ -512,15 +529,15 @@ describe("/requests Extension", function () {
512529
.end(function (err, res) {
513530
expect(res).to.have.status(400);
514531
expect(res.body).to.have.property("message");
515-
expect(res.body.message).to.equal('Task Not Found');
532+
expect(res.body.message).to.equal("Task Not Found");
516533
done();
517534
});
518535
});
519536

520537
it("should not create a new extension request if assignee is not present", function (done) {
521538
const extensionRequestObj = {
522539
taskId: taskId2,
523-
...extensionRequest
540+
...extensionRequest,
524541
};
525542
chai
526543
.request(app)
@@ -530,7 +547,7 @@ describe("/requests Extension", function () {
530547
.end(function (err, res) {
531548
expect(res).to.have.status(400);
532549
expect(res.body).to.have.property("message");
533-
expect(res.body.message).to.equal('Assignee is not present for this task');
550+
expect(res.body.message).to.equal("Assignee is not present for this task");
534551
done();
535552
});
536553
});
@@ -539,7 +556,7 @@ describe("/requests Extension", function () {
539556
const extensionRequestObj = {
540557
taskId: taskId1,
541558
...extensionRequest,
542-
oldEndsOn: 1234
559+
oldEndsOn: 1234,
543560
};
544561
chai
545562
.request(app)
@@ -549,15 +566,15 @@ describe("/requests Extension", function () {
549566
.end(function (err, res) {
550567
expect(res).to.have.status(400);
551568
expect(res.body).to.have.property("message");
552-
expect(res.body.message).to.equal('Old ETA does not match the task\'s ETA');
569+
expect(res.body.message).to.equal("Old ETA does not match the task's ETA");
553570
done();
554571
});
555572
});
556573

557574
it("should not create a new extension request if an extension request for this task already exists", function (done) {
558575
const extensionRequestObj = {
559576
taskId: taskId1,
560-
...extensionRequest
577+
...extensionRequest,
561578
};
562579
chai
563580
.request(app)
@@ -567,11 +584,11 @@ describe("/requests Extension", function () {
567584
.end(async function (err, res) {
568585
expect(res).to.have.status(201);
569586
expect(res.body).to.have.property("message");
570-
expect(res.body.message).to.equal('Extension Request created successfully!');
587+
expect(res.body.message).to.equal("Extension Request created successfully!");
571588

572589
const extensionRequestObj2 = {
573590
taskId: taskId1,
574-
...extensionRequest
591+
...extensionRequest,
575592
};
576593
const response = await chai
577594
.request(app)
@@ -580,7 +597,7 @@ describe("/requests Extension", function () {
580597
.send(extensionRequestObj2);
581598
expect(response).to.have.status(400);
582599
expect(response.body).to.have.property("message");
583-
expect(response.body.message).to.equal('An extension request for this task already exists.');
600+
expect(response.body.message).to.equal("An extension request for this task already exists.");
584601
done();
585602
});
586603
});
@@ -609,17 +626,26 @@ describe("/requests Extension", function () {
609626
beforeEach(async function () {
610627
const extensionRequestObj = {
611628
taskId: taskId1,
612-
...extensionRequest
629+
...extensionRequest,
613630
};
614631
const { id: approvedId } = await createRequest({ ...extensionRequestObj, requestedBy: userId1 });
615-
approvedExtensionRequestId = await updateRequest(approvedId, approvedExtensionRequest, superUserId, REQUEST_TYPE.EXTENSION);
632+
approvedExtensionRequestId = await updateRequest(
633+
approvedId,
634+
approvedExtensionRequest,
635+
superUserId,
636+
REQUEST_TYPE.EXTENSION
637+
);
616638

617639
const { id: rejectedId } = await createRequest({ ...extensionRequestObj, requestedBy: userId1 });
618-
rejectedExtensionRequestId = await updateRequest(rejectedId, rejectedExtensionRequest, superUserId, REQUEST_TYPE.EXTENSION);
640+
rejectedExtensionRequestId = await updateRequest(
641+
rejectedId,
642+
rejectedExtensionRequest,
643+
superUserId,
644+
REQUEST_TYPE.EXTENSION
645+
);
619646

620647
const { id: pendingId } = await createRequest({ ...extensionRequestObj, requestedBy: userId1 });
621648
pendingExtensionRequestId = pendingId;
622-
623649
});
624650

625651
it("should return 401(Unauthorized) if user is not logged in", function (done) {
@@ -722,7 +748,7 @@ describe("/requests Extension", function () {
722748
.end(function (err, res) {
723749
expect(res).to.have.status(400);
724750
expect(res.body).to.have.property("message");
725-
expect(res.body.message).to.equal('state must be APPROVED or REJECTED');
751+
expect(res.body.message).to.equal("state must be APPROVED or REJECTED");
726752
done();
727753
});
728754
});
@@ -741,10 +767,8 @@ describe("/requests Extension", function () {
741767
});
742768
});
743769
});
744-
745770
});
746771

747-
748772
describe("/requests Task", function () {
749773
let userId1: string;
750774
let userJwtToken1: string;
@@ -771,7 +795,7 @@ describe("/requests Task", function () {
771795
});
772796

773797
it("should not create a new task request if issue does not exist", function (done) {
774-
let taskRequestObj = validTaskCreqtionRequest
798+
const taskRequestObj = validTaskCreqtionRequest;
775799
taskRequestObj.externalIssueUrl = "https://api.github.com/repos/Real-Dev-Squad/website-my/issues/1245";
776800
taskRequestObj.userId = userId1;
777801
chai
@@ -788,7 +812,7 @@ describe("/requests Task", function () {
788812
});
789813

790814
it("should not create a new task request if task id is not present in the request body", function (done) {
791-
let taskRequestObj = validTaskAssignmentRequest
815+
const taskRequestObj = validTaskAssignmentRequest;
792816
delete taskRequestObj.taskId;
793817
chai
794818
.request(app)
@@ -798,7 +822,7 @@ describe("/requests Task", function () {
798822
.end(function (err, res) {
799823
expect(res).to.have.status(400);
800824
expect(res.body).to.have.property("message");
801-
expect(res.body.message).to.equal('taskId is required when requestType is ASSIGNMENT');
825+
expect(res.body.message).to.equal("taskId is required when requestType is ASSIGNMENT");
802826
done();
803827
});
804828
});

0 commit comments

Comments
 (0)