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' 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' 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