@@ -47,51 +47,47 @@ describe('USSD', function () {
47
47
} ) )
48
48
} )
49
49
50
- it ( 'returns expected response' , function ( done ) {
50
+ it ( 'returns response starting with CON or END ' , function ( done ) {
51
51
request
52
52
. post ( '/test-service' )
53
- . send ( 'hello' )
54
- . expect ( 'content-type ' , / t e x t \/ p l a i n / i)
55
- . expect ( 200 , function ( err , resp ) {
56
- if ( err ) throw err
57
- const match = resp . text . match ( / ^ ( C O N ) | ( E N D ) / )
58
- should ( match ) . be . ok ( )
53
+ . send ( { text : 'hello' , sessionId : '123' , serviceCode : '*123#' , phoneNumber : '+1234567890' } )
54
+ . expect ( 'Content-Type ' , / t e x t \/ p l a i n / i)
55
+ . expect ( 200 )
56
+ . end ( ( err , resp ) => {
57
+ if ( err ) return done ( err )
58
+ resp . text . should . match ( / ^ ( C O N | E N D ) / )
59
59
done ( )
60
60
} )
61
61
} )
62
62
63
- it ( 'shows menu' , function ( done ) {
63
+ it ( 'shows main menu when text is empty ' , function ( done ) {
64
64
request
65
65
. post ( '/test-service' )
66
- . send ( { text : '' } )
66
+ . send ( { text : '' , sessionId : '123' , serviceCode : '*123#' , phoneNumber : '+1234567890' } )
67
67
. expect ( 200 )
68
- . end ( function ( err , resp ) {
69
- if ( err ) throw err
70
- console . log ( resp . text + '\n' )
71
- const match = resp . text . match ( 'CON ' + menu )
72
- should ( match ) . be . ok ( )
68
+ . end ( ( err , resp ) => {
69
+ if ( err ) return done ( err )
70
+ resp . text . should . equal ( 'CON ' + menu )
73
71
done ( )
74
72
} )
75
73
} )
76
74
77
- it ( 'shows account info' , function ( done ) {
75
+ it ( 'shows account info when user selects option 1 ' , function ( done ) {
78
76
request
79
77
. post ( '/test-service' )
80
- . send ( { text : '1' } )
78
+ . send ( { text : '1' , sessionId : '123' , serviceCode : '*123#' , phoneNumber : '+1234567890' } )
81
79
. expect ( 200 )
82
- . end ( function ( err , resp ) {
83
- if ( err ) throw err
84
- console . log ( resp . text + '\n' )
85
- const match = resp . text . match ( 'END ' + accountInfo )
86
- should ( match ) . be . ok ( )
80
+ . end ( ( err , resp ) => {
81
+ if ( err ) return done ( err )
82
+ resp . text . should . equal ( 'END ' + accountInfo )
87
83
done ( )
88
84
} )
89
85
} )
90
86
91
87
it ( 'shows invalid choice' , function ( done ) {
92
88
request
93
89
. post ( '/test-service' )
94
- . send ( { text : '13' } )
90
+ . send ( { text : '13' , sessionId : '123' , serviceCode : '*123#' , phoneNumber : '+1234567890' } )
95
91
. expect ( 200 )
96
92
. end ( function ( err , resp ) {
97
93
if ( err ) throw err
@@ -101,4 +97,28 @@ describe('USSD', function () {
101
97
done ( )
102
98
} )
103
99
} )
100
+
101
+ it ( 'shows submenu for lost gas cylinder option (2)' , function ( done ) {
102
+ request
103
+ . post ( '/test-service' )
104
+ . send ( { text : '2' , sessionId : '123' , serviceCode : '*123#' , phoneNumber : '+1234567890' } )
105
+ . expect ( 200 )
106
+ . end ( ( err , resp ) => {
107
+ if ( err ) return done ( err )
108
+ resp . text . should . equal ( 'CON Enter 1 for recovery \nEnter 2 for lost and found' )
109
+ done ( )
110
+ } )
111
+ } )
112
+
113
+ it ( 'handles missing fields gracefully' , function ( done ) {
114
+ request
115
+ . post ( '/test-service' )
116
+ . send ( { } )
117
+ . expect ( 200 )
118
+ . end ( ( err , resp ) => {
119
+ if ( err ) return done ( err )
120
+ resp . text . should . startWith ( 'CON' )
121
+ done ( )
122
+ } )
123
+ } )
104
124
} )
0 commit comments