Skip to content

Commit 8810c5f

Browse files
all unit tests added, ready for review
1 parent 708ad94 commit 8810c5f

File tree

1 file changed

+56
-24
lines changed

1 file changed

+56
-24
lines changed

test/unit/mongo_client.test.js

Lines changed: 56 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -13,12 +13,8 @@ const { ReadPreference } = require('../mongodb');
1313
const { MongoCredentials } = require('../mongodb');
1414
const { MongoClient, MongoParseError, ServerApiVersion } = require('../mongodb');
1515
const { MongoLogger } = require('../mongodb');
16-
const {
17-
SeverityLevel,
18-
MongoLoggableComponent,
19-
MongoLoggerEnvOptions
20-
// eslint-disable-next-line no-restricted-modules
21-
} = require('../../src/mongo_logger');
16+
// eslint-disable-next-line no-restricted-modules
17+
const { SeverityLevel, MongoLoggableComponent } = require('../../src/mongo_logger');
2218
const sinon = require('sinon');
2319
const { Writable } = require('stream');
2420

@@ -846,7 +842,9 @@ describe('MongoOptions', function () {
846842
});
847843
const log = { t: new Date(), c: 'constructorStdErr', s: 'error' };
848844
client.options.mongoLoggerOptions.logDestination.write(log);
849-
expect(stderrStub.write).calledWith(inspect(log, { breakLength: Infinity, compact: true }));
845+
expect(stderrStub.write).calledWith(
846+
inspect(log, { breakLength: Infinity, compact: true })
847+
);
850848
});
851849
});
852850

@@ -874,7 +872,9 @@ describe('MongoOptions', function () {
874872
});
875873
const log = { t: new Date(), c: 'constructorStdOut', s: 'error' };
876874
client.options.mongoLoggerOptions.logDestination.write(log);
877-
expect(stdoutStub.write).calledWith(inspect(log, { breakLength: Infinity, compact: true }));
875+
expect(stdoutStub.write).calledWith(
876+
inspect(log, { breakLength: Infinity, compact: true })
877+
);
878878
});
879879
});
880880

@@ -893,7 +893,7 @@ describe('MongoOptions', function () {
893893
});
894894
});
895895
});
896-
describe.only('component severities', function () {
896+
describe('component severities', function () {
897897
const components = Object.values(MongoLoggableComponent);
898898
const env_component_names = [
899899
'MONGODB_LOG_COMMAND',
@@ -912,37 +912,69 @@ describe('MongoOptions', function () {
912912
[components[i]]: severityLevel
913913
}
914914
});
915-
expect(client.options.mongoLoggerOptions.componentSeverities[components[i]]).to.equal(
916-
severityLevel
917-
);
915+
for (const [curComponent, curSeverity] of Object.entries(
916+
client.options.mongoLoggerOptions.componentSeverities
917+
)) {
918+
if (curComponent === components[i]) {
919+
expect(curSeverity).to.equal(severityLevel);
920+
} else {
921+
expect(curSeverity).to.equal(SeverityLevel.OFF);
922+
}
923+
}
918924
}
919925
});
920926
}
921927
});
922928
context('when both client and environment option is provided', function () {
923929
for (let i = 0; i < components.length; i++) {
924-
beforeEach(function () {
930+
it(`it stores severity level for ${components[i]} component correctly (client options have precedence)`, function () {
925931
process.env[env_component_names[i]] = 'emergency';
926-
});
927-
928-
afterEach(function () {
929-
process.env[env_component_names[i]] = undefined;
930-
});
931-
932-
it(`it stores severity levels for ${components[i]} component correctly (client options have precedence)`, function () {
933932
for (const severityLevel of Object.values(SeverityLevel)) {
934933
const client = new MongoClient('mongodb://a/', {
935934
[loggerFeatureFlag]: true,
936935
mongodbLogComponentSeverities: {
937936
[components[i]]: severityLevel
938937
}
939938
});
940-
expect(client.options.mongoLoggerOptions.componentSeverities[components[i]]).to.equal(
941-
severityLevel
942-
);
939+
for (const [curComponent, curSeverity] of Object.entries(
940+
client.options.mongoLoggerOptions.componentSeverities
941+
)) {
942+
if (curComponent === components[i]) {
943+
expect(curSeverity).to.equal(severityLevel);
944+
} else {
945+
expect(curSeverity).to.equal(SeverityLevel.OFF);
946+
}
947+
}
948+
process.env[env_component_names[i]] = undefined;
943949
}
944950
});
945-
};
951+
}
952+
});
953+
context('when default is provided', function () {
954+
it('unspecified components have default value, while specified components retain value', function () {
955+
for (let i = 0; i < components.length; i++) {
956+
for (const severityLevel of Object.values(SeverityLevel)) {
957+
for (const severityLevel2 of Object.values(SeverityLevel)) {
958+
const client = new MongoClient('mongodb://a/', {
959+
[loggerFeatureFlag]: true,
960+
mongodbLogComponentSeverities: {
961+
[components[i]]: severityLevel,
962+
default: severityLevel2
963+
}
964+
});
965+
for (const [curComponent, curSeverity] of Object.entries(
966+
client.options.mongoLoggerOptions.componentSeverities
967+
)) {
968+
if (curComponent === components[i]) {
969+
expect(curSeverity).to.equal(severityLevel);
970+
} else {
971+
expect(curSeverity).to.equal(severityLevel2);
972+
}
973+
}
974+
}
975+
}
976+
}
977+
});
946978
});
947979
});
948980
});

0 commit comments

Comments
 (0)