mirror of
https://github.com/strapi/strapi.git
synced 2025-11-02 02:44:55 +00:00
Add unit tests for Lifecycles.run()
This commit is contained in:
parent
273ca638f4
commit
ade70cf78a
55
packages/core/database/lib/__tests__/lifecycles.test.js
Normal file
55
packages/core/database/lib/__tests__/lifecycles.test.js
Normal file
@ -0,0 +1,55 @@
|
||||
'use strict';
|
||||
|
||||
const { createLifecyclesProvider } = require('../lifecycles');
|
||||
|
||||
describe('LifecycleProvider', () => {
|
||||
describe('run', () => {
|
||||
/** @type {import("../lifecycles").LifecycleProvider} */
|
||||
let provider;
|
||||
let dbMetadataGetStub = jest.fn(uid => ({ uid, name: 'TestModel' }));
|
||||
|
||||
beforeEach(() => {
|
||||
const db = {
|
||||
metadata: {
|
||||
get: dbMetadataGetStub,
|
||||
},
|
||||
};
|
||||
provider = createLifecyclesProvider(db);
|
||||
provider.clear();
|
||||
});
|
||||
|
||||
it('store state', async () => {
|
||||
const expectedState = new Date().toISOString();
|
||||
|
||||
const subscriber = {
|
||||
async beforeEvent(event) {
|
||||
event.state = expectedState;
|
||||
},
|
||||
};
|
||||
provider.subscribe(subscriber);
|
||||
|
||||
const stateBefore = await provider.run('beforeEvent', 'test-model', { id: 'instance-id' });
|
||||
|
||||
expect(stateBefore.get(subscriber)).toEqual(expectedState);
|
||||
});
|
||||
|
||||
it('use shared state', async () => {
|
||||
const expectedState = new Date().toISOString();
|
||||
let receivedState;
|
||||
|
||||
provider.subscribe({
|
||||
async beforeEvent(event) {
|
||||
event.state = expectedState;
|
||||
},
|
||||
async afterEvent(event) {
|
||||
receivedState = event.state;
|
||||
},
|
||||
});
|
||||
|
||||
const stateBefore = await provider.run('beforeEvent', 'test-model', { id: 'instance-id' });
|
||||
await provider.run('afterEvent', 'test-model', { id: 'instance-id' }, stateBefore);
|
||||
|
||||
expect(receivedState).toEqual(expectedState);
|
||||
});
|
||||
});
|
||||
});
|
||||
Loading…
x
Reference in New Issue
Block a user