ui: Adds a set of basic unit tests for abilities (#11132)
This commit is contained in:
parent
a3f45ad70c
commit
2d3f08263c
|
@ -0,0 +1,65 @@
|
|||
/* globals requirejs */
|
||||
import { module, test } from 'qunit';
|
||||
import { setupTest } from 'ember-qunit';
|
||||
|
||||
module('Unit | Ability | *', function(hooks) {
|
||||
setupTest(hooks);
|
||||
|
||||
// Replace this with your real tests.
|
||||
test('it exists', function(assert) {
|
||||
const abilities = Object.keys(requirejs.entries)
|
||||
.filter(key => key.indexOf('/abilities/') !== -1)
|
||||
.map(key => key.split('/').pop())
|
||||
.filter(item => item !== '-test');
|
||||
abilities.forEach(item => {
|
||||
const ability = this.owner.factoryFor(`ability:${item}`).create();
|
||||
[true, false].forEach(bool => {
|
||||
const permissions = this.owner.lookup(`service:repository/permission`);
|
||||
ability.permissions = {
|
||||
has: _ => bool,
|
||||
permissions: bool ? ['more-than-zero'] : [],
|
||||
generate: function() {
|
||||
return permissions.generate(...arguments);
|
||||
},
|
||||
};
|
||||
['Create', 'Read', 'Update', 'Delete', 'Write', 'List'].forEach(perm => {
|
||||
switch (item) {
|
||||
case 'permission':
|
||||
ability.item = {
|
||||
ID: bool ? 'not-anonymous' : 'anonymous',
|
||||
};
|
||||
break;
|
||||
case 'acl':
|
||||
ability.item = {
|
||||
ID: bool ? 'not-anonymous' : 'anonymous',
|
||||
};
|
||||
break;
|
||||
case 'token':
|
||||
ability.item = {
|
||||
AccessorID: 'not-anonymous',
|
||||
};
|
||||
ability.token = {
|
||||
AccessorID: bool ? 'different-to-item' : 'not-anonymous',
|
||||
};
|
||||
break;
|
||||
case 'nspace':
|
||||
case 'partition':
|
||||
ability.item = {
|
||||
ID: bool ? 'not-default' : 'default',
|
||||
};
|
||||
break;
|
||||
case 'kv':
|
||||
// TODO: We currently hardcode KVs to always be true
|
||||
assert.equal(true, ability[`can${perm}`], `Expected ${item}.can${perm} to be true`);
|
||||
return;
|
||||
}
|
||||
assert.equal(
|
||||
bool,
|
||||
ability[`can${perm}`],
|
||||
`Expected ${item}.can${perm} to be ${bool ? 'true' : 'false'}`
|
||||
);
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
Loading…
Reference in New Issue