Merge branch '1132-issue---api-make-sure-hookentityprepostcreate-is-used-across-the-board' into 1134-issue---api-make-sure-hookentityprepostupdate-is-used-across-the-board

This commit is contained in:
yassinedorbozgithub 2025-06-17 09:01:19 +01:00
commit 4b33b21859
2 changed files with 41 additions and 13 deletions

View File

@ -48,6 +48,8 @@ describe('NlpEntityRepository', () => {
let nlpValueRepository: NlpValueRepository; let nlpValueRepository: NlpValueRepository;
let firstNameNlpEntity: NlpEntity | null; let firstNameNlpEntity: NlpEntity | null;
let nlpService: NlpService; let nlpService: NlpService;
let llmNluHelper: LlmNluHelper;
let nlpEntityService: NlpEntityService;
beforeAll(async () => { beforeAll(async () => {
const { getMocks, module } = await buildTestingMocks({ const { getMocks, module } = await buildTestingMocks({
@ -99,15 +101,17 @@ describe('NlpEntityRepository', () => {
], ],
}); });
[nlpEntityRepository, nlpValueRepository, nlpService] = await getMocks([ [nlpEntityRepository, nlpValueRepository, nlpService, nlpEntityService] =
NlpEntityRepository, await getMocks([
NlpValueRepository, NlpEntityRepository,
NlpService, NlpValueRepository,
]); NlpService,
NlpEntityService,
]);
firstNameNlpEntity = await nlpEntityRepository.findOne({ firstNameNlpEntity = await nlpEntityRepository.findOne({
name: 'firstname', name: 'firstname',
}); });
const llmNluHelper = module.get(LlmNluHelper); llmNluHelper = module.get(LlmNluHelper);
module.get(HelperService).register(llmNluHelper); module.get(HelperService).register(llmNluHelper);
}); });
@ -179,8 +183,18 @@ describe('NlpEntityRepository', () => {
it('should not create and attached a foreign_id to the create nlp entity', async () => { it('should not create and attached a foreign_id to the create nlp entity', async () => {
nlpEntityRepository.eventEmitter.once( nlpEntityRepository.eventEmitter.once(
'hook:nlpEntity:postCreate', 'hook:nlpEntity:postCreate',
async (...args) => { async (...[created]) => {
await nlpService.handleEntityPostCreate(args[0]); const spy1 = jest.spyOn(llmNluHelper, 'addEntity');
const spy2 = jest.spyOn(nlpEntityService, 'updateOne');
await nlpService.handleEntityPostCreate(created);
expect(spy1).toHaveBeenCalledWith(created);
expect(spy2).toHaveBeenCalledWith(
{
_id: created._id,
},
{ foreign_id: await spy1.mock.results[0].value },
);
}, },
); );
@ -199,8 +213,8 @@ describe('NlpEntityRepository', () => {
it('should not create and attached a foreign_id to the create nlp entity with builtin true', async () => { it('should not create and attached a foreign_id to the create nlp entity with builtin true', async () => {
nlpEntityRepository.eventEmitter.once( nlpEntityRepository.eventEmitter.once(
'hook:nlpEntity:postCreate', 'hook:nlpEntity:postCreate',
async (...args) => { async (...[created]) => {
await nlpService.handleEntityPostCreate(args[0]); await nlpService.handleEntityPostCreate(created);
}, },
); );

View File

@ -55,6 +55,8 @@ describe('NlpValueRepository', () => {
let nlpValues: NlpValue[]; let nlpValues: NlpValue[];
let nlpService: NlpService; let nlpService: NlpService;
let nlpEntityRepository: NlpEntityRepository; let nlpEntityRepository: NlpEntityRepository;
let llmNluHelper: LlmNluHelper;
let nlpValueService: NlpValueService;
beforeAll(async () => { beforeAll(async () => {
const { getMocks, module } = await buildTestingMocks({ const { getMocks, module } = await buildTestingMocks({
@ -109,14 +111,16 @@ describe('NlpValueRepository', () => {
nlpSampleEntityRepository, nlpSampleEntityRepository,
nlpService, nlpService,
nlpEntityRepository, nlpEntityRepository,
nlpValueService,
] = await getMocks([ ] = await getMocks([
NlpValueRepository, NlpValueRepository,
NlpSampleEntityRepository, NlpSampleEntityRepository,
NlpService, NlpService,
NlpEntityRepository, NlpEntityRepository,
NlpValueService,
]); ]);
nlpValues = await nlpValueRepository.findAll(); nlpValues = await nlpValueRepository.findAll();
const llmNluHelper = module.get(LlmNluHelper); llmNluHelper = module.get(LlmNluHelper);
module.get(HelperService).register(llmNluHelper); module.get(HelperService).register(llmNluHelper);
}); });
@ -192,8 +196,18 @@ describe('NlpValueRepository', () => {
it('should create and attached a foreign_id to the create nlp value', async () => { it('should create and attached a foreign_id to the create nlp value', async () => {
nlpValueRepository.eventEmitter.once( nlpValueRepository.eventEmitter.once(
'hook:nlpValue:postCreate', 'hook:nlpValue:postCreate',
async (...args) => { async (...[created]) => {
await nlpService.handleValuePostCreate(args[0]); const spy1 = jest.spyOn(llmNluHelper, 'addValue');
const spy2 = jest.spyOn(nlpValueService, 'updateOne');
await nlpService.handleValuePostCreate(created);
expect(spy1).toHaveBeenCalledWith(created);
expect(spy2).toHaveBeenCalledWith(
{
_id: created._id,
},
{ foreign_id: await spy1.mock.results[0].value },
);
}, },
); );