asjon/test/wolfram-test.coffee

57 lines
1.7 KiB
CoffeeScript
Raw Normal View History

2015-04-29 15:18:03 +02:00
nock = require 'nock'
expect = require("chai").should()
Asjon = require '../asjon-testing.coffee'
asjon = undefined
describe 'modulo wolfram', ->
2015-04-29 15:18:03 +02:00
before (done) ->
# Inizializzo robot
Asjon (assa) ->
asjon = assa
after asjon.after
afterEach asjon.clear
require('../scripts/wolfram.coffee')(asjon.robot)
done()
it 'non dovrebbe rispondere se manca l\'API key', (done) ->
process.env.WOLFRAM_API_KEY=''
2015-04-29 15:18:03 +02:00
asjon.receive (e,l) ->
l.join().should.equal 'non ho le chiavi per Wolfram Alpha :('
done()
asjon.send 'asjon wfa test'
it 'dovrebbe reagire correttamente in caso di risposta malformata', (done) ->
process.env.WOLFRAM_API_KEY = 'totally-legit-key'
nock('http://api.wolframalpha.com')
2015-05-06 20:42:15 +02:00
.get('/v2/query?input=test&appid=totally-legit-key')
2015-04-29 15:18:03 +02:00
.reply 400, 'no eenterwebz for u'
acc = 0
asjon.receive (e,l) ->
if acc is 0
2015-05-06 20:42:38 +02:00
l.join().should.match /(\w+| )+\.{3}$/g
2015-04-29 15:18:03 +02:00
else
2015-05-06 20:42:38 +02:00
l.join().split(':')[0].should.equal "c'รจ qualche problema"
2015-04-29 15:18:03 +02:00
acc++
if acc is 2 then done()
asjon.send 'asjon wfa test'
it 'dovrebbe parsare correttamente la risposta', (done) ->
process.env.WOLFRAM_API_KEY = 'totally-legit-key'
nock('http://api.wolframalpha.com')
2015-05-06 20:42:15 +02:00
.get('/v2/query?input=test&appid=totally-legit-key')
2015-04-29 15:18:03 +02:00
.replyWithFile 200, __dirname+'/wolfram.xml'
acc = 0
asjon.receive (e,l) ->
if acc is 0
2015-05-06 20:42:38 +02:00
l.join().should.match /(\w+| )+\.{3}$/g
2015-04-29 15:18:03 +02:00
else
list = l.join().split '\n'
list[0].should.equal '=== Input interpretation'
list[1].should.match /^Answer to the/g
list[2].should.equal '=== Result'
list[3].should.equal '42'
acc++
if acc is 2 then done()
asjon.send 'asjon wfa test'