( expected: ExpectedLogMessage[], actual: ExpectedLogMessage[], entities: EntitiesMap, ignoreExtraMessages = false )
| 726 | } |
| 727 | |
| 728 | export function compareLogs( |
| 729 | expected: ExpectedLogMessage[], |
| 730 | actual: ExpectedLogMessage[], |
| 731 | entities: EntitiesMap, |
| 732 | ignoreExtraMessages = false |
| 733 | ): void { |
| 734 | if (!ignoreExtraMessages) { |
| 735 | expect(actual).to.have.lengthOf(expected.length); |
| 736 | } |
| 737 | |
| 738 | for (const [index, actualLog] of actual.entries()) { |
| 739 | if (index >= expected.length && ignoreExtraMessages) return; |
| 740 | |
| 741 | const rootPrefix = `expectLogMessages[${index}]`; |
| 742 | const expectedLog = expected[index]; |
| 743 | |
| 744 | // Check that log levels match |
| 745 | expect(actualLog).to.have.property('level', expectedLog.level); |
| 746 | |
| 747 | // Check that components match |
| 748 | expect(actualLog).to.have.property('component', expectedLog.component); |
| 749 | |
| 750 | // NOTE: The spec states that if the failureIsRedacted flag is present, we |
| 751 | // must assert that a failure occurred. |
| 752 | if (expectedLog.failureIsRedacted !== undefined) { |
| 753 | expect(expectedLog.failureIsRedacted).to.be.a('boolean'); |
| 754 | expect(actualLog.data.failure, 'Expected failure to exist').to.exist; |
| 755 | if (expectedLog.failureIsRedacted) { |
| 756 | // Assert that failure has been redacted |
| 757 | expect(actualLog.data.failure, 'Expected failure to have been redacted').to.equal( |
| 758 | '(redacted)' |
| 759 | ); |
| 760 | } else { |
| 761 | // Assert that failure has not been redacted |
| 762 | expect( |
| 763 | actualLog.data.failure, |
| 764 | 'Expected failure to have not been redacted' |
| 765 | ).to.not.deep.equal({}); |
| 766 | } |
| 767 | } |
| 768 | |
| 769 | resultCheck(actualLog.data, expectedLog.data, entities, [rootPrefix], false); |
| 770 | } |
| 771 | } |
| 772 | |
| 773 | function isMongoCryptError(err): boolean { |
| 774 | return err.constructor.name === 'MongoCryptError'; |
no test coverage detected