73 lines
2.3 KiB
CoffeeScript
73 lines
2.3 KiB
CoffeeScript
|
nock = require 'nock'
|
||
|
expect = require("chai").should()
|
||
|
|
||
|
Asjon = require '../asjon-testing.coffee'
|
||
|
asjon = undefined
|
||
|
|
||
|
describe 'modulo github', ->
|
||
|
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) ->
|
||
|
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')
|
||
|
.get('/v2/query?input=test&primary=true&appid=totally-legit-key')
|
||
|
.reply 400, 'no eenterwebz for u'
|
||
|
acc = 0
|
||
|
asjon.receive (e,l) ->
|
||
|
if acc is 0
|
||
|
l.join().should.equal 'Contattando Wolfram Alpha...'
|
||
|
else
|
||
|
l.join().should.equal 'invalid response from Wolfram Alpha'
|
||
|
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')
|
||
|
.get('/v2/query?input=test&primary=true&appid=totally-legit-key')
|
||
|
.replyWithFile 200, __dirname+'/wolfram.xml'
|
||
|
acc = 0
|
||
|
asjon.receive (e,l) ->
|
||
|
if acc is 0
|
||
|
l.join().should.equal 'Contattando Wolfram Alpha...'
|
||
|
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'
|
||
|
it.skip 'dovrebbe rispondere a "mostra le issues"', (done) ->
|
||
|
questions = [
|
||
|
"asjon mostrami le issue"
|
||
|
"asjon mostrami le issues"
|
||
|
"asjon issues"
|
||
|
"asjon le issue"
|
||
|
"asjon issue"
|
||
|
]
|
||
|
nock('https://api.github.com')
|
||
|
.get('/repos/fazo96/asjon/issues?state=open&sort=updated')
|
||
|
.times(questions.length)
|
||
|
.reply 200, []
|
||
|
acc = 0
|
||
|
asjon.receive (e,l) ->
|
||
|
acc++
|
||
|
if acc is questions.length*2 then done()
|
||
|
questions.map (q) -> asjon.send q
|