Skip to content

Commit

Permalink
db: Fix sequential tests for audits
Browse files Browse the repository at this point in the history
  • Loading branch information
tahini committed Apr 4, 2024
1 parent 543a4d8 commit 5119ccb
Showing 1 changed file with 17 additions and 7 deletions.
24 changes: 17 additions & 7 deletions packages/evolution-backend/src/models/__tests__/audits.db.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -93,18 +93,21 @@ const audits = [{
objectType: 'interview',
objectUuid: localUserInterviewAttributes.uuid,
version: 2,
level: 'error',
errorCode: 'InterviewErrorCodeMinimal',
}, {
objectType: 'person',
objectUuid: person1Uuid,
version: 2,
level: 'error',
errorCode: 'PersonErrorCode1',
message: 'WithAMessage',
ignore: false
}, {
objectType: 'person',
objectUuid: person2Uuid,
version: 2,
level: 'error',
errorCode: 'PersonErrorCode1',
message: 'WithAMessage',
ignore: false
Expand All @@ -123,18 +126,22 @@ const newAudits = [{
objectType: 'person',
objectUuid: person1Uuid,
version: 2,
level: 'warning' as const,
errorCode: 'NewPersonErrorCode1',
message: 'NewMessage1',
ignore: false
}, {
objectType: 'person',
objectUuid: person2Uuid,
version: 2,
level: 'info' as const,
errorCode: 'NewPersonErrorCode1',
message: 'NewMEssage2',
ignore: false
}];

const auditsMatch = (audit1, audit2) => audit1.objectType === audit2.objectType && audit1.objectUuid === audit2.objectUuid && audit1.errorCode === audit2.errorCode;

test('Set a few audits for an interview', async() => {
const result = await dbQueries.setAuditsForInterview(localUserInterviewAttributes.id, audits);
expect(result).toBeTruthy();
Expand All @@ -160,15 +167,15 @@ test('Get the audits for both interviews', async() => {

expect(dbAuditsLocal.length).toEqual(audits.length);
for (let i = 0; i < audits.length; i++) {
const findAudit = expected.find((audit) => JSON.stringify(audit) === JSON.stringify(removeUndefined(dbAuditsLocal[i])));
const findAudit = expected.find((audit) => auditsMatch(audit, removeUndefined(dbAuditsLocal[i])));
expect(dbAuditsLocal[i]).toEqual(findAudit);
}

const dbAuditsOther = await dbQueries.getAuditsForInterview(otherUserInterviewAttributes.id);

expect(dbAuditsOther.length).toEqual(audits.length);
for (let i = 0; i < audits.length; i++) {
const findAudit = expected.find((audit) => JSON.stringify(audit) === JSON.stringify(removeUndefined(dbAuditsOther[i])));
const findAudit = expected.find((audit) => auditsMatch(audit, removeUndefined(dbAuditsOther[i])));
expect(dbAuditsOther[i]).toEqual(findAudit);
}
});
Expand All @@ -182,7 +189,7 @@ test('Set new audits for interview', async() => {

expect(dbAuditsOther.length).toEqual(newAudits.length);
for (let i = 0; i < newAudits.length; i++) {
const findAudit = newAudits.find((audit) => JSON.stringify(audit) === JSON.stringify(removeUndefined(dbAuditsOther[i])));
const findAudit = newAudits.find((audit) => auditsMatch(audit, removeUndefined(dbAuditsOther[i])));
expect(dbAuditsOther[i]).toEqual(findAudit);
}
});
Expand All @@ -206,7 +213,7 @@ test('Set new audits for interview, with errors', async() => {
const dbAuditsOther = await dbQueries.getAuditsForInterview(otherUserInterviewAttributes.id);
expect(dbAuditsOther.length).toEqual(newAudits.length);
for (let i = 0; i < newAudits.length; i++) {
const findAudit = newAudits.find((audit) => JSON.stringify(audit) === JSON.stringify(removeUndefined(dbAuditsOther[i])));
const findAudit = newAudits.find((audit) => auditsMatch(audit, removeUndefined(dbAuditsOther[i])));
expect(dbAuditsOther[i]).toEqual(findAudit);
}

Expand All @@ -231,7 +238,7 @@ test('Update audit', async() => {
const dbAuditsOther = await dbQueries.getAuditsForInterview(otherUserInterviewAttributes.id);
expect(dbAuditsOther.length).toEqual(expectedAudits.length);
for (let i = 0; i < expectedAudits.length; i++) {
const findAudit = expectedAudits.find((audit) => JSON.stringify(audit) === JSON.stringify(removeUndefined(dbAuditsOther[i])));
const findAudit = expectedAudits.find((audit) => auditsMatch(audit, removeUndefined(dbAuditsOther[i])));
expect(dbAuditsOther[i]).toEqual(findAudit);
}
});
Expand All @@ -247,6 +254,7 @@ test('Set new audits that will be updated', async() => {
objectType: 'newObject',
objectUuid: person1Uuid,
version: 2,
level: 'error' as const,
errorCode: 'NewObjectError',
message: 'NewMEssage2',
ignore: false
Expand All @@ -259,8 +267,10 @@ test('Set new audits that will be updated', async() => {
const insertedAudits = await dbQueries.setAuditsForInterview(otherUserInterviewAttributes.id, newAuditsToUpdate);
// The returned audit should be the updated ones
expect(insertedAudits.length).toEqual(expectedAudits.length);
console.log('expected', JSON.stringify(expectedAudits[0]));
console.log('inserted', JSON.stringify(insertedAudits[0]));
for (let i = 0; i < expectedAudits.length; i++) {
const findAudit = expectedAudits.find((audit) => JSON.stringify(audit) === JSON.stringify(removeUndefined(insertedAudits[i])));
const findAudit = expectedAudits.find((audit) => auditsMatch(audit, removeUndefined(insertedAudits[i])));
expect(insertedAudits[i]).toEqual(findAudit);
}

Expand All @@ -269,7 +279,7 @@ test('Set new audits that will be updated', async() => {

expect(dbAuditsOther.length).toEqual(expectedAudits.length);
for (let i = 0; i < expectedAudits.length; i++) {
const findAudit = expectedAudits.find((audit) => JSON.stringify(audit) === JSON.stringify(removeUndefined(dbAuditsOther[i])));
const findAudit = expectedAudits.find((audit) => auditsMatch(audit, removeUndefined(dbAuditsOther[i])));
expect(dbAuditsOther[i]).toEqual(findAudit);
}
});

0 comments on commit 5119ccb

Please sign in to comment.