asjon/test/memoria-test.coffee
2015-04-27 19:05:36 +02:00

80 lines
2.5 KiB
CoffeeScript

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'