Skip to content

Commit 7318155

Browse files
authored
Merge pull request #134 from banjoadeola17/feature/improve-ussd-tests
Feature/improve ussd tests
2 parents eac462f + 14673ab commit 7318155

File tree

1 file changed

+42
-22
lines changed

1 file changed

+42
-22
lines changed

test/ussd.js

Lines changed: 42 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -47,51 +47,47 @@ describe('USSD', function () {
4747
}))
4848
})
4949

50-
it('returns expected response', function (done) {
50+
it('returns response starting with CON or END', function (done) {
5151
request
5252
.post('/test-service')
53-
.send('hello')
54-
.expect('content-type', /text\/plain/i)
55-
.expect(200, function (err, resp) {
56-
if (err) throw err
57-
const match = resp.text.match(/^(CON)|(END)/)
58-
should(match).be.ok()
53+
.send({ text: 'hello', sessionId: '123', serviceCode: '*123#', phoneNumber: '+1234567890' })
54+
.expect('Content-Type', /text\/plain/i)
55+
.expect(200)
56+
.end((err, resp) => {
57+
if (err) return done(err)
58+
resp.text.should.match(/^(CON|END) /)
5959
done()
6060
})
6161
})
6262

63-
it('shows menu', function (done) {
63+
it('shows main menu when text is empty', function (done) {
6464
request
6565
.post('/test-service')
66-
.send({ text: '' })
66+
.send({ text: '', sessionId: '123', serviceCode: '*123#', phoneNumber: '+1234567890' })
6767
.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)
7371
done()
7472
})
7573
})
7674

77-
it('shows account info', function (done) {
75+
it('shows account info when user selects option 1', function (done) {
7876
request
7977
.post('/test-service')
80-
.send({ text: '1' })
78+
.send({ text: '1', sessionId: '123', serviceCode: '*123#', phoneNumber: '+1234567890' })
8179
.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)
8783
done()
8884
})
8985
})
9086

9187
it('shows invalid choice', function (done) {
9288
request
9389
.post('/test-service')
94-
.send({ text: '13' })
90+
.send({ text: '13', sessionId: '123', serviceCode: '*123#', phoneNumber: '+1234567890' })
9591
.expect(200)
9692
.end(function (err, resp) {
9793
if (err) throw err
@@ -101,4 +97,28 @@ describe('USSD', function () {
10197
done()
10298
})
10399
})
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+
})
104124
})

0 commit comments

Comments
 (0)