asjon/test/shell-test.coffee
2015-09-24 15:12:42 +02:00

92 lines
2.8 KiB
CoffeeScript

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()
process.env.ADMIN_ROOM = ':not-mocha'
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) ->
acc = 0
asjon.receive (e,l) ->
l.join().should.match regexes[acc]
acc++
if acc is 2 then done()
process.env.ADMIN_ROOM = ':mocha'
asjon.send 'asjon controlla gli aggiornamenti'
it 'dovrebbe eseguire i comandi corretti per installare gli aggiornamenti', (done) ->
cmd = 'git pull && npm install'
acc = 0
asjon.receive (e,l) ->
l.join().should.equal ss[acc]+cmd
acc++
if acc is 2 then done()
process.env.ADMIN_ROOM = ':mocha'
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()
process.env.ADMIN_ROOM = ':mocha'
asjon.send 'asjon controlla gli aggiornamenti'
it 'dovrebbe eseguire i comandi corretti per installare le dipendenze', (done) ->
cmd = 'npm install'
acc = 0
asjon.receive (e,l) ->
l.join().should.equal ss[acc]+cmd
acc++
if acc is 2 then done()
process.env.ADMIN_ROOM = ':mocha'
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()
process.env.ADMIN_ROOM = ':mocha'
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