| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- describe('config/migrate-mongo-config.js', () => {
- beforeEach(async() => {
- jest.resetModules();
- });
- test('throws an error when MIGRATIONS_DIR is not set', () => {
- const initMongooseGlobalSettingsMock = jest.fn();
- // mock for mongoose-utils
- jest.doMock('../../src/server/util/mongoose-utils', () => {
- return {
- initMongooseGlobalSettings: initMongooseGlobalSettingsMock,
- };
- });
- const requireConfig = () => {
- require('../../config/migrate-mongo-config');
- };
- expect(requireConfig).toThrow('An env var MIGRATIONS_DIR must be set.');
- jest.dontMock('../../src/server/util/mongoose-utils');
- expect(initMongooseGlobalSettingsMock).not.toHaveBeenCalled();
- });
- /* eslint-disable indent */
- describe.each`
- MONGO_URI | expectedDbName
- ${'mongodb://example.com/growi'} | ${'growi'}
- ${'mongodb://user:pass@example.com/growi'} | ${'growi'}
- ${'mongodb://example.com/growi?replicaSet=mySet'} | ${'growi'}
- `('returns', ({ MONGO_URI, expectedDbName }) => {
- beforeEach(async() => {
- process.env.MIGRATIONS_DIR = 'testdir/migrations';
- });
- test(`when 'MONGO_URI' is '${MONGO_URI}`, () => {
- const initMongooseGlobalSettingsMock = jest.fn();
- const mongoOptionsMock = jest.fn();
- // mock for mongoose-utils
- jest.doMock('../../src/server/util/mongoose-utils', () => {
- return {
- initMongooseGlobalSettings: initMongooseGlobalSettingsMock,
- getMongoUri: () => {
- return MONGO_URI;
- },
- mongoOptions: mongoOptionsMock,
- };
- });
- const { mongodb, migrationsDir, changelogCollectionName } = require('../../config/migrate-mongo-config');
- jest.dontMock('../../src/server/util/mongoose-utils');
- expect(initMongooseGlobalSettingsMock).toHaveBeenCalledTimes(1);
- expect(mongodb.url).toBe(MONGO_URI);
- expect(mongodb.databaseName).toBe(expectedDbName);
- expect(mongodb.options).toBe(mongoOptionsMock);
- expect(migrationsDir).toBe('testdir/migrations');
- expect(changelogCollectionName).toBe('migrations');
- });
- });
- /* eslint-enable indent */
- });
|