asjon/test/shell-test.coffee

87 lines
2.6 KiB
CoffeeScript
Raw Normal View History

2015-04-28 14:07:22 +02:00
nock = require 'nock'
expect = require("chai").should()
Asjon = require '../asjon-testing.coffee'
asjon = undefined
describe 'modulo shell', ->
before (done) ->
# Inizializzo robot
Asjon (assa) ->
asjon = assa
after asjon.after
afterEach asjon.clear
require('../scripts/shell.coffee')(asjon.robot)
done()
it 'dovrebbe non eseguire i comandi se l\'interlocutore non รจ autorizzato', (done) ->
asjon.receive (e,l) ->
l.join().should.match /BZBZ (.+)/i
done()
asjon.send 'asjon controlla gli aggiornamenti'
ss = ['Operazione in corso: ', 'Operazione "completata": ']
regexes = [/Operazione in corso: (.+)/i, /Operazione "completata": (.+)/i]
it 'dovrebbe riconoscere la stanza autorizzata', (done) ->
process.env.ADMIN_ROOM = ':mocha'
acc = 0
asjon.receive (e,l) ->
l.join().should.match regexes[acc]
acc++
if acc is 2 then done()
asjon.send 'asjon controlla gli aggiornamenti'
it 'dovrebbe eseguire i comandi corretti per installare gli aggiornamenti', (done) ->
cmd = 'git pull && npm install'
2015-04-28 14:07:22 +02:00
acc = 0
asjon.receive (e,l) ->
l.join().should.equal ss[acc]+cmd
acc++
if acc is 2 then done()
asjon.send 'asjon aggiornati'
it 'dovrebbe eseguire i comandi corretti per controllare gli aggiornamenti', (done) ->
cmd = 'git fetch && git status'
acc = 0
asjon.receive (e,l) ->
l.join().should.equal ss[acc]+cmd
acc++
if acc is 2 then done()
asjon.send 'asjon controlla gli aggiornamenti'
it 'dovrebbe eseguire i comandi corretti per installare le dipendenze', (done) ->
cmd = 'npm install'
2015-04-28 14:07:22 +02:00
acc = 0
asjon.receive (e,l) ->
l.join().should.equal ss[acc]+cmd
acc++
if acc is 2 then done()
asjon.send 'asjon installa le dipendenze'
it 'dovrebbe eseguire i comandi corretti per eseguire i test', (done) ->
cmd = 'npm test'
acc = 0
asjon.receive (e,l) ->
l.join().should.equal ss[acc]+cmd
acc++
if acc is 2 then done()
asjon.send 'asjon esegui i test'
it 'dovrebbe autoriavviarsi in caso di update se richiesto', (done) ->
data = ref: 'refs/heads/master'
params = room: ':mocha', user: ':mocha'
acc = 0
asjon.receive (e,l) ->
if acc is 0
l.join().should.equal 'Operazione in corso: git pull && npm install'
if acc is 1
l.join().should.equal 'Operazione "completata": git pull && npm install'
if acc is 2
l.join().should.equal 'riavvio in 5 SECONDI'
acc++
if acc is 3
done()
process.env.AUTO_KILL_ON_UPDATE = 'true'
asjon.robot.emit 'githubhook', data, params