@@ -5,7 +5,13 @@ import {
55 MultiChannelChannelListObject ,
66 MultiChannelMessageChannelEnum ,
77 PriorityEnum ,
8- RbmMessageContentText
8+ RbmMessageContentText ,
9+ SmsMessageContent ,
10+ MmsMessageContent ,
11+ RbmMessageContentText ,
12+ MultiChannelMessageRequest ,
13+ MessageDirectionEnum ,
14+ RbmActionTypeEnum
915} from '../../models' ;
1016
1117describe ( 'MultiChannelApi' , ( ) => {
@@ -18,27 +24,128 @@ describe('MultiChannelApi', () => {
1824 const expirationTime = Date . now ( ) + 1000 * 60 * 60 * 24 + 60 ;
1925 const expiration = new Date ( expirationTime ) . toISOString ( ) ;
2026
21- describe ( 'createMultiChannelMessage' , ( ) => {
22- test ( 'should create a multi-channel message' , async ( ) => {
23- const channelListObject : MultiChannelChannelListObject = {
27+ describe ( 'createMultiChannelSMSMessage' , ( ) => {
28+ test ( 'should create a multi-channel SMS message' , async ( ) => {
29+ const content : SmsMessageContent = { text : "Hello World!" } ;
30+
31+ const channelListObject : MultiChannelChannelListSMSObject = {
2432 from : BW_NUMBER ,
2533 applicationId : BW_MESSAGING_APPLICATION_ID ,
26- channel : MultiChannelMessageChannelEnum . Rbm ,
27- content : {
28- text : "Hello World!"
29- }
34+ channel : MultiChannelMessageChannelEnum . Sms ,
35+ content,
36+ } ;
37+
38+ const multiChannelMessageRequest : MultiChannelMessageRequest = {
39+ to : USER_NUMBER ,
40+ tag : "tag" ,
41+ priority : PriorityEnum . High ,
42+ expiration,
43+ channelList : [ channelListObject ] ,
44+ } ;
45+
46+ const { status, data } = await multiChannelApi . createMultiChannelMessage (
47+ BW_ACCOUNT_ID ,
48+ multiChannelMessageRequest
49+ ) ;
50+
51+ expect ( status ) . toEqual ( 202 ) ;
52+ expect ( data . links ) . toBeArray ( ) ;
53+ expect ( data . data ?. id ) . toBeString ( ) ;
54+ expect ( data . data ?. time ) . toBeDateString ( ) ;
55+ expect ( data . data ?. direction ) . toBeOneOf ( Object . values ( MessageDirectionEnum ) ) ;
56+ expect ( data . data ?. to ) . toBeArray ( ) ;
57+ expect ( data . data ?. tag ) . toBeString ( ) ;
58+ expect ( data . data ?. priority ) . toBeOneOf ( Object . values ( PriorityEnum ) ) ;
59+ expect ( data . data ?. expiration ) . toBeDateString ( ) ;
60+ expect ( data . data ?. channelList ) . toBeArray ( ) ;
61+ expect ( data . data ?. channelList ! [ 0 ] . channel ) . toEqual ( MultiChannelMessageChannelEnum . Sms ) ;
62+ } ) ;
63+ } ) ;
64+
65+ describe ( 'createMultiChannelMMSMessage' , ( ) => {
66+ test ( 'should create a multi-channel MMS message' , async ( ) => {
67+ const content : MmsMessageContent = {
68+ text : "Hello World!" ,
69+ media : [ { fileUrl : "https://example.com/image.jpg" } ]
70+ } ;
71+
72+ const channelListObject : MultiChannelChannelListMMSObject = {
73+ from : BW_NUMBER ,
74+ applicationId : BW_MESSAGING_APPLICATION_ID ,
75+ channel : MultiChannelMessageChannelEnum . Mms ,
76+ content,
3077 } ;
3178
3279 const multiChannelMessageRequest : MultiChannelMessageRequest = {
3380 to : USER_NUMBER ,
3481 tag : "tag" ,
35- priority : PriorityEnum . HIGH ,
82+ priority : PriorityEnum . High ,
83+ expiration,
3684 channelList : [ channelListObject ] ,
85+ } ;
86+
87+ const { status, data } = await multiChannelApi . createMultiChannelMessage (
88+ BW_ACCOUNT_ID ,
89+ multiChannelMessageRequest
90+ ) ;
91+
92+ expect ( status ) . toEqual ( 202 ) ;
93+ expect ( data . links ) . toBeArray ( ) ;
94+ expect ( data . data ?. id ) . toBeString ( ) ;
95+ expect ( data . data ?. time ) . toBeDateString ( ) ;
96+ expect ( data . data ?. direction ) . toBeOneOf ( Object . values ( MessageDirectionEnum ) ) ;
97+ expect ( data . data ?. to ) . toBeArray ( ) ;
98+ expect ( data . data ?. tag ) . toBeString ( ) ;
99+ expect ( data . data ?. priority ) . toBeOneOf ( Object . values ( PriorityEnum ) ) ;
100+ expect ( data . data ?. expiration ) . toBeDateString ( ) ;
101+ expect ( data . data ?. channelList ) . toBeArray ( ) ;
102+ expect ( data . data ?. channelList ! [ 0 ] . channel ) . toEqual ( MultiChannelMessageChannelEnum . Mms ) ;
103+ } ) ;
104+ } ) ;
105+
106+ describe ( 'createMultiChannelRBMMessage' , ( ) => {
107+ test ( 'should create a multi-channel RBM message' , async ( ) => {
108+ const content : RbmMessageContentText = {
109+ text : "Hello World!" ,
110+ suggestions : [ {
111+ type : RbmActionTypeEnum . DialPhone ,
112+ text : "Call Us" ,
113+ postbackData : "tel:+1234567890" ,
114+ phoneNumber : BW_NUMBER
115+ } ]
116+ } ;
117+
118+ const channelListObject : MultiChannelChannelListRBMObject = {
119+ from : BW_NUMBER ,
120+ applicationId : BW_MESSAGING_APPLICATION_ID ,
121+ channel : MultiChannelMessageChannelEnum . Rbm ,
122+ content,
123+ } ;
124+
125+ const multiChannelMessageRequest : MultiChannelMessageRequest = {
126+ to : USER_NUMBER ,
127+ tag : "tag" ,
128+ priority : PriorityEnum . High ,
37129 expiration,
130+ channelList : [ channelListObject ] ,
38131 } ;
39132
40- const { status, data } = await multiChannelApi . createMultiChannelMessage ( BW_ACCOUNT_ID , multiChannelMessageRequest ) ;
133+ const { status, data } = await multiChannelApi . createMultiChannelMessage (
134+ BW_ACCOUNT_ID ,
135+ multiChannelMessageRequest
136+ ) ;
137+
41138 expect ( status ) . toEqual ( 202 ) ;
139+ expect ( data . links ) . toBeArray ( ) ;
140+ expect ( data . data ?. id ) . toBeString ( ) ;
141+ expect ( data . data ?. time ) . toBeDateString ( ) ;
142+ expect ( data . data ?. direction ) . toBeOneOf ( Object . values ( MessageDirectionEnum ) ) ;
143+ expect ( data . data ?. to ) . toBeArray ( ) ;
144+ expect ( data . data ?. tag ) . toBeString ( ) ;
145+ expect ( data . data ?. priority ) . toBeOneOf ( Object . values ( PriorityEnum ) ) ;
146+ expect ( data . data ?. expiration ) . toBeDateString ( ) ;
147+ expect ( data . data ?. channelList ) . toBeArray ( ) ;
148+ expect ( data . data ?. channelList ! [ 0 ] . channel ) . toEqual ( MultiChannelMessageChannelEnum . Rbm ) ;
42149 } ) ;
43150 } ) ;
44151} ) ;
0 commit comments