From ce21c5109b5234e59ab70df299fcec01b569a94d Mon Sep 17 00:00:00 2001 From: John Cowen Date: Mon, 27 Sep 2021 16:46:26 +0100 Subject: [PATCH] ui: Adds a set of basic unit tests for abilities (#11132) --- .../consul-ui/tests/unit/abilities/-test.js | 65 +++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 ui/packages/consul-ui/tests/unit/abilities/-test.js diff --git a/ui/packages/consul-ui/tests/unit/abilities/-test.js b/ui/packages/consul-ui/tests/unit/abilities/-test.js new file mode 100644 index 0000000000..e3ac70d9f6 --- /dev/null +++ b/ui/packages/consul-ui/tests/unit/abilities/-test.js @@ -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'}` + ); + }); + }); + }); + }); +});