From 2ef52ab3f36e4cd43e947f16a641002b65942228 Mon Sep 17 00:00:00 2001 From: Emily M Klassen Date: Fri, 6 Dec 2024 14:02:50 -0800 Subject: [PATCH 1/2] chore: add types for the configuration --- src/helpers.ts | 7 ++++--- src/types.ts | 15 +++++++++++++++ 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/src/helpers.ts b/src/helpers.ts index 09004ba0..2c2ac52e 100644 --- a/src/helpers.ts +++ b/src/helpers.ts @@ -1,10 +1,11 @@ import {resolve} from 'path'; +import {Config} from './types'; const configFile = process.env.MONGO_MEMORY_SERVER_FILE || 'jest-mongodb-config.js'; export function getMongodbMemoryOptions(cwd: string) { try { - const {mongodbMemoryServerOptions} = require(resolve(cwd, configFile)); + const {mongodbMemoryServerOptions}: Config = require(resolve(cwd, configFile)); return mongodbMemoryServerOptions; } catch (e) { @@ -20,7 +21,7 @@ export function getMongodbMemoryOptions(cwd: string) { export function getMongoURLEnvName(cwd: string) { try { - const {mongoURLEnvName} = require(resolve(cwd, configFile)); + const {mongoURLEnvName}: Config = require(resolve(cwd, configFile)); return mongoURLEnvName || 'MONGO_URL'; } catch (e) { @@ -30,7 +31,7 @@ export function getMongoURLEnvName(cwd: string) { export function shouldUseSharedDBForAllJestWorkers(cwd: string) { try { - const {useSharedDBForAllJestWorkers} = require(resolve(cwd, configFile)); + const {useSharedDBForAllJestWorkers}: Config = require(resolve(cwd, configFile)); if (typeof useSharedDBForAllJestWorkers === 'undefined') { return true; diff --git a/src/types.ts b/src/types.ts index 1ae5d4c9..85ae26eb 100644 --- a/src/types.ts +++ b/src/types.ts @@ -8,3 +8,18 @@ declare global { } export type Mongo = (MongoMemoryReplSet | MongoMemoryServer) & {isRunning: boolean} + +type MongoMemoryReplSetOpts = NonNullable[0]>; +type MongoMemoryServerOpts = NonNullable[0]>; + +export interface Config { + mongodbMemoryServerOptions?: MongoMemoryReplSetOpts | MongoMemoryServerOpts; + /** + * @default 'MONGO_URL' + */ + mongoURLEnvName?: string; + /** + * @default true + */ + useSharedDBForAllJestWorkers?: boolean; +} From df2b2b5a25dcb3c9380d81c5cb0f3c2181be6767 Mon Sep 17 00:00:00 2001 From: Emily M Klassen Date: Fri, 6 Dec 2024 14:06:41 -0800 Subject: [PATCH 2/2] chore: use ts-in-jsdoc for config files --- jest-mongodb-config-repl.js | 1 + jest-mongodb-config.js | 1 + 2 files changed, 2 insertions(+) diff --git a/jest-mongodb-config-repl.js b/jest-mongodb-config-repl.js index 30f219d1..292c3ce3 100644 --- a/jest-mongodb-config-repl.js +++ b/jest-mongodb-config-repl.js @@ -1,3 +1,4 @@ +/** @type {import('./src/types').Config} */ module.exports = { mongodbMemoryServerOptions: { binary: { diff --git a/jest-mongodb-config.js b/jest-mongodb-config.js index b3a33b0a..6eee35cd 100644 --- a/jest-mongodb-config.js +++ b/jest-mongodb-config.js @@ -1,3 +1,4 @@ +/** @type {import('./src/types').Config} */ module.exports = { mongodbMemoryServerOptions: { binary: {