From ea6b19637d259fb1354920614c406adef144ffbd Mon Sep 17 00:00:00 2001 From: abdou6666 Date: Mon, 10 Feb 2025 09:12:25 +0100 Subject: [PATCH 1/3] feat: e2e test for updating block trigger to postback menu --- .../chat/controllers/block.controller.spec.ts | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/api/src/chat/controllers/block.controller.spec.ts b/api/src/chat/controllers/block.controller.spec.ts index 74e73021..d42a4a67 100644 --- a/api/src/chat/controllers/block.controller.spec.ts +++ b/api/src/chat/controllers/block.controller.spec.ts @@ -53,6 +53,7 @@ import { CategoryRepository } from '../repositories/category.repository'; import { LabelRepository } from '../repositories/label.repository'; import { Block, BlockModel } from '../schemas/block.schema'; import { LabelModel } from '../schemas/label.schema'; +import { PayloadType } from '../schemas/types/message'; import { BlockService } from '../services/block.service'; import { CategoryService } from '../services/category.service'; import { LabelService } from '../services/label.service'; @@ -336,4 +337,21 @@ describe('BlockController', () => { ).rejects.toThrow(getUpdateOneError(Block.name, blockToDelete.id)); }); }); + + it('should update block trigger to postback menu', async () => { + jest.spyOn(blockService, 'updateOne'); + const updateBlock: BlockUpdateDto = { + patterns: [ + { + label: 'postback123', + value: 'postback123', + type: PayloadType.menu, + }, + ], + }; + const result = await blockController.updateOne(block.id, updateBlock); + expect(blockService.updateOne).toHaveBeenCalledWith(block.id, updateBlock); + + expect(result.patterns).toEqual(updateBlock.patterns); + }); }); From 0cf437e773ebe7bc60a3a4806bce78a95da56cfb Mon Sep 17 00:00:00 2001 From: abdou6666 Date: Tue, 4 Mar 2025 13:06:42 +0100 Subject: [PATCH 2/3] fix: add menu value to enum --- api/src/chat/controllers/block.controller.spec.ts | 2 +- api/src/chat/schemas/types/button.ts | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/api/src/chat/controllers/block.controller.spec.ts b/api/src/chat/controllers/block.controller.spec.ts index d42a4a67..330d74e1 100644 --- a/api/src/chat/controllers/block.controller.spec.ts +++ b/api/src/chat/controllers/block.controller.spec.ts @@ -53,7 +53,7 @@ import { CategoryRepository } from '../repositories/category.repository'; import { LabelRepository } from '../repositories/label.repository'; import { Block, BlockModel } from '../schemas/block.schema'; import { LabelModel } from '../schemas/label.schema'; -import { PayloadType } from '../schemas/types/message'; +import { PayloadType } from '../schemas/types/button'; import { BlockService } from '../services/block.service'; import { CategoryService } from '../services/category.service'; import { LabelService } from '../services/label.service'; diff --git a/api/src/chat/schemas/types/button.ts b/api/src/chat/schemas/types/button.ts index fb209779..8391c41b 100644 --- a/api/src/chat/schemas/types/button.ts +++ b/api/src/chat/schemas/types/button.ts @@ -41,4 +41,5 @@ export enum PayloadType { quick_reply = 'quick_reply', button = 'button', outcome = 'outcome', + menu = 'menu', } From 557905278770d0b482c1023e157487c85e9887d5 Mon Sep 17 00:00:00 2001 From: abdou6666 Date: Wed, 2 Apr 2025 18:06:46 +0100 Subject: [PATCH 3/3] fix: apply feedback --- api/src/chat/controllers/block.controller.spec.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/api/src/chat/controllers/block.controller.spec.ts b/api/src/chat/controllers/block.controller.spec.ts index 330d74e1..236c2d06 100644 --- a/api/src/chat/controllers/block.controller.spec.ts +++ b/api/src/chat/controllers/block.controller.spec.ts @@ -352,6 +352,15 @@ describe('BlockController', () => { const result = await blockController.updateOne(block.id, updateBlock); expect(blockService.updateOne).toHaveBeenCalledWith(block.id, updateBlock); + expect( + result.patterns.find( + (pattern) => + typeof pattern === 'object' && + 'type' in pattern && + pattern.type === PayloadType.menu && + pattern, + ), + ).toBeDefined(); expect(result.patterns).toEqual(updateBlock.patterns); }); });