Skip to content
Snippets Groups Projects
Commit d8c542fd authored by Henrique Varella Ehrenfried's avatar Henrique Varella Ehrenfried
Browse files

Start to implement automated tests

parent 4c77d2d4
Branches
No related tags found
No related merge requests found
const URL = "http://localhost:3000/api/";
module.exports = {
URL
}
\ No newline at end of file
......@@ -142,6 +142,12 @@
"resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
"integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
},
"assertion-error": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz",
"integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==",
"dev": true
},
"async": {
"version": "2.6.1",
"resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz",
......@@ -374,6 +380,45 @@
"resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
"integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
},
"chai": {
"version": "3.5.0",
"resolved": "https://registry.npmjs.org/chai/-/chai-3.5.0.tgz",
"integrity": "sha1-TQJjewZ/6Vi9v906QOxW/vc3Mkc=",
"dev": true,
"requires": {
"assertion-error": "^1.0.1",
"deep-eql": "^0.1.3",
"type-detect": "^1.0.0"
}
},
"chai-as-promised": {
"version": "5.3.0",
"resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-5.3.0.tgz",
"integrity": "sha1-CdekApCKpw39vq1T5YU/x50+8hw=",
"dev": true
},
"chai-subset": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/chai-subset/-/chai-subset-1.6.0.tgz",
"integrity": "sha1-pdDKFOMpp5WW7XAFi2ZGvWmIz+k=",
"dev": true
},
"chakram": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/chakram/-/chakram-1.5.0.tgz",
"integrity": "sha1-PYsKiPdo3WraWSpSRmPMDcFKwc8=",
"dev": true,
"requires": {
"chai": "3.x.x",
"chai-as-promised": "5.x.x",
"chai-subset": "1.x.x",
"extend-object": "1.x.x",
"q": "1.x.x",
"request": "2.x.x",
"request-debug": "0.x.x",
"tv4": "1.x.x"
}
},
"chalk": {
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz",
......@@ -722,6 +767,23 @@
"integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
"dev": true
},
"deep-eql": {
"version": "0.1.3",
"resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-0.1.3.tgz",
"integrity": "sha1-71WKyrjeJSBs1xOQbXTlaTDrafI=",
"dev": true,
"requires": {
"type-detect": "0.1.1"
},
"dependencies": {
"type-detect": {
"version": "0.1.1",
"resolved": "https://registry.npmjs.org/type-detect/-/type-detect-0.1.1.tgz",
"integrity": "sha1-C6XsKohWQORw6k6FBZcZANrFiCI=",
"dev": true
}
}
},
"deep-equal": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz",
......@@ -1473,6 +1535,12 @@
"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz",
"integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ="
},
"extend-object": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/extend-object/-/extend-object-1.0.0.tgz",
"integrity": "sha1-QlFPhAFdE1bK9Rh5ad+yvBvaCCM=",
"dev": true
},
"external-editor": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.2.0.tgz",
......@@ -3179,6 +3247,12 @@
"resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz",
"integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0="
},
"q": {
"version": "1.5.1",
"resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz",
"integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=",
"dev": true
},
"qs": {
"version": "6.5.2",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
......@@ -3336,6 +3410,15 @@
}
}
},
"request-debug": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/request-debug/-/request-debug-0.2.0.tgz",
"integrity": "sha1-/AVOyBcYGwTKQaBSwTb2HEirr3g=",
"dev": true,
"requires": {
"stringify-clone": "^1.0.0"
}
},
"require-directory": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
......@@ -3670,6 +3753,12 @@
"safe-buffer": "~5.1.0"
}
},
"stringify-clone": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/stringify-clone/-/stringify-clone-1.1.1.tgz",
"integrity": "sha1-MJojX7Ts/M19OI2+GLqQT6yvQzs=",
"dev": true
},
"strip-ansi": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
......@@ -3888,6 +3977,12 @@
"safe-buffer": "^5.0.1"
}
},
"tv4": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/tv4/-/tv4-1.3.0.tgz",
"integrity": "sha1-0CDIRvrdUMhVq7JeuuzGj8EPeWM=",
"dev": true
},
"tweetnacl": {
"version": "0.14.5",
"resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
......@@ -3902,6 +3997,12 @@
"prelude-ls": "~1.1.2"
}
},
"type-detect": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/type-detect/-/type-detect-1.0.0.tgz",
"integrity": "sha1-diIXzAbbJY7EiQihKY6LlRIejqI=",
"dev": true
},
"type-is": {
"version": "1.6.16",
"resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.16.tgz",
......
......@@ -8,7 +8,8 @@
"scripts": {
"lint": "eslint .",
"start": "node .",
"posttest": "npm run lint && nsp check"
"posttest": "npm run lint && nsp check",
"tests":"mocha ./test"
},
"dependencies": {
"compression": "^1.0.3",
......@@ -22,6 +23,7 @@
"strong-error-handler": "^2.0.0"
},
"devDependencies": {
"chakram": "^1.5.0",
"eslint": "^3.17.1",
"eslint-config-loopback": "^8.0.0",
"nsp": "^3.2.1"
......
......@@ -38,9 +38,8 @@ module.exports = function(app) {
}
context.model.findById(userId, function(err, model) {
app.models.EndUser.findById(userId, function(err2, user){
if (err || err2 || !user || !model)
if ((err || !model ) && (err2 || !user))
return reject();
if(user.permission !== role)
return reject();
......@@ -77,7 +76,7 @@ module.exports = function(app) {
context.model.findById(userId, function(err, model) {
app.models.EndUser.findById(userId, function(err2, user){
if (err || err2 || !user || !model)
if ((err || !model ) && (err2 || !user))
return reject();
if(user.permission !== role)
return reject();
......
var chakram = require('chakram'), expect = chakram.expect;
var url = require('../enviroment')
const URL = url.URL;
describe("Account", function() {
it("should create an admin account", function (){
let testObject = {
"email": "admin@admin.com",
"permission": "admin",
"registration": "NMBR#123456789",
"username": "Administrador Atencioso",
"password":"admin"
}
return chakram.post(`${URL}end_users`,testObject).then( function (myResponse){
expect(myResponse).to.have.status(200)
expect(myResponse.body.result.permission).to.contain('admin')
});
});
it("should create an user account", function (){
let testObject = {
"email": "enduser@enduser.com",
"permission": "user",
"registration": "NMBR#321654987",
"username": "Usuário Feliz",
"password":"end_user"
}
return chakram.post(`${URL}end_users`,testObject).then( function (myResponse){
expect(myResponse).to.have.status(200)
expect(myResponse.body.result.permission).to.contain('user')
});
});
})
\ No newline at end of file
var chakram = require('chakram'), expect = chakram.expect;
var url = require('../enviroment')
const URL = url.URL;
describe("Categories", function() {
it("should return all categories", function(){
return chakram.get(`${URL}categories`).then(function (myResponse){
expect(myResponse).to.have.status(200);
expect(myResponse.body.result).to.be.a('array')
});
});
it("should return one category", function(){
return chakram.get(`${URL}categories`).then( function (myResponse){
let category = myResponse.body.result[0]
return chakram.get(`${URL}categories/${myResponse.body.result[0].id}`).then( function (myResponse2){
expect(myResponse2).to.have.status(200);
expect(myResponse2.body.result.category_name).to.contain(category.category_name)
});
});
});
it("should try to create a new category", function(){
let testObject = {
"category_name":"Terreiro",
"category_description":"Lugar que mantém as tradições dos afrodescendentes"
}
return chakram.post(`${URL}categories`,testObject).then( function (myResponse){
expect(myResponse).to.have.status(401)
expect(myResponse.body.error.message).to.contain("Authorization Required")
});
});
// it("should create a new category as admin", function(){
// let testObject = {
// "category_name":"Terreiro",
// "category_description":"Lugar que mantém as tradições dos afrodescendentes"
// }
// return chakram.post(`${URL}categories`,testObject).then( function (myResponse){
// expect(myResponse).to.have.status(401)
// expect(myResponse.body.error.message).to.contain("Authorization Required")
// });
// });
})
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment