aumentata di molto copertura dei test
This commit is contained in:
parent
3a62bd34bc
commit
81e6dc49f5
@ -5,6 +5,7 @@ Robot = require("hubot/src/robot")
|
|||||||
TextMessage = require("hubot/src/message").TextMessage
|
TextMessage = require("hubot/src/message").TextMessage
|
||||||
|
|
||||||
before = (done) ->
|
before = (done) ->
|
||||||
|
process.env.TESTING_ASJON = 'true'
|
||||||
robot = new Robot null, "mock-adapter", no, 'asjon'
|
robot = new Robot null, "mock-adapter", no, 'asjon'
|
||||||
robot.adapter.on 'connected', ->
|
robot.adapter.on 'connected', ->
|
||||||
# Initialize mocked environment
|
# Initialize mocked environment
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "asjon",
|
"name": "asjon",
|
||||||
"version": "1.3.0",
|
"version": "1.4.2",
|
||||||
"private": true,
|
"private": true,
|
||||||
"author": "Enrico Fasoli <fazius2009@gmail.com>",
|
"author": "Enrico Fasoli <fazius2009@gmail.com>",
|
||||||
"description": "Il miglior amico della 5IA",
|
"description": "Il miglior amico della 5IA",
|
||||||
|
@ -77,7 +77,7 @@ module.exports = (robot) ->
|
|||||||
list = x.slice 0, (num or 5)
|
list = x.slice 0, (num or 5)
|
||||||
msg = list.map (c) ->
|
msg = list.map (c) ->
|
||||||
['('+c.protocollo.split('/')[0]+')','('+c.data+')',c.titolo].join(' ')
|
['('+c.protocollo.split('/')[0]+')','('+c.data+')',c.titolo].join(' ')
|
||||||
res.send msg.join ' | '
|
res.send msg.join('\n') or 'errore'
|
||||||
|
|
||||||
robot.respond /linkami (?:la )?circolare (?:(?:n(?:°)?(?: )?)|numero )?(\d+)/i, (res) ->
|
robot.respond /linkami (?:la )?circolare (?:(?:n(?:°)?(?: )?)|numero )?(\d+)/i, (res) ->
|
||||||
base = "http://galileicrema.it/Intraitis/documenti/comunicazioni/2014/Circolare"
|
base = "http://galileicrema.it/Intraitis/documenti/comunicazioni/2014/Circolare"
|
||||||
|
@ -19,7 +19,10 @@ isFromAdmin = (res) ->
|
|||||||
|
|
||||||
runCmd = (cmd,res,cb) ->
|
runCmd = (cmd,res,cb) ->
|
||||||
if res? then res.send 'Operazione in corso: '+cmd
|
if res? then res.send 'Operazione in corso: '+cmd
|
||||||
cp.exec cmd, (err,stdout,stderr) ->
|
if process.env.TESTING_ASJON
|
||||||
|
# Fingi di eseguire l'operazione
|
||||||
|
res.send 'Operazione "completata": '+cmd
|
||||||
|
else cp.exec cmd, (err,stdout,stderr) ->
|
||||||
if res?
|
if res?
|
||||||
if err
|
if err
|
||||||
res.send 'Operazione fallita:\n'+stderr
|
res.send 'Operazione fallita:\n'+stderr
|
||||||
@ -29,14 +32,21 @@ runCmd = (cmd,res,cb) ->
|
|||||||
|
|
||||||
module.exports = (robot) ->
|
module.exports = (robot) ->
|
||||||
robot.respond /aggiornati|scarica (?:gli )?aggiornamenti/i, (res) ->
|
robot.respond /aggiornati|scarica (?:gli )?aggiornamenti/i, (res) ->
|
||||||
|
if !isFromAdmin(res) then return res.send res.random nope
|
||||||
runCmd 'git pull && npm install && npm install --dev', res
|
runCmd 'git pull && npm install && npm install --dev', res
|
||||||
|
|
||||||
robot.respond /(?:controlla gli )?aggiornamenti/i, (res) ->
|
robot.respond /(?:controlla gli )?aggiornamenti/i, (res) ->
|
||||||
|
if !isFromAdmin(res) then return res.send res.random nope
|
||||||
runCmd 'git fetch && git status', res
|
runCmd 'git fetch && git status', res
|
||||||
|
|
||||||
robot.respond /(?:installa (?:le )?)dipendenze/i, (res) ->
|
robot.respond /(?:installa (?:le )?)?dipendenze/i, (res) ->
|
||||||
|
if !isFromAdmin(res) then return res.send res.random nope
|
||||||
runCmd 'npm install && npm install --dev', res
|
runCmd 'npm install && npm install --dev', res
|
||||||
|
|
||||||
|
robot.respond /(?:esegui (?:i )?)?test/i, (res) ->
|
||||||
|
if !isFromAdmin(res) then return res.send res.random nope
|
||||||
|
runCmd 'npm test', res
|
||||||
|
|
||||||
# Run tests on boot and report to ADMIN
|
# Run tests on boot and report to ADMIN
|
||||||
if process.env.AUTO_RUN_TESTS and process.env.ADMIN_ROOM
|
if process.env.AUTO_RUN_TESTS and process.env.ADMIN_ROOM
|
||||||
dest = room: process.env.ADMIN_ROOM.replace(':','#')
|
dest = room: process.env.ADMIN_ROOM.replace(':','#')
|
||||||
|
61
test/circolari.coffee
Normal file
61
test/circolari.coffee
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
nock = require 'nock'
|
||||||
|
expect = require("chai").should()
|
||||||
|
|
||||||
|
Asjon = require '../asjon-testing.coffee'
|
||||||
|
asjon = undefined
|
||||||
|
|
||||||
|
describe 'modulo circolari', ->
|
||||||
|
before (done) ->
|
||||||
|
# Inizializzo robot
|
||||||
|
Asjon (assa) ->
|
||||||
|
asjon = assa
|
||||||
|
after asjon.after
|
||||||
|
afterEach asjon.clear
|
||||||
|
require('../scripts/circolari.coffee')(asjon.robot)
|
||||||
|
done()
|
||||||
|
|
||||||
|
it 'dovrebbe contattare l\'indirizzo corretto', (done) ->
|
||||||
|
nock('http://galileicrema.it')
|
||||||
|
.get('/Intraitis/comunicazioni/ComVis.asp?PerChi=Tutti')
|
||||||
|
.reply 200, '<html></html>'
|
||||||
|
ss = [/sto controllando le circolari/i,/errore/i]
|
||||||
|
acc = 0
|
||||||
|
asjon.receive (e,l) ->
|
||||||
|
l.join().should.match ss[acc]
|
||||||
|
acc++
|
||||||
|
if acc is 2 then done()
|
||||||
|
asjon.send 'asjon quali sono le ultime circolari?'
|
||||||
|
|
||||||
|
it 'dovrebbe parsare correttamente le circolari', (done) ->
|
||||||
|
nock('http://galileicrema.it')
|
||||||
|
.get('/Intraitis/comunicazioni/ComVis.asp?PerChi=Tutti')
|
||||||
|
.replyWithFile 200, __dirname+'/circolari.html'
|
||||||
|
expected = '(274) (27/4/2015) SIMULAZIONE PROVE ESAME DI STATO\n(273) (27/4/2015) PROGETTO CAMPIONI SENZA TRUCCO'
|
||||||
|
ss = ['sto controllando le circolari...',expected]
|
||||||
|
acc = 0
|
||||||
|
asjon.receive (e,l) ->
|
||||||
|
l.join().should.equal ss[acc]
|
||||||
|
acc++
|
||||||
|
if acc is 2 then done()
|
||||||
|
asjon.send 'asjon quali sono le ultime 2 circolari?'
|
||||||
|
|
||||||
|
it 'dovrebbe accettare correttamente il numero di circolari da visualizzare', (done) ->
|
||||||
|
nock('http://galileicrema.it')
|
||||||
|
.get('/Intraitis/comunicazioni/ComVis.asp?PerChi=Tutti')
|
||||||
|
.replyWithFile 200, __dirname+'/circolari.html'
|
||||||
|
ss = 'sto controllando le circolari...'
|
||||||
|
acc = 0
|
||||||
|
asjon.receive (e,l) ->
|
||||||
|
if acc is 0
|
||||||
|
l.join().should.equal ss
|
||||||
|
else
|
||||||
|
l.join().split('\n').length.should.equal 5
|
||||||
|
acc++
|
||||||
|
if acc is 2 then done()
|
||||||
|
asjon.send 'asjon quali sono le ultime 5 circolari?'
|
||||||
|
|
||||||
|
it 'dovrebbe linkare correttamente il numero di circolari', (done) ->
|
||||||
|
asjon.receive (e,l) ->
|
||||||
|
l.join().should.equal 'http://galileicrema.it/Intraitis/documenti/comunicazioni/2014/Circolare228.pdf'
|
||||||
|
done()
|
||||||
|
asjon.send 'asjon linkami la circolare 228'
|
4563
test/circolari.html
Normal file
4563
test/circolari.html
Normal file
File diff suppressed because it is too large
Load Diff
69
test/shell-test.coffee
Normal file
69
test/shell-test.coffee
Normal file
@ -0,0 +1,69 @@
|
|||||||
|
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 && npm install --dev'
|
||||||
|
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 && npm install --dev'
|
||||||
|
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'
|
Loading…
Reference in New Issue
Block a user