mirror of
https://github.com/Unleash/unleash.git
synced 2024-10-23 20:07:40 +02:00
9bd23dc735
make sure we destroy all the stores which should also cancel any background work they have for the database.
79 lines
2.0 KiB
JavaScript
79 lines
2.0 KiB
JavaScript
'use strict';
|
|
|
|
const test = require('ava');
|
|
const dbInit = require('../../helpers/database-init');
|
|
const { setupApp } = require('../../helpers/test-helper');
|
|
const getLogger = require('../../../fixtures/no-logger');
|
|
|
|
let stores;
|
|
let db;
|
|
let reset = () => {};
|
|
|
|
test.before(async () => {
|
|
db = await dbInit('metrics_serial', getLogger);
|
|
stores = db.stores;
|
|
reset = db.reset;
|
|
});
|
|
|
|
test.after(async () => {
|
|
await db.destroy();
|
|
});
|
|
|
|
test.afterEach(async () => {
|
|
await reset();
|
|
});
|
|
|
|
test.serial('should get application details', async t => {
|
|
t.plan(3);
|
|
const request = await setupApp(stores);
|
|
return request
|
|
.get('/api/admin/metrics/applications/demo-app-1')
|
|
.expect('Content-Type', /json/)
|
|
.expect(res => {
|
|
t.true(res.status === 200);
|
|
t.true(res.body.appName === 'demo-app-1');
|
|
t.true(res.body.instances.length === 1);
|
|
});
|
|
});
|
|
|
|
test.serial('should get list of applications', async t => {
|
|
t.plan(2);
|
|
const request = await setupApp(stores);
|
|
return request
|
|
.get('/api/admin/metrics/applications')
|
|
.expect('Content-Type', /json/)
|
|
.expect(res => {
|
|
t.true(res.status === 200);
|
|
t.is(res.body.applications.length, 3);
|
|
});
|
|
});
|
|
|
|
test.serial('should delete application', async t => {
|
|
t.plan(2);
|
|
const request = await setupApp(stores);
|
|
await request
|
|
.delete('/api/admin/metrics/applications/deletable-app')
|
|
.expect(res => {
|
|
t.is(res.status, 200);
|
|
});
|
|
return request
|
|
.get('/api/admin/metrics/applications')
|
|
.expect('Content-Type', /json/)
|
|
.expect(res => {
|
|
t.is(res.body.applications.length, 2);
|
|
});
|
|
});
|
|
|
|
test.serial(
|
|
'deleting an application should be idempotent, so expect 200',
|
|
async t => {
|
|
t.plan(1);
|
|
const request = await setupApp(stores);
|
|
return request
|
|
.delete('/api/admin/metrics/applications/unknown')
|
|
.expect(res => {
|
|
t.is(res.status, 200);
|
|
});
|
|
},
|
|
);
|