Skip to content

Commit 6544b56

Browse files
committed
update rbm test
1 parent d54d9bf commit 6544b56

1 file changed

Lines changed: 92 additions & 0 deletions

File tree

tests/smoke/multi-channel-api.test.ts

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@ import {
1212
MultiChannelMessageRequest,
1313
MessageDirectionEnum,
1414
RbmActionTypeEnum,
15+
CardWidthEnum,
16+
RbmMediaHeightEnum,
17+
RbmCardContent,
18+
RbmMessageCarouselCard,
1519
RbmMessageMedia,
1620
RbmActionDial,
1721
MultiChannelChannelListRBMResponseObject,
@@ -292,4 +296,92 @@ describe('MultiChannelApi', () => {
292296
expect(rbmContent.cardContent.title).toBeString();
293297
});
294298
});
299+
300+
describe('createMultiChannelRBMRichCarouselMessage', () => {
301+
test('should create a multi-channel RBM carousel rich card message', async () => {
302+
const carouselCard: RbmCardContent = {
303+
title: "Card 1 Title",
304+
description: "Card 1 Description",
305+
media: {
306+
fileUrl: "https://example.com/image.jpg",
307+
thumbnailUrl: "https://example.com/thumbnail.jpg",
308+
height: RbmMediaHeightEnum.Tall
309+
},
310+
suggestions: [{
311+
type: RbmActionTypeEnum.DialPhone,
312+
text: "Call Us",
313+
postbackData: "tel:+1234567890",
314+
phoneNumber: BW_NUMBER
315+
}]
316+
};
317+
318+
const content: RbmMessageCarouselCard = {
319+
cardWidth: CardWidthEnum.Medium,
320+
cardContents: [
321+
carouselCard,
322+
{ title: "Card 2 Title" }
323+
]
324+
};
325+
326+
const channelListObject: MultiChannelChannelListRBMObject = {
327+
from: BW_NUMBER,
328+
applicationId: BW_MESSAGING_APPLICATION_ID,
329+
channel: MultiChannelMessageChannelEnum.Rbm,
330+
content,
331+
};
332+
333+
const multiChannelMessageRequest: MultiChannelMessageRequest = {
334+
to: USER_NUMBER,
335+
tag: "tag",
336+
priority: PriorityEnum.High,
337+
expiration,
338+
channelList: [channelListObject],
339+
};
340+
341+
const { status, data } = await multiChannelApi.createMultiChannelMessage(
342+
BW_ACCOUNT_ID,
343+
multiChannelMessageRequest
344+
);
345+
346+
expect(status).toEqual(202);
347+
expect(data.links).toBeArray();
348+
expect(data.data?.id).toBeString();
349+
expect(data.data?.time).toBeDateString();
350+
expect(data.data?.direction).toBeOneOf(Object.values(MessageDirectionEnum));
351+
expect(data.data?.to).toBeArray();
352+
expect(data.data?.tag).toBeString();
353+
expect(data.data?.priority).toBeOneOf(Object.values(PriorityEnum));
354+
expect(data.data?.expiration).toBeDateString();
355+
expect(data.data?.channelList).toBeArray();
356+
expect(data.data?.channelList![0]).toBeObject();
357+
const channelListObject = data.data?.channelList![0] as MultiChannelChannelListRBMResponseObject;
358+
expect(channelListObject.from).toEqual(BW_NUMBER);
359+
expect(channelListObject.applicationId).toEqual(BW_MESSAGING_APPLICATION_ID);
360+
expect(channelListObject.channel).toEqual(MultiChannelMessageChannelEnum.Rbm);
361+
expect(channelListObject.content).toBeObject();
362+
expect(channelListObject.owner).toEqual(BW_NUMBER);
363+
const rbmContent = channelListObject.content as RbmMessageCarouselCard;
364+
expect(rbmContent.cardWidth).toEqual(CardWidthEnum.Medium);
365+
expect(rbmContent.cardContents).toBeArray();
366+
expect(rbmContent.cardContents).toHaveLength(2);
367+
expect(rbmContent.cardContents[0]).toBeObject();
368+
const firstCard = rbmContent.cardContents[0] as RbmCardContent;
369+
expect(firstCard.title).toBeString();
370+
expect(firstCard.description).toBeString();
371+
expect(firstCard.media).toBeObject();
372+
expect(firstCard.media!.fileUrl).toBeString();
373+
expect(firstCard.media!.thumbnailUrl).toBeString();
374+
expect(firstCard.media!.height).toEqual(RbmMediaHeightEnum.Tall);
375+
expect(firstCard.suggestions).toBeArray();
376+
expect(firstCard.suggestions[0]).toBeObject();
377+
const rbmActionDial = firstCard.suggestions[0] as RbmActionDial;
378+
expect(rbmActionDial.type).toEqual(RbmActionTypeEnum.DialPhone);
379+
expect(rbmActionDial.text).toBeString();
380+
expect(rbmActionDial.postbackData).toBeString();
381+
expect(rbmActionDial.phoneNumber).toBeString();
382+
expect(rbmContent.cardContents[1]).toBeObject();
383+
const secondCard = rbmContent.cardContents[1] as RbmCardContent;
384+
expect(secondCard.title).toBeString();
385+
});
386+
});
295387
});

0 commit comments

Comments
 (0)