ipizza
Version:
Node.js implementation for Estonian(and some other) banklink payments.
89 lines (78 loc) • 2.51 kB
JavaScript
casper.options.pageSettings.webSecurityEnabled = false
var timeout = 1500
;['swedbank', 'seb', 'krediidipank', 'sampo', 'lhv', 'nordea-plnet', 'ec']
.forEach(function(provider) {
casper.test.begin('Test provider: ' + provider, 6, function(test) {
casper.start()
casper.open('http://127.0.0.1:4000/')
var dopay = true
, orderId = ~~(Math.random() * 1000)
, msg = 'Order nr.' + orderId + ' öäüõÖÄÜÕ'
casper.then(function() {
this.fill('form', {
id: orderId
, amount: 1.23
, msg: msg
, provider: provider
}, true)
})
casper.then(function() {
this.wait(timeout, function() {
var state = this.evaluate(function() {
return document.querySelector("[data-current-state]").dataset.currentState
})
this.test.assertEquals(state, 'preview', 'Current state == preview')
this.click('[data-button=accept]')
})
})
casper.then(function() {
this.wait(timeout, function() {
var state = this.evaluate(function() {
return document.body.innerHTML
})
//console.log(state)
var state = this.evaluate(function() {
return document.querySelector("[data-current-state]").dataset.currentState
})
this.test.assertEquals(state, 'payed', 'Current state == paid')
this.click('[data-button=return]')
})
})
casper.then(function() {
this.wait(timeout, function() {
var output = this.evaluate(function() {
return document.body.innerText
})
this.test.comment('Got output: ' + output)
var split = output.indexOf('!')
if (split === -1) {
this.test.fail('Wrong output received.')
this.exit(1)
}
else {
var status = output.substr(0, split)
var json = JSON.parse(output.substr(split + 1))
this.test.assertEquals(status, 'Payment OK', 'Check payment status')
this.test.assertEquals(json.id, orderId.toString(), 'Check orderId in response')
if (provider !== 'nordea-plnet') {
this.test.assertEquals(json.amount, 1.23, 'Check amount in response')
if (provider !== 'ec') {
this.test.assertEquals(json.msg, msg, 'Check message in response')
}
else {
this.test.assert(true)
}
}
else {
this.test.assert(true)
this.test.assert(true)
}
casper.wait(timeout, function() {
test.done()
})
}
})
})
casper.run()
})
})