migliorata qualità codice, aumento copertura test
This commit is contained in:
parent
1ac7124a01
commit
e0783e3a24
@ -18,20 +18,27 @@ isFromAdmin = (res) ->
|
|||||||
res.message.user.room is process.env.ADMIN_ROOM?.replace(':','#') or res.robot.adapterName is 'shell'
|
res.message.user.room is process.env.ADMIN_ROOM?.replace(':','#') or res.robot.adapterName is 'shell'
|
||||||
|
|
||||||
runCmd = (cmd,res,cb) ->
|
runCmd = (cmd,res,cb) ->
|
||||||
if res? then res.send 'Operazione in corso: '+cmd
|
if res?.send? then res.send 'Operazione in corso: '+cmd
|
||||||
if process.env.TESTING_ASJON
|
if process.env.TESTING_ASJON
|
||||||
# Fingi di eseguire l'operazione
|
# Fingi di eseguire l'operazione
|
||||||
if res? then res.send 'Operazione "completata": '+cmd
|
if res?.send? then res.send 'Operazione "completata": '+cmd
|
||||||
if cb? then cb null,'',''
|
if cb?.call? then cb null,'',''
|
||||||
else cp.exec cmd, (err,stdout,stderr) ->
|
else cp.exec cmd, (err,stdout,stderr) ->
|
||||||
if res?
|
if res?.send?
|
||||||
if err
|
if err
|
||||||
res.send 'Operazione fallita:\n'+stdout+stderr
|
res.send 'Operazione fallita:\n'+stdout+stderr
|
||||||
else
|
else
|
||||||
res.send 'Operazione completata:\n'+stdout
|
res.send 'Operazione completata:\n'+stdout
|
||||||
if cb? then cb err,stdout,stderr
|
if cb?.call? then cb err,stdout,stderr
|
||||||
|
|
||||||
module.exports = (robot) ->
|
module.exports = (robot) ->
|
||||||
|
|
||||||
|
# Lancia i test all'avvio
|
||||||
|
if process.env.AUTO_RUN_TESTS and process.env.ADMIN_ROOM
|
||||||
|
dest = room: process.env.ADMIN_ROOM.replace(':','#')
|
||||||
|
dest.send = (x) -> robot.send dest, x
|
||||||
|
runCmd 'npm test', dest
|
||||||
|
|
||||||
if process.env.AUTO_INFORM_ON_START
|
if process.env.AUTO_INFORM_ON_START
|
||||||
r = room: process.env.AUTO_INFORM_ON_START.replace(':','#')
|
r = room: process.env.AUTO_INFORM_ON_START.replace(':','#')
|
||||||
robot.send r, 'asjon avviato e operativo!'
|
robot.send r, 'asjon avviato e operativo!'
|
||||||
@ -52,12 +59,6 @@ module.exports = (robot) ->
|
|||||||
if !isFromAdmin(res) then return res.send res.random nope
|
if !isFromAdmin(res) then return res.send res.random nope
|
||||||
runCmd 'npm test', res
|
runCmd 'npm test', res
|
||||||
|
|
||||||
# Run tests on boot and report to ADMIN
|
|
||||||
if process.env.AUTO_RUN_TESTS and process.env.ADMIN_ROOM
|
|
||||||
dest = room: process.env.ADMIN_ROOM.replace(':','#')
|
|
||||||
dest.send = (x) -> robot.send dest, x
|
|
||||||
runCmd 'npm test', dest
|
|
||||||
|
|
||||||
robot.on 'githubhook', (data,params) ->
|
robot.on 'githubhook', (data,params) ->
|
||||||
if data.ref is 'refs/heads/master' and process.env.AUTO_KILL_ON_UPDATE
|
if data.ref is 'refs/heads/master' and process.env.AUTO_KILL_ON_UPDATE
|
||||||
dest = name: params.name, room: params.room.replace(':','#')
|
dest = name: params.name, room: params.room.replace(':','#')
|
||||||
|
34
test/autostart-test.coffee
Normal file
34
test/autostart-test.coffee
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
nock = require 'nock'
|
||||||
|
expect = require("chai").should()
|
||||||
|
|
||||||
|
Asjon = require '../asjon-testing.coffee'
|
||||||
|
asjon = undefined
|
||||||
|
|
||||||
|
describe 'shell autostart', ->
|
||||||
|
before (done) ->
|
||||||
|
# Inizializzo robot
|
||||||
|
Asjon (assa) ->
|
||||||
|
asjon = assa
|
||||||
|
after asjon.after
|
||||||
|
afterEach asjon.clear
|
||||||
|
done()
|
||||||
|
|
||||||
|
it 'dovrebbe informare dell\'avvio se richiesto', (done) ->
|
||||||
|
asjon.receive (e,l) ->
|
||||||
|
l.join().should.equal 'asjon avviato e operativo!'
|
||||||
|
done()
|
||||||
|
process.env.AUTO_INFORM_ON_START = ':mocha'
|
||||||
|
require('../scripts/shell.coffee')(asjon.robot)
|
||||||
|
|
||||||
|
it 'dovrebbe eseguire i test all\'avvio se richiesto', (done) ->
|
||||||
|
acc = 0
|
||||||
|
asjon.receive (e,l) ->
|
||||||
|
if acc is 0
|
||||||
|
l.join().should.equal 'Operazione in corso: npm test'
|
||||||
|
if acc is 1
|
||||||
|
l.join().should.equal 'Operazione "completata": npm test'
|
||||||
|
acc++
|
||||||
|
if acc is 2 then done()
|
||||||
|
process.env.AUTO_RUN_TESTS = 'true'
|
||||||
|
process.env.ADMIN_ROOM = ':mocha'
|
||||||
|
require('../scripts/shell.coffee')(asjon.robot)
|
@ -18,18 +18,19 @@ describe 'modulo shell', ->
|
|||||||
asjon.receive (e,l) ->
|
asjon.receive (e,l) ->
|
||||||
l.join().should.match /BZBZ (.+)/i
|
l.join().should.match /BZBZ (.+)/i
|
||||||
done()
|
done()
|
||||||
|
process.env.ADMIN_ROOM = ':not-mocha'
|
||||||
asjon.send 'asjon controlla gli aggiornamenti'
|
asjon.send 'asjon controlla gli aggiornamenti'
|
||||||
|
|
||||||
ss = ['Operazione in corso: ', 'Operazione "completata": ']
|
ss = ['Operazione in corso: ', 'Operazione "completata": ']
|
||||||
regexes = [/Operazione in corso: (.+)/i, /Operazione "completata": (.+)/i]
|
regexes = [/Operazione in corso: (.+)/i, /Operazione "completata": (.+)/i]
|
||||||
|
|
||||||
it 'dovrebbe riconoscere la stanza autorizzata', (done) ->
|
it 'dovrebbe riconoscere la stanza autorizzata', (done) ->
|
||||||
process.env.ADMIN_ROOM = ':mocha'
|
|
||||||
acc = 0
|
acc = 0
|
||||||
asjon.receive (e,l) ->
|
asjon.receive (e,l) ->
|
||||||
l.join().should.match regexes[acc]
|
l.join().should.match regexes[acc]
|
||||||
acc++
|
acc++
|
||||||
if acc is 2 then done()
|
if acc is 2 then done()
|
||||||
|
process.env.ADMIN_ROOM = ':mocha'
|
||||||
asjon.send 'asjon controlla gli aggiornamenti'
|
asjon.send 'asjon controlla gli aggiornamenti'
|
||||||
|
|
||||||
it 'dovrebbe eseguire i comandi corretti per installare gli aggiornamenti', (done) ->
|
it 'dovrebbe eseguire i comandi corretti per installare gli aggiornamenti', (done) ->
|
||||||
@ -39,6 +40,7 @@ describe 'modulo shell', ->
|
|||||||
l.join().should.equal ss[acc]+cmd
|
l.join().should.equal ss[acc]+cmd
|
||||||
acc++
|
acc++
|
||||||
if acc is 2 then done()
|
if acc is 2 then done()
|
||||||
|
process.env.ADMIN_ROOM = ':mocha'
|
||||||
asjon.send 'asjon aggiornati'
|
asjon.send 'asjon aggiornati'
|
||||||
|
|
||||||
it 'dovrebbe eseguire i comandi corretti per controllare gli aggiornamenti', (done) ->
|
it 'dovrebbe eseguire i comandi corretti per controllare gli aggiornamenti', (done) ->
|
||||||
@ -48,6 +50,7 @@ describe 'modulo shell', ->
|
|||||||
l.join().should.equal ss[acc]+cmd
|
l.join().should.equal ss[acc]+cmd
|
||||||
acc++
|
acc++
|
||||||
if acc is 2 then done()
|
if acc is 2 then done()
|
||||||
|
process.env.ADMIN_ROOM = ':mocha'
|
||||||
asjon.send 'asjon controlla gli aggiornamenti'
|
asjon.send 'asjon controlla gli aggiornamenti'
|
||||||
|
|
||||||
it 'dovrebbe eseguire i comandi corretti per installare le dipendenze', (done) ->
|
it 'dovrebbe eseguire i comandi corretti per installare le dipendenze', (done) ->
|
||||||
@ -57,6 +60,7 @@ describe 'modulo shell', ->
|
|||||||
l.join().should.equal ss[acc]+cmd
|
l.join().should.equal ss[acc]+cmd
|
||||||
acc++
|
acc++
|
||||||
if acc is 2 then done()
|
if acc is 2 then done()
|
||||||
|
process.env.ADMIN_ROOM = ':mocha'
|
||||||
asjon.send 'asjon installa le dipendenze'
|
asjon.send 'asjon installa le dipendenze'
|
||||||
|
|
||||||
it 'dovrebbe eseguire i comandi corretti per eseguire i test', (done) ->
|
it 'dovrebbe eseguire i comandi corretti per eseguire i test', (done) ->
|
||||||
@ -66,6 +70,7 @@ describe 'modulo shell', ->
|
|||||||
l.join().should.equal ss[acc]+cmd
|
l.join().should.equal ss[acc]+cmd
|
||||||
acc++
|
acc++
|
||||||
if acc is 2 then done()
|
if acc is 2 then done()
|
||||||
|
process.env.ADMIN_ROOM = ':mocha'
|
||||||
asjon.send 'asjon esegui i test'
|
asjon.send 'asjon esegui i test'
|
||||||
|
|
||||||
it 'dovrebbe autoriavviarsi in caso di update se richiesto', (done) ->
|
it 'dovrebbe autoriavviarsi in caso di update se richiesto', (done) ->
|
||||||
|
Loading…
Reference in New Issue
Block a user