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()
|
2015-04-29 17:34:38 +02:00
|
|
|
process.env.ADMIN_ROOM = ':not-mocha'
|
2015-04-28 14:07:22 +02:00
|
|
|
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()
|
2015-04-29 17:34:38 +02:00
|
|
|
process.env.ADMIN_ROOM = ':mocha'
|
2015-04-28 14:07:22 +02:00
|
|
|
asjon.send 'asjon controlla gli aggiornamenti'
|
|
|
|
|
|
|
|
it 'dovrebbe eseguire i comandi corretti per installare gli aggiornamenti', (done) ->
|
2015-04-28 15:41:57 +02:00
|
|
|
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()
|
2015-04-29 17:34:38 +02:00
|
|
|
process.env.ADMIN_ROOM = ':mocha'
|
2015-04-28 14:07:22 +02:00
|
|
|
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()
|
2015-04-29 17:34:38 +02:00
|
|
|
process.env.ADMIN_ROOM = ':mocha'
|
2015-04-28 14:07:22 +02:00
|
|
|
asjon.send 'asjon controlla gli aggiornamenti'
|
|
|
|
|
|
|
|
it 'dovrebbe eseguire i comandi corretti per installare le dipendenze', (done) ->
|
2015-04-28 15:41:57 +02:00
|
|
|
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()
|
2015-04-29 17:34:38 +02:00
|
|
|
process.env.ADMIN_ROOM = ':mocha'
|
2015-04-28 14:07:22 +02:00
|
|
|
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()
|
2015-04-29 17:34:38 +02:00
|
|
|
process.env.ADMIN_ROOM = ':mocha'
|
2015-04-28 14:07:22 +02:00
|
|
|
asjon.send 'asjon esegui i test'
|
2015-04-29 17:09:32 +02:00
|
|
|
|
|
|
|
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
|