1
0
mirror of https://github.com/Unleash/unleash.git synced 2025-01-31 00:16:47 +01:00
unleash.unleash/src/lib/routes/admin-api/events.test.ts

74 lines
2.3 KiB
TypeScript
Raw Normal View History

import supertest from 'supertest';
import { createServices } from '../../services';
import { createTestConfig } from '../../../test/config/test-config';
2017-01-06 15:58:02 +01:00
import createStores from '../../../test/fixtures/store';
import getApp from '../../app';
2022-05-30 16:44:37 +02:00
import { FeatureCreatedEvent } from '../../types/events';
2017-01-06 15:58:02 +01:00
2022-05-30 16:44:37 +02:00
async function getSetup(anonymise: boolean = false) {
2017-01-06 15:58:02 +01:00
const base = `/random${Math.round(Math.random() * 1000)}`;
const stores = createStores();
const config = createTestConfig({
server: { baseUriPath: base },
2022-05-30 16:44:37 +02:00
experimental: { anonymiseEventLog: anonymise },
2017-01-06 15:58:02 +01:00
});
const services = createServices(stores, config);
const app = await getApp(config, stores, services);
2017-01-06 15:58:02 +01:00
return { base, eventStore: stores.eventStore, request: supertest(app) };
2017-01-06 15:58:02 +01:00
}
test('should get empty events list via admin', async () => {
expect.assertions(1);
const { request, base } = await getSetup();
2017-01-06 15:58:02 +01:00
return request
.get(`${base}/api/admin/events`)
2017-01-06 15:58:02 +01:00
.expect('Content-Type', /json/)
.expect(200)
.expect((res) => {
expect(res.body.events.length === 0).toBe(true);
2017-01-06 15:58:02 +01:00
});
});
2022-05-30 16:44:37 +02:00
test('should get events list via admin', async () => {
const { request, base, eventStore } = await getSetup();
eventStore.store(
new FeatureCreatedEvent({
createdBy: 'some@email.com',
data: { name: 'test', project: 'default' },
featureName: 'test',
project: 'default',
tags: [],
}),
);
const { body } = await request
.get(`${base}/api/admin/events`)
.expect('Content-Type', /json/)
.expect(200);
expect(body.events.length).toBe(1);
expect(body.events[0].createdBy).toBe('some@email.com');
});
test('should anonymise events list via admin', async () => {
const { request, base, eventStore } = await getSetup(true);
eventStore.store(
new FeatureCreatedEvent({
createdBy: 'some@email.com',
data: { name: 'test', project: 'default' },
featureName: 'test',
project: 'default',
tags: [],
}),
);
const { body } = await request
.get(`${base}/api/admin/events`)
.expect('Content-Type', /json/)
.expect(200);
expect(body.events.length).toBe(1);
expect(body.events[0].createdBy).toBe('676212ff7@unleash.run');
});