nock = require 'nock' expect = require("chai").should() Asjon = require '../asjon-testing.coffee' asjon = undefined describe 'modulo wolfram', -> 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='' 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'