mirror of
https://github.com/strapi/strapi.git
synced 2025-08-12 18:53:23 +00:00
Update tests
This commit is contained in:
parent
bc890ae9d3
commit
d90f3524f7
@ -11,5 +11,5 @@ module.exports = async ({ strapi }) => {
|
|||||||
auditLogsService.register();
|
auditLogsService.register();
|
||||||
}
|
}
|
||||||
|
|
||||||
await executeCERegister({ strapi });
|
executeCERegister({ strapi });
|
||||||
};
|
};
|
||||||
|
@ -7,11 +7,14 @@ jest.mock('../../../../server/register');
|
|||||||
|
|
||||||
describe('Audit logs service', () => {
|
describe('Audit logs service', () => {
|
||||||
afterEach(() => {
|
afterEach(() => {
|
||||||
jest.resetAllMocks();
|
|
||||||
jest.resetModules();
|
jest.resetModules();
|
||||||
jest.useRealTimers();
|
jest.useRealTimers();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
afterAll(() => {
|
||||||
|
jest.resetAllMocks();
|
||||||
|
});
|
||||||
|
|
||||||
describe('Init with audit logs disabled', () => {
|
describe('Init with audit logs disabled', () => {
|
||||||
beforeAll(() => {
|
beforeAll(() => {
|
||||||
jest.mock('@strapi/strapi/lib/utils/ee', () => ({
|
jest.mock('@strapi/strapi/lib/utils/ee', () => ({
|
||||||
@ -25,14 +28,7 @@ describe('Audit logs service', () => {
|
|||||||
const eeAdminRegister = require('../../register');
|
const eeAdminRegister = require('../../register');
|
||||||
const mockRegister = jest.fn();
|
const mockRegister = jest.fn();
|
||||||
|
|
||||||
global.strapi = {
|
const strapi = {
|
||||||
admin: {
|
|
||||||
services: {
|
|
||||||
permission: {
|
|
||||||
actionProvider: { registerMany: jest.fn() },
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
container: {
|
container: {
|
||||||
register: mockRegister,
|
register: mockRegister,
|
||||||
},
|
},
|
||||||
@ -46,38 +42,62 @@ describe('Audit logs service', () => {
|
|||||||
|
|
||||||
describe('Init with audit logs enabled', () => {
|
describe('Init with audit logs enabled', () => {
|
||||||
const mockRegister = jest.fn();
|
const mockRegister = jest.fn();
|
||||||
|
const mockAddContentType = jest.fn();
|
||||||
|
const mockGet = jest.fn((name) => {
|
||||||
|
if (name === 'content-types') {
|
||||||
|
return {
|
||||||
|
add: mockAddContentType,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
beforeEach(() => {
|
const strapi = {
|
||||||
|
admin: {
|
||||||
|
services: {
|
||||||
|
permission: {
|
||||||
|
actionProvider: { registerMany: jest.fn() },
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
container: {
|
||||||
|
register: mockRegister,
|
||||||
|
get: mockGet,
|
||||||
|
},
|
||||||
|
entityService: {
|
||||||
|
create: jest.fn(),
|
||||||
|
},
|
||||||
|
eventHub: createEventHub(),
|
||||||
|
requestContext: {
|
||||||
|
get() {
|
||||||
|
return {
|
||||||
|
state: {
|
||||||
|
user: {
|
||||||
|
id: 1,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
},
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
const mockSaveEvent = jest.fn();
|
||||||
|
|
||||||
|
beforeAll(() => {
|
||||||
jest.mock('@strapi/strapi/lib/utils/ee', () => ({
|
jest.mock('@strapi/strapi/lib/utils/ee', () => ({
|
||||||
features: {
|
features: {
|
||||||
// We only enabled audit logs
|
// We only enabled audit logs
|
||||||
isEnabled: (feature) => feature === 'audit-logs',
|
isEnabled: (feature) => feature === 'audit-logs',
|
||||||
},
|
},
|
||||||
}));
|
}));
|
||||||
global.strapi = {
|
|
||||||
admin: {
|
jest.mock('@strapi/provider-audit-logs-local', () => ({
|
||||||
services: {
|
register: jest.fn(),
|
||||||
permission: {
|
saveEvent: mockSaveEvent,
|
||||||
actionProvider: { registerMany: jest.fn() },
|
}));
|
||||||
},
|
});
|
||||||
},
|
|
||||||
},
|
afterEach(() => {
|
||||||
container: {
|
mockSaveEvent.mockClear();
|
||||||
register: mockRegister,
|
|
||||||
},
|
|
||||||
eventHub: createEventHub(),
|
|
||||||
requestContext: {
|
|
||||||
get() {
|
|
||||||
return {
|
|
||||||
state: {
|
|
||||||
user: {
|
|
||||||
id: 1,
|
|
||||||
},
|
|
||||||
},
|
|
||||||
};
|
|
||||||
},
|
|
||||||
},
|
|
||||||
};
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should register and init the audit logs service when registered', async () => {
|
it('should register and init the audit logs service when registered', async () => {
|
||||||
@ -89,23 +109,22 @@ describe('Audit logs service', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('should emit an event and capture it in the audit logs', async () => {
|
it('should emit an event and capture it in the audit logs', async () => {
|
||||||
const logSpy = jest.spyOn(console, 'log');
|
|
||||||
|
|
||||||
const auditLogsService = createAuditLogsService(strapi);
|
const auditLogsService = createAuditLogsService(strapi);
|
||||||
auditLogsService.register();
|
auditLogsService.register();
|
||||||
|
|
||||||
jest.useFakeTimers().setSystemTime(new Date('1970-01-01T00:00:00.000Z'));
|
jest.useFakeTimers().setSystemTime(new Date('1970-01-01T00:00:00.000Z'));
|
||||||
await strapi.eventHub.emit('entry.create', { meta: 'test' });
|
await strapi.eventHub.emit('entry.create', { meta: 'test' });
|
||||||
|
|
||||||
// TODO: Replace with a test to save to db
|
// Sends the processed event to a provider
|
||||||
const [message, payload] = logSpy.mock.lastCall;
|
expect(mockSaveEvent).toHaveBeenCalledTimes(1);
|
||||||
expect(message).toBe('Saving event');
|
expect(mockSaveEvent).toHaveBeenCalledWith(
|
||||||
expect(payload).toMatchObject({
|
expect.objectContaining({
|
||||||
action: 'entry.create',
|
action: 'entry.create',
|
||||||
date: '1970-01-01T00:00:00.000Z',
|
date: '1970-01-01T00:00:00.000Z',
|
||||||
payload: { meta: 'test' },
|
payload: { meta: 'test' },
|
||||||
userId: 1,
|
userId: 1,
|
||||||
});
|
})
|
||||||
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('ignores events that are not in the event map', async () => {
|
it('ignores events that are not in the event map', async () => {
|
||||||
@ -120,14 +139,5 @@ describe('Audit logs service', () => {
|
|||||||
|
|
||||||
expect(logSpy).not.toHaveBeenCalled();
|
expect(logSpy).not.toHaveBeenCalled();
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should throw and error when name is empty', async () => {
|
|
||||||
const auditLogsService = createAuditLogsService(strapi);
|
|
||||||
auditLogsService.register();
|
|
||||||
|
|
||||||
await expect(() => {
|
|
||||||
return strapi.eventHub.emit('', { meta: 'test' });
|
|
||||||
}).rejects.toThrowError('Name is required');
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -55,10 +55,6 @@ const createAuditLogsService = (strapi) => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const handleEvent = async (name, ...args) => {
|
const handleEvent = async (name, ...args) => {
|
||||||
if (!name) {
|
|
||||||
throw Error('Name is required');
|
|
||||||
}
|
|
||||||
|
|
||||||
const processedEvent = processEvent(name, ...args);
|
const processedEvent = processEvent(name, ...args);
|
||||||
|
|
||||||
if (processedEvent) {
|
if (processedEvent) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user