expect = require("chai").should() Asjon = require '../asjon-testing.coffee' asjon = undefined describe 'modulo memoria', -> before (done) -> # Inizializzo robot Asjon (assa) -> asjon = assa after asjon.after afterEach asjon.clear require('../scripts/memoria.coffee')(asjon.robot) done() it 'risponde quando richiesto', (done) -> replies = 0 arr = ["cos'è","qual'è","qual è","qualè","chi è","cosa sono","quand'è"] asjon.receive (envelope,strings) -> replies++ if replies is arr.length then done() arr.map (x) -> 'asjon ' + x + ' test' + (if Math.random() > 0.5 then '?' else '') .forEach (x) -> asjon.send x it 'permette di memorizzare un ricordo', (done) -> asjon.receive (e,l) -> l.join().should.match /non sapevo che (.+)/i done() asjon.send 'asjon ricordati che a è b' it 'permette di alterare un ricordo', (done) -> acc = 0 asjon.receive (e,l) -> l.join().should.match /pensavo che a fosse(ro)? (?:b|c). Mi ricorderò che invece è (?:c|b)/i acc++ if acc is 3 then done() asjon.send "asjon ricordati che a è c" asjon.send "asjon ricordati che a = b" asjon.send "asjon ricordati che a sono c" it 'permette di eliminare un ricordo', (done) -> asjon.receive (e,l) -> l.join().should.match /^in caso cambi idea/i done() asjon.send 'asjon dimentica a' it 'permette di visualizzare una data', (done) -> asjon.receive (e,l) -> l.join().should.match /^l'8 dicembre è Martedì 8º dicembre 2015 ovvero/i done() asjon.send "asjon quand'è l'8 dicembre" it 'visualizza un argomento data solo se opportuno', (done) -> asjon.receive (e,l) -> l.join().should.not.match /^l'8 dicembre è Martedì 8º dicembre 2015 ovvero/i done() asjon.send "asjon chi è l'8 dicembre" it 'visualizza un valore data solo se opportuno', (done) -> acc = 0 asjon.receive (e,l) -> acc++ l.join().should.not.match /a è Martedì .+/i if acc is 2 then done() asjon.send "asjon ricordati che a è l'8 dicembre" asjon.send "asjon chi è a?" it 'offre un memory dump per debugging', (done) -> asjon.receive (e,l) -> JSON.parse(l.join()).should.be.a 'object' done() asjon.send 'asjon memory-dump' it 'non interferisce con "circolari"', (done) -> # se done() viene chiamato piu di 1 volta il test fallisce asjon.receive (e,l) -> done() asjon.send 'asjon cosa sono a?' asjon.send 'asjon cosa sono le circolari'