diff --git a/packages/core/admin/ee/server/register.js b/packages/core/admin/ee/server/register.js index bbc90b387b..27db03bd13 100644 --- a/packages/core/admin/ee/server/register.js +++ b/packages/core/admin/ee/server/register.js @@ -11,5 +11,5 @@ module.exports = async ({ strapi }) => { auditLogsService.register(); } - await executeCERegister({ strapi }); + executeCERegister({ strapi }); }; diff --git a/packages/core/admin/ee/server/services/__tests__/audit-logs.test.js b/packages/core/admin/ee/server/services/__tests__/audit-logs.test.js index d014c6a4ce..ef4c7dbd33 100644 --- a/packages/core/admin/ee/server/services/__tests__/audit-logs.test.js +++ b/packages/core/admin/ee/server/services/__tests__/audit-logs.test.js @@ -7,11 +7,14 @@ jest.mock('../../../../server/register'); describe('Audit logs service', () => { afterEach(() => { - jest.resetAllMocks(); jest.resetModules(); jest.useRealTimers(); }); + afterAll(() => { + jest.resetAllMocks(); + }); + describe('Init with audit logs disabled', () => { beforeAll(() => { jest.mock('@strapi/strapi/lib/utils/ee', () => ({ @@ -25,14 +28,7 @@ describe('Audit logs service', () => { const eeAdminRegister = require('../../register'); const mockRegister = jest.fn(); - global.strapi = { - admin: { - services: { - permission: { - actionProvider: { registerMany: jest.fn() }, - }, - }, - }, + const strapi = { container: { register: mockRegister, }, @@ -46,38 +42,62 @@ describe('Audit logs service', () => { describe('Init with audit logs enabled', () => { 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', () => ({ features: { // We only enabled audit logs isEnabled: (feature) => feature === 'audit-logs', }, })); - global.strapi = { - admin: { - services: { - permission: { - actionProvider: { registerMany: jest.fn() }, - }, - }, - }, - container: { - register: mockRegister, - }, - eventHub: createEventHub(), - requestContext: { - get() { - return { - state: { - user: { - id: 1, - }, - }, - }; - }, - }, - }; + + jest.mock('@strapi/provider-audit-logs-local', () => ({ + register: jest.fn(), + saveEvent: mockSaveEvent, + })); + }); + + afterEach(() => { + mockSaveEvent.mockClear(); }); 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 () => { - const logSpy = jest.spyOn(console, 'log'); - const auditLogsService = createAuditLogsService(strapi); auditLogsService.register(); jest.useFakeTimers().setSystemTime(new Date('1970-01-01T00:00:00.000Z')); await strapi.eventHub.emit('entry.create', { meta: 'test' }); - // TODO: Replace with a test to save to db - const [message, payload] = logSpy.mock.lastCall; - expect(message).toBe('Saving event'); - expect(payload).toMatchObject({ - action: 'entry.create', - date: '1970-01-01T00:00:00.000Z', - payload: { meta: 'test' }, - userId: 1, - }); + // Sends the processed event to a provider + expect(mockSaveEvent).toHaveBeenCalledTimes(1); + expect(mockSaveEvent).toHaveBeenCalledWith( + expect.objectContaining({ + action: 'entry.create', + date: '1970-01-01T00:00:00.000Z', + payload: { meta: 'test' }, + userId: 1, + }) + ); }); it('ignores events that are not in the event map', async () => { @@ -120,14 +139,5 @@ describe('Audit logs service', () => { 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'); - }); }); }); diff --git a/packages/core/admin/ee/server/services/audit-logs.js b/packages/core/admin/ee/server/services/audit-logs.js index da5eced952..bb8574579d 100644 --- a/packages/core/admin/ee/server/services/audit-logs.js +++ b/packages/core/admin/ee/server/services/audit-logs.js @@ -55,10 +55,6 @@ const createAuditLogsService = (strapi) => { }; const handleEvent = async (name, ...args) => { - if (!name) { - throw Error('Name is required'); - } - const processedEvent = processEvent(name, ...args); if (processedEvent) {