Przeglądaj źródła

convert to vitest

Yuki Takei 2 lat temu
rodzic
commit
1711d78d0a

+ 1 - 4
apps/app/config/migrate-mongo-config.js

@@ -8,7 +8,7 @@ const isProduction = process.env.NODE_ENV === 'production';
 
 
 const { URL } = require('url');
 const { URL } = require('url');
 
 
-const { initMongooseGlobalSettings, getMongoUri, mongoOptions } = isProduction
+const { getMongoUri, mongoOptions } = isProduction
   // eslint-disable-next-line import/extensions, import/no-unresolved
   // eslint-disable-next-line import/extensions, import/no-unresolved
   ? require('../dist/server/util/mongoose-utils')
   ? require('../dist/server/util/mongoose-utils')
   : require('../src/server/util/mongoose-utils');
   : require('../src/server/util/mongoose-utils');
@@ -19,9 +19,6 @@ if (migrationsDir == null) {
   throw new Error('An env var MIGRATIONS_DIR must be set.');
   throw new Error('An env var MIGRATIONS_DIR must be set.');
 }
 }
 
 
-
-initMongooseGlobalSettings();
-
 const mongoUri = getMongoUri();
 const mongoUri = getMongoUri();
 
 
 // parse url
 // parse url

+ 32 - 32
apps/app/config/migrate-mongo-config.spec.ts

@@ -1,33 +1,38 @@
-describe('config/migrate-mongo-config.js', () => {
+import {
+  vi,
+  beforeEach,
+  describe, test, expect,
+} from 'vitest';
 
 
-  beforeEach(async() => {
-    jest.resetModules();
-  });
+import mockRequire from 'mock-require';
+
+const { reRequire } = mockRequire;
+
+
+describe('config/migrate-mongo-config.js', () => {
 
 
-  test('throws an error when MIGRATIONS_DIR is not set', () => {
+  test.concurrent('throws an error when MIGRATIONS_DIR is not set', () => {
 
 
-    const initMongooseGlobalSettingsMock = jest.fn();
+    const getMongoUriMock = vi.fn();
+    const mongoOptionsMock = vi.fn();
 
 
     // mock for mongoose-utils
     // mock for mongoose-utils
-    jest.doMock('../../src/server/util/mongoose-utils', () => {
-      return {
-        initMongooseGlobalSettings: initMongooseGlobalSettingsMock,
-      };
+    mockRequire('../src/server/util/mongoose-utils', {
+      getMongoUri: getMongoUriMock,
+      mongoOptions: mongoOptionsMock,
     });
     });
 
 
-    const requireConfig = () => {
-      require('./migrate-mongo-config');
-    };
+    // use reRequire to avoid using module cache
+    const caller = () => reRequire('./migrate-mongo-config');
 
 
-    expect(requireConfig).toThrow('An env var MIGRATIONS_DIR must be set.');
+    expect(caller).toThrow('An env var MIGRATIONS_DIR must be set.');
 
 
-    jest.dontMock('../../src/server/util/mongoose-utils');
+    mockRequire.stop('../src/server/util/mongoose-utils');
 
 
-    expect(initMongooseGlobalSettingsMock).not.toHaveBeenCalled();
+    expect(getMongoUriMock).not.toHaveBeenCalled();
   });
   });
 
 
-  /* eslint-disable indent */
-  describe.each`
+  describe.concurrent.each`
     MONGO_URI                                         | expectedDbName
     MONGO_URI                                         | expectedDbName
     ${'mongodb://example.com/growi'}                  | ${'growi'}
     ${'mongodb://example.com/growi'}                  | ${'growi'}
     ${'mongodb://user:pass@example.com/growi'}        | ${'growi'}
     ${'mongodb://user:pass@example.com/growi'}        | ${'growi'}
@@ -40,25 +45,21 @@ describe('config/migrate-mongo-config.js', () => {
 
 
     test(`when 'MONGO_URI' is '${MONGO_URI}`, () => {
     test(`when 'MONGO_URI' is '${MONGO_URI}`, () => {
 
 
-      const initMongooseGlobalSettingsMock = jest.fn();
-      const mongoOptionsMock = jest.fn();
+      const getMongoUriMock = vi.fn(() => MONGO_URI);
+      const mongoOptionsMock = vi.fn();
 
 
       // mock for mongoose-utils
       // mock for mongoose-utils
-      jest.doMock('../../src/server/util/mongoose-utils', () => {
-        return {
-          initMongooseGlobalSettings: initMongooseGlobalSettingsMock,
-          getMongoUri: () => {
-            return MONGO_URI;
-          },
-          mongoOptions: mongoOptionsMock,
-        };
+      mockRequire('../src/server/util/mongoose-utils', {
+        getMongoUri: getMongoUriMock,
+        mongoOptions: mongoOptionsMock,
       });
       });
 
 
-      const { mongodb, migrationsDir, changelogCollectionName } = require('./migrate-mongo-config');
+      // use reRequire to avoid using module cache
+      const { mongodb, migrationsDir, changelogCollectionName } = reRequire('./migrate-mongo-config');
 
 
-      jest.dontMock('../../src/server/util/mongoose-utils');
+      mockRequire.stop('../src/server/util/mongoose-utils');
 
 
-      expect(initMongooseGlobalSettingsMock).toHaveBeenCalledTimes(1);
+      // expect(getMongoUriMock).toHaveBeenCalledOnce();
       expect(mongodb.url).toBe(MONGO_URI);
       expect(mongodb.url).toBe(MONGO_URI);
       expect(mongodb.databaseName).toBe(expectedDbName);
       expect(mongodb.databaseName).toBe(expectedDbName);
       expect(mongodb.options).toBe(mongoOptionsMock);
       expect(mongodb.options).toBe(mongoOptionsMock);
@@ -66,6 +67,5 @@ describe('config/migrate-mongo-config.js', () => {
       expect(changelogCollectionName).toBe('migrations');
       expect(changelogCollectionName).toBe('migrations');
     });
     });
   });
   });
-  /* eslint-enable indent */
 
 
 });
 });

+ 1 - 5
apps/app/src/server/util/mongoose-utils.ts

@@ -1,16 +1,12 @@
 import mongoose from 'mongoose';
 import mongoose from 'mongoose';
 import type {
 import type {
-  Model, Document, Schema, ConnectOptions,
+  Model, Document, ConnectOptions,
 } from 'mongoose';
 } from 'mongoose';
 
 
 // suppress DeprecationWarning: current Server Discovery and Monitoring engine is deprecated, and will be removed in a future version
 // suppress DeprecationWarning: current Server Discovery and Monitoring engine is deprecated, and will be removed in a future version
 type ConnectionOptionsExtend = {
 type ConnectionOptionsExtend = {
   useUnifiedTopology: boolean
   useUnifiedTopology: boolean
 }
 }
-// No More Deprecation Warning Options
-// Removed useFindAndModify and useCreateIndex option
-// see: https://mongoosejs.com/docs/migrating_to_6.html#no-more-deprecation-warning-options
-export const initMongooseGlobalSettings = (): void => {};
 
 
 export const getMongoUri = (): string => {
 export const getMongoUri = (): string => {
   const { env } = process;
   const { env } = process;