nock = require 'nock' expect = require("chai").should() Asjon = require '../asjon-testing.coffee' asjon = undefined payload = sys: sunrise: 12345 sunset: 12345 main: humidity: 50 temp: 20 weather: [ description: 'ok' ] describe 'modulo meteo', -> before (done) -> # Inizializzo robot Asjon (assa) -> asjon = assa after asjon.after afterEach asjon.clear beforeEach nock.disableNetConnect require('../scripts/meteo.coffee')(asjon.robot) done() it 'dovrebbe rispondere quando interrogato', (done) -> questions = [ "asjon che tempo c'è a crema" "asjon che tempo fa a crema?" "asjon che tempo c'è" "asjon che tempo fa?" "asjon meteo a crema" "asjon meteo" ] nock('http://api.openweathermap.org') .get('/data/2.5/weather?id=3177841&lang=it&units=metric') .times questions.length .reply 200, payload acc = 0 asjon.receive (e,l) -> acc++ if acc is questions.length then done() questions.map (q) -> asjon.send q it 'dovrebbe reagire correttamente a un errore nel payload', (done) -> nock('http://api.openweathermap.org') .get('/data/2.5/weather?id=3177841&lang=it&units=metric') .reply 500, 'very error' asjon.receive (e,l) -> l.join().should.match /^Errore nel guardare il cielo.$/g done() asjon.send 'asjon meteo' it 'dovrebbe parsare correttamente i dati', (done) -> nock('http://api.openweathermap.org') .get('/data/2.5/weather?id=3177841&lang=it&units=metric') .reply 200, payload asjon.receive (e,l) -> l.join().should.match /^Meteo per Crema: /g done() asjon.send 'asjon meteo'