-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
cdbb47e
commit 7b608cf
Showing
8 changed files
with
243 additions
and
38 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,17 +1,40 @@ | ||
[ | ||
{ | ||
"id": 1, | ||
"question": "Qual sua url do Jenkins?" | ||
"speak": "Ok, vou lhe fazer algumas perguntas então. Se precisar de mais detalhes <https://github.com/hubot-js/gear-jenkins#jenkins-url|*clique aqui*>." | ||
}, | ||
|
||
{ | ||
"speak": "_*Você utiliza o Jenkins com autenticação?*_", | ||
"expectedResponses": [ | ||
{ | ||
"response": "Sim", | ||
"iteration": { | ||
"speak": "_*Qual é a url do Jenkins?*_ A url deve ter este formato: http://user:authToken@jenkinsUrl. \nSe não quiser fazer esta configuração agora, mantendo o valor atual, digite *pular*.", | ||
"handler": "src/configHandler/url-handler" | ||
} | ||
}, | ||
|
||
{ | ||
"response": "Não", | ||
"iteration": { | ||
"speak": "_*Qual é a url do Jenkins?*_ Simplesmente utilize a url de acesso ao Jenkins. \nSe não quiser fazer esta configuração agora, mantendo o valor atual, digite *pular*.", | ||
"handler": "src/configHandler/url-handler" | ||
} | ||
} | ||
] | ||
}, | ||
|
||
{ | ||
"id": 2, | ||
"question": "Você utiliza CRFS no seu Jenkins?", | ||
"expectedResponses": ["Sim", "Não"] | ||
"speak": "_*Você utiliza CRFS no Jenkins?*_ \nSe não quiser fazer esta configuração agora, mantendo o valor atual, digite *pular*.", | ||
"expectedResponses": [ | ||
{ "response": "Sim" }, | ||
{ "response": "Não" }, | ||
{ "response": "pular" } | ||
], | ||
"handler": "src/configHandler/csrf-handler" | ||
}, | ||
|
||
{ | ||
"id": 3, | ||
"question": "Tudo certo. Jenkins configurado" | ||
"speak": "Tudo certo. Jenkins configurado" | ||
} | ||
] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -8,5 +8,4 @@ | |
"message": "<!channel|channel> Alright. I'll start the job" | ||
} | ||
} | ||
|
||
] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
'use strict'; | ||
|
||
exports.handle = handle; | ||
|
||
let Q = require('q'); | ||
var db = require('../../src/db').getDb(); | ||
|
||
function handle(awnser) { | ||
let deferred = Q.defer(); | ||
|
||
if (awnser === 'pular') { | ||
deferred.resolve(); | ||
return deferred.promise; | ||
} | ||
|
||
db.run('UPDATE config SET useCSRF = ?', getUseCSRF(awnser)); | ||
|
||
deferred.resolve(); | ||
|
||
return deferred.promise; | ||
} | ||
|
||
function getUseCSRF(awnser) { | ||
return awnser === 'Sim'; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,43 @@ | ||
'use strict'; | ||
|
||
exports.handle = handle; | ||
|
||
let Q = require('q'); | ||
var db = require('../../src/db').getDb(); | ||
var request = require('request-promise'); | ||
|
||
function handle(awnser) { | ||
let deferred = Q.defer(); | ||
|
||
if (awnser === 'pular') { | ||
deferred.resolve(); | ||
return deferred.promise; | ||
} | ||
|
||
let url = getUrl(awnser); | ||
let successMessage = 'A url responde, aparentemente está tudo certo. :champagne:'; | ||
let errorMessage = 'Não consegui verificar a url, algo está errado. :disappointed: Confira se a url está correta.'; | ||
|
||
db.run('UPDATE config SET url = ?', url); | ||
|
||
request.get(url) | ||
.then(function() { | ||
deferred.resolve(successMessage); | ||
}).catch(function() { | ||
deferred.reject(errorMessage); | ||
}); | ||
|
||
return deferred.promise; | ||
} | ||
|
||
function getUrl(awnser) { | ||
let url = awnser; | ||
|
||
if (url.includes('|')) { | ||
url = url.replace('<', '').substring(0, url.indexOf('|') - 1); | ||
} else { | ||
url = url.replace('<', '').replace('>', ''); | ||
} | ||
|
||
return url; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
var proxyquire = require('proxyquire').noPreserveCache(); | ||
var chai = require('chai'); | ||
var expect = chai.expect; | ||
var sinon = require('sinon'); | ||
|
||
var chaiAsPromised = require('chai-as-promised'); | ||
chai.use(chaiAsPromised); | ||
|
||
describe('Handle with csrf configuration', function() { | ||
var runSpy; | ||
var dbStub; | ||
|
||
beforeEach(function() { | ||
var runStub = sinon.stub().resolves(); | ||
runSpy = sinon.spy(runStub); | ||
var db = { run: runSpy }; | ||
dbStub = function() { return db; } | ||
}); | ||
|
||
describe("Save option", function() { | ||
it("with true when csrf is used", function() { | ||
var csrfHandler = getCsrfHandler(dbStub); | ||
|
||
return csrfHandler.handle('Sim').then(function() { | ||
expect(runSpy.calledWithExactly('UPDATE config SET useCSRF = ?', true)).to.be.true; | ||
}); | ||
}); | ||
|
||
it("with false when csrf is not used", function() { | ||
var csrfHandler = getCsrfHandler(dbStub); | ||
|
||
return csrfHandler.handle('Não').then(function() { | ||
expect(runSpy.calledWithExactly('UPDATE config SET useCSRF = ?', false)).to.be.true; | ||
}); | ||
}); | ||
}); | ||
|
||
describe("Skip configuration", function() { | ||
it("when get skip word and do not save config", function() { | ||
var csrfHandler = getCsrfHandler(dbStub); | ||
|
||
var promise = csrfHandler.handle('pular').then(function() { | ||
expect(runSpy.called).to.be.false; | ||
}); | ||
|
||
return expect(promise).to.be.fulfilled; | ||
}); | ||
}); | ||
}); | ||
|
||
function getCsrfHandler(dbStub) { | ||
return proxyquire('../../src/configHandler/csrf-handler', { '../../src/db': { 'getDb': dbStub } } ); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,89 @@ | ||
var proxyquire = require('proxyquire').noPreserveCache(); | ||
var chai = require('chai'); | ||
var expect = chai.expect; | ||
var sinon = require('sinon'); | ||
|
||
var chaiAsPromised = require('chai-as-promised'); | ||
chai.use(chaiAsPromised); | ||
|
||
describe('Handle with url configuration', function() { | ||
var runSpy; | ||
var dbStub; | ||
var requestStub; | ||
|
||
beforeEach(function() { | ||
var runStub = sinon.stub().resolves(); | ||
runSpy = sinon.spy(runStub); | ||
var db = { run: runSpy }; | ||
dbStub = function() { return db; }; | ||
requestStub = sinon.stub().resolves(); | ||
}); | ||
|
||
describe("Save option", function() { | ||
it("with first part when url have a pipe", function() { | ||
var urlHandler = getUrlHandler(dbStub, requestStub); | ||
var url = '<http://www.jenkins.com|www.jenkins.com>'; | ||
|
||
return urlHandler.handle(url).then(function() { | ||
expect(runSpy.calledWithExactly('UPDATE config SET url = ?', 'http://www.jenkins.com')).to.be.true; | ||
}); | ||
}); | ||
|
||
it("remove arrows when url do not have a pipe", function() { | ||
var urlHandler = getUrlHandler(dbStub, requestStub); | ||
var url = '<http://jenkins.com>'; | ||
|
||
return urlHandler.handle(url).then(function() { | ||
expect(runSpy.calledWithExactly('UPDATE config SET url = ?', 'http://jenkins.com')).to.be.true; | ||
}); | ||
}); | ||
}); | ||
|
||
describe("Verify informed url", function() { | ||
it("and return error message when url do not respond", function() { | ||
var errorMessage = 'Não consegui verificar a url, algo está errado. :disappointed: Confira se a url está correta.'; | ||
requestStub = sinon.stub().rejects(errorMessage); | ||
|
||
var urlHandler = getUrlHandler(dbStub, requestStub); | ||
|
||
var promise = urlHandler.handle('url'); | ||
|
||
return expect(promise).to.be.rejectedWith(errorMessage); | ||
}); | ||
|
||
it("and return success message when url respond", function() { | ||
var successMessage = 'A url responde, aparentemente está tudo certo. :champagne:'; | ||
requestStub = sinon.stub().resolves(successMessage); | ||
|
||
var urlHandler = getUrlHandler(dbStub, requestStub); | ||
|
||
var promise = urlHandler.handle('url'); | ||
|
||
return expect(promise).to.be.eventually.equal(successMessage); | ||
}); | ||
}); | ||
|
||
describe("Skip configuration", function() { | ||
it("when get skip word and do not save config", function() { | ||
var csrfHandler = getUrlHandler(dbStub, requestStub); | ||
|
||
var promise = csrfHandler.handle('pular').then(function() { | ||
expect(runSpy.called).to.be.false; | ||
}); | ||
|
||
return expect(promise).to.be.fulfilled; | ||
}); | ||
}); | ||
}); | ||
|
||
function getUrlHandler(dbStub, requestStub) { | ||
let db = { 'getDb': dbStub }; | ||
let request = { 'get': requestStub}; | ||
|
||
let stubs = { | ||
'../../src/db': db, | ||
'request-promise': request | ||
} | ||
|
||
return proxyquire('../../src/configHandler/url-handler', stubs); | ||
} |