1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-02-04 00:18:01 +01:00

fix: Make e2e test more stable (#767)

make sure we destroy all the stores which should also cancel
any background work they have for the database.
This commit is contained in:
Ivar Conradi Østhus 2021-03-19 22:25:21 +01:00 committed by GitHub
parent f98a902615
commit 9bd23dc735
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
24 changed files with 79 additions and 48 deletions

View File

@ -9,14 +9,15 @@ const getLogger = require('../../../fixtures/no-logger');
const MASKED_VALUE = '*****';
let stores;
let db;
test.before(async () => {
const db = await dbInit('addon_api_serial', getLogger);
db = await dbInit('addon_api_serial', getLogger);
stores = db.stores;
});
test.after(async () => {
await stores.db.destroy();
await db.destroy();
});
test.serial('gets all addons', async t => {

View File

@ -7,14 +7,15 @@ const { setupApp } = require('../../helpers/test-helper');
const getLogger = require('../../../fixtures/no-logger');
let stores;
let db;
test.before(async () => {
const db = await dbInit('context_api_serial', getLogger);
db = await dbInit('context_api_serial', getLogger);
stores = db.stores;
});
test.after(async () => {
await stores.db.destroy();
await db.destroy();
});
test.serial('gets all context fields', async t => {

View File

@ -6,14 +6,15 @@ const dbInit = require('../../helpers/database-init');
const getLogger = require('../../../fixtures/no-logger');
let stores;
let db;
test.before(async () => {
const db = await dbInit('event_api_serial', getLogger);
db = await dbInit('event_api_serial', getLogger);
stores = db.stores;
});
test.after(async () => {
await stores.db.destroy();
await db.destroy();
});
test.serial('returns events', async t => {

View File

@ -6,14 +6,15 @@ const dbInit = require('../../helpers/database-init');
const getLogger = require('../../../fixtures/no-logger');
let stores;
let db;
test.before(async () => {
const db = await dbInit('archive_serial', getLogger);
db = await dbInit('archive_serial', getLogger);
stores = db.stores;
});
test.after(async () => {
await stores.db.destroy();
await db.destroy();
});
test.serial('returns three archived toggles', async t => {

View File

@ -6,14 +6,15 @@ const dbInit = require('../../helpers/database-init');
const getLogger = require('../../../fixtures/no-logger');
let stores;
let db;
test.before(async () => {
const db = await dbInit('feature_api_auth', getLogger);
db = await dbInit('feature_api_auth', getLogger);
stores = db.stores;
});
test.after(async () => {
await stores.db.destroy();
await db.destroy();
});
test.serial('creates new feature toggle with createdBy', async t => {

View File

@ -9,14 +9,15 @@ const dbInit = require('../../helpers/database-init');
const getLogger = require('../../../fixtures/no-logger');
let stores;
let db;
test.before(async () => {
const db = await dbInit('feature_api_custom_auth', getLogger);
db = await dbInit('feature_api_custom_auth', getLogger);
stores = db.stores;
});
test.after(async () => {
await stores.db.destroy();
await db.destroy();
});
test.serial('should require authenticated user', async t => {

View File

@ -7,14 +7,15 @@ const { setupApp } = require('../../helpers/test-helper');
const getLogger = require('../../../fixtures/no-logger');
let stores;
let db;
test.before(async () => {
const db = await dbInit('feature_api_serial', getLogger);
db = await dbInit('feature_api_serial', getLogger);
stores = db.stores;
});
test.after(async () => {
await stores.db.destroy();
await db.destroy();
});
test.serial('returns list of feature toggles', async t => {

View File

@ -6,16 +6,17 @@ const { setupApp } = require('../../helpers/test-helper');
const getLogger = require('../../../fixtures/no-logger');
let stores;
let db;
let reset = () => {};
test.before(async () => {
const db = await dbInit('metrics_serial', getLogger);
db = await dbInit('metrics_serial', getLogger);
stores = db.stores;
reset = db.reset;
});
test.after(async () => {
await stores.db.destroy();
await db.destroy();
});
test.afterEach(async () => {

View File

@ -7,14 +7,15 @@ const { setupApp } = require('../../helpers/test-helper');
const getLogger = require('../../../fixtures/no-logger');
let stores;
let db;
test.before(async () => {
const db = await dbInit('state_api_serial', getLogger);
db = await dbInit('state_api_serial', getLogger);
stores = db.stores;
});
test.after(async () => {
await stores.db.destroy();
await db.destroy();
});
test.serial('exports strategies and features as json by default', async t => {

View File

@ -7,14 +7,15 @@ const { setupApp } = require('../../helpers/test-helper');
const getLogger = require('../../../fixtures/no-logger');
let stores;
let db;
test.before(async () => {
const db = await dbInit('strategy_api_serial', getLogger);
db = await dbInit('strategy_api_serial', getLogger);
stores = db.stores;
});
test.after(async () => {
await stores.db.destroy();
await db.destroy();
});
test.serial('gets all strategies', async t => {

View File

@ -6,14 +6,15 @@ const { setupApp } = require('../../helpers/test-helper');
const getLogger = require('../../../fixtures/no-logger');
let stores;
let db;
test.before(async () => {
const db = await dbInit('tag_types_api_serial', getLogger);
db = await dbInit('tag_types_api_serial', getLogger);
stores = db.stores;
});
test.after(async () => {
await stores.db.destroy();
await db.destroy();
});
test.serial('returns list of tag-types', async t => {

View File

@ -6,14 +6,15 @@ const { setupApp } = require('../../helpers/test-helper');
const getLogger = require('../../../fixtures/no-logger');
let stores;
let db;
test.before(async () => {
const db = await dbInit('tag_api_serial', getLogger);
db = await dbInit('tag_api_serial', getLogger);
stores = db.stores;
});
test.after(async () => {
await stores.db.destroy();
await db.destroy();
});
test.serial('returns list of tags', async t => {

View File

@ -6,14 +6,15 @@ const dbInit = require('../../helpers/database-init');
const getLogger = require('../../../fixtures/no-logger');
let stores;
let db;
test.before(async () => {
const db = await dbInit('feature_api_client', getLogger);
db = await dbInit('feature_api_client', getLogger);
stores = db.stores;
});
test.after(async () => {
await stores.db.destroy();
await db.destroy();
});
test.serial('returns four feature toggles', async t => {

View File

@ -8,14 +8,15 @@ const dbInit = require('../../helpers/database-init');
const getLogger = require('../../../fixtures/no-logger');
let stores;
let db;
test.before(async () => {
const db = await dbInit('metrics_api_client', getLogger);
db = await dbInit('metrics_api_client', getLogger);
stores = db.stores;
});
test.after(async () => {
await stores.db.destroy();
await db.destroy();
});
test.serial('should be possble to send metrics', async t => {

View File

@ -15,14 +15,15 @@ const asyncFilter = async (arr, predicate) => {
};
let stores;
let db;
test.before(async () => {
const db = await dbInit('register_client', getLogger);
db = await dbInit('register_client', getLogger);
stores = db.stores;
});
test.after(async () => {
await stores.db.destroy();
await db.destroy();
});
test.serial('should register client', async t => {

View File

@ -6,14 +6,15 @@ const dbInit = require('./helpers/database-init');
const getLogger = require('../fixtures/no-logger');
let stores;
let db;
test.before(async () => {
const db = await dbInit('health_api', getLogger);
db = await dbInit('health_api', getLogger);
stores = db.stores;
});
test.after(async () => {
await stores.db.destroy();
await db.destroy();
});
test('returns health good', async t => {

View File

@ -107,5 +107,13 @@ module.exports = async function init(databaseSchema = 'test', getLogger) {
await resetDatabase(stores);
await setupDatabase(stores);
},
destroy: async () => {
const { clientInstanceStore, clientMetricsStore } = stores;
return new Promise((resolve, reject) => {
clientInstanceStore.destroy();
clientMetricsStore.destroy();
db.destroy(error => (error ? reject(error) : resolve()));
});
},
};
};

View File

@ -11,6 +11,7 @@ const {
const permissions = require('../../../lib/permissions');
const User = require('../../../lib/user');
let db;
let stores;
let accessService;
@ -38,7 +39,7 @@ const createSuperUser = async () => {
};
test.before(async () => {
const db = await dbInit('access_service_serial', getLogger);
db = await dbInit('access_service_serial', getLogger);
stores = db.stores;
// projectStore = stores.projectStore;
accessService = new AccessService(stores, { getLogger });
@ -50,7 +51,7 @@ test.before(async () => {
});
test.after(async () => {
await stores.db.destroy();
await db.destroy();
});
test.serial('should have access to admin addons', async t => {

View File

@ -6,10 +6,11 @@ const ClientMetricsService = require('../../../lib/services/client-metrics');
const { APPLICATION_CREATED } = require('../../../lib/event-type');
let stores;
let db;
let clientMetricsService;
test.before(async () => {
const db = await dbInit('client_metrics_service_serial', getLogger);
db = await dbInit('client_metrics_service_serial', getLogger);
stores = db.stores;
clientMetricsService = new ClientMetricsService(stores, {
getLogger,
@ -19,7 +20,7 @@ test.before(async () => {
});
test.after(async () => {
await stores.db.destroy();
await db.destroy();
});
test.serial('Apps registered should be announced', async t => {
t.plan(3);

View File

@ -11,13 +11,14 @@ const { UPDATE_PROJECT } = require('../../../lib/permissions');
const NotFoundError = require('../../../lib/error/notfound-error');
let stores;
// let projectStore;
let db;
let projectService;
let accessService;
let user;
test.before(async () => {
const db = await dbInit('project_service_serial', getLogger);
db = await dbInit('project_service_serial', getLogger);
stores = db.stores;
user = await stores.userStore.insert(
new User({ name: 'Some Name', email: 'test@getunleash.io' }),
@ -28,7 +29,7 @@ test.before(async () => {
});
test.after(async () => {
await stores.db.destroy();
await db.destroy();
});
test.serial('should have default project', async t => {

View File

@ -10,17 +10,18 @@ const {
const dbInit = require('../helpers/database-init');
const getLogger = require('../../fixtures/no-logger');
let db;
let stores;
let eventStore;
test.before(async () => {
const db = await dbInit('event_store_serial', getLogger);
db = await dbInit('event_store_serial', getLogger);
stores = db.stores;
eventStore = stores.eventStore;
});
test.after(async () => {
await stores.db.destroy();
await db.destroy();
});
test.serial('Should include id and createdAt when saving', async t => {
const clock = sinon.useFakeTimers();

View File

@ -5,16 +5,17 @@ const dbInit = require('../helpers/database-init');
const getLogger = require('../../fixtures/no-logger');
let stores;
let db;
let projectStore;
test.before(async () => {
const db = await dbInit('project_store_serial', getLogger);
db = await dbInit('project_store_serial', getLogger);
stores = db.stores;
projectStore = stores.projectStore;
});
test.after(async () => {
await stores.db.destroy();
await db.destroy();
});
test.serial('should have default project', async t => {

View File

@ -5,14 +5,15 @@ const dbInit = require('../helpers/database-init');
const getLogger = require('../../fixtures/no-logger');
let stores;
let db;
test.before(async () => {
const db = await dbInit('setting_store_serial', getLogger);
db = await dbInit('setting_store_serial', getLogger);
stores = db.stores;
});
test.after(async () => {
await stores.db.destroy();
await db.destroy();
});
test.serial('should have api secret stored', async t => {
@ -20,7 +21,7 @@ test.serial('should have api secret stored', async t => {
t.assert(secret);
});
test.serial('should insert arbitarty value', async t => {
test.serial('should insert arbitrary value', async t => {
const value = { b: 'hello' };
await stores.settingStore.insert('unleash.custom', value);
const ret = await stores.settingStore.get('unleash.custom');

View File

@ -12,14 +12,15 @@ const dbInit = require('../helpers/database-init');
const getLogger = require('../../fixtures/no-logger');
let stores;
let db;
test.before(async () => {
const db = await dbInit('user_store_serial', getLogger);
db = await dbInit('user_store_serial', getLogger);
stores = db.stores;
});
test.after(async () => {
await stores.db.destroy();
await db.destroy();
});
test.serial('should have no users', async t => {