diff options
| author | Kevin J Hoerr <kjhoerr@protonmail.com> | 2021-09-20 19:43:18 +0000 |
|---|---|---|
| committer | Kevin J Hoerr <kjhoerr@protonmail.com> | 2021-09-20 19:43:18 +0000 |
| commit | f830bab4ec14f3fe814962a6a2dee180149c3a6a (patch) | |
| tree | 9a7c3138c0afd2ce5423002d6d8163bbf39ea318 /src/util/config.test.ts | |
| parent | 67c22d10e4583e29d33933e4b1b88f9d02f3da47 (diff) | |
| download | ao-coverage-f830bab4ec14f3fe814962a6a2dee180149c3a6a.tar.gz ao-coverage-f830bab4ec14f3fe814962a6a2dee180149c3a6a.tar.bz2 ao-coverage-f830bab4ec14f3fe814962a6a2dee180149c3a6a.zip | |
The Whole Barnshow Commit
- Use yarn-berry instead of npm, with Zero Install feature and goodies
- Add `initializeToken` to post unique token to logs on startup
- Package upgrades
- Fix index.html.template tests
I will never do this again
Diffstat (limited to 'src/util/config.test.ts')
| -rw-r--r-- | src/util/config.test.ts | 97 |
1 files changed, 88 insertions, 9 deletions
diff --git a/src/util/config.test.ts b/src/util/config.test.ts index e385bce..3f6d671 100644 --- a/src/util/config.test.ts +++ b/src/util/config.test.ts @@ -2,13 +2,36 @@ const exit = jest .spyOn(process, "exit") .mockImplementation(() => undefined as never); +import { Writable } from "stream"; +import winston from "winston"; + +let output = ""; + +jest.mock("./logger", () => { + const stream = new Writable(); + stream._write = (chunk, _encoding, next) => { + output = output += chunk.toString(); + next(); + }; + const streamTransport = new winston.transports.Stream({ stream }); + + return { + __esModule: true, + default: () => ({ + format: winston.format.combine(winston.format.splat(), winston.format.simple()), + transports: [streamTransport] + }) + } +}); + import { configOrError, persistTemplate, handleStartup, - handleShutdown + handleShutdown, + initializeToken } from "./config"; -import { MongoClient, MongoError, ReadPreference } from "mongodb"; +import { Logger, MongoClient, MongoError, ReadConcern, ReadPreference, WriteConcern } from "mongodb"; import { Server } from "http"; import path from "path"; import fs from "fs"; @@ -43,14 +66,56 @@ const MongoMock = (p: Promise<void>): jest.Mock<MongoClient, void[]> => jest.fn<MongoClient, void[]>(() => ({ ...CommonMocks, close: jest.fn(() => p), - readPreference: { - mode: ReadPreference.NEAREST, - tags: [], - isValid: jest.fn(), - slaveOk: jest.fn(), - equals: jest.fn() + readPreference: ReadPreference.nearest, + bsonOptions: {}, + logger: new Logger("a"), + getLogger: jest.fn(), + options: { + hosts: [], + readPreference: ReadPreference.nearest, + readConcern: new ReadConcern("local"), + loadBalanced: true, + serverApi: { version: "1" }, + compressors: [], + writeConcern: new WriteConcern(), + dbName: "", + metadata: {driver: {name: "", version: ""}, os: {type: "", name: "linux", architecture: "", version: ""}, platform: "linx"}, + tls: true, + toURI: jest.fn(), + autoEncryption: {}, + connectTimeoutMS: 0, + directConnection: true, + driverInfo: {}, + forceServerObjectId: true, + minHeartbeatFrequencyMS: 0, + heartbeatFrequencyMS: 0, + keepAlive: false, + keepAliveInitialDelay: 0, + localThresholdMS: 0, + logger: new Logger("a"), + maxIdleTimeMS: 0, + maxPoolSize: 0, + minPoolSize: 0, + monitorCommands: true, + noDelay: true, + pkFactory: { createPk: jest.fn() }, + promiseLibrary: {}, + raw: true, + replicaSet: "", + retryReads: true, + retryWrites: true, + serverSelectionTimeoutMS: 0, + socketTimeoutMS: 0, + tlsAllowInvalidCertificates: true, + tlsAllowInvalidHostnames: true, + tlsInsecure: false, + waitQueueTimeoutMS: 0, + zlibCompressionLevel: 0, }, - writeConcern: {}, + serverApi: { version: "1" }, + autoEncrypter: undefined, + readConcern: new ReadConcern("local"), + writeConcern: new WriteConcern(), db: jest.fn() })); const ServerMock = (mockErr: Error | undefined): jest.Mock<Server, void[]> => @@ -76,6 +141,20 @@ const ServerMock = (mockErr: Error | undefined): jest.Mock<Server, void[]> => unref: jest.fn() })); +describe("initializeToken", () => { + it("Should generate a UUID", () => { + // Arrange + output = ""; + + // Act + let result = initializeToken(); + + // Assert + expect(result).toMatch(/([a-f0-9]{8}(-[a-f0-9]{4}){4}[a-f0-9]{8})/); + expect(output).toContain(result); + }); +}); + describe("configOrError", () => { beforeEach(() => { exit.mockClear(); |
