mirror of
https://github.com/strapi/strapi.git
synced 2025-11-08 22:32:02 +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