/
test.js
68 lines (57 loc) · 2.07 KB
/
test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
var kasta = require ("./");
var config = {
/**
* list of roles
*/
roles :[
"public",
"user",
"admin"],
/**
* access levels
*/
accessLevels : {
"public" : "*",
"anonymous" : [ "public" ],
"user" : [ "user", "admin" ],
"admin" : [ "admin" ]
}
}
describe ("User roles and access levels", function (){
it ("should generate 3 roles and 4 access levels with bitMasks", function () {
Object.keys(kasta(config).accessLevels).length.should.equal(4);
Object.keys(kasta(config).userRoles).length.should.equal(3);
Object.keys(kasta(config).accessLevels).forEach(function(role){
kasta(config).accessLevels[role].should.have.property("bitMask");
kasta(config).accessLevels[role].bitMask.should.not.equal(null);
});
Object.keys(kasta(config).userRoles).forEach(function(role){
kasta(config).userRoles[role].should.have.property("bitMask");
kasta(config).userRoles[role].bitMask.should.not.equal(null);
});
});
it ("should forbid public role to access user access level", function (){
var role = kasta(config).userRoles["public"];
var accessLevel = kasta(config).accessLevels["user"];
var allowed = role.bitMask & accessLevel.bitMask;
(allowed > 0).should.be.false;
});
it ("should allow user role to access user access level", function (){
var role = kasta(config).userRoles["user"];
var accessLevel = kasta(config).accessLevels["user"];
var allowed = role.bitMask & accessLevel.bitMask;
(allowed > 0).should.be.true;
});
it ("should forbid user role to access admin access level", function (){
var role = kasta(config).userRoles["user"];
var accessLevel = kasta(config).accessLevels["admin"];
var allowed = role.bitMask & accessLevel.bitMask;
(allowed > 0).should.be.false;
});
it ("should allow admin role to access user access level", function (){
var role = kasta(config).userRoles["admin"];
var accessLevel = kasta(config).accessLevels["user"];
var allowed = role.bitMask & accessLevel.bitMask;
(allowed > 0).should.be.true;
});
})