mirror of
https://github.com/status-im/consul.git
synced 2025-01-23 03:59:18 +00:00
03a1a86dfe
* v3.20.2...v3.24.0 * Fix handle undefined outlet in route component * Don't use template helper for optional modal.open Using the optional-helper here will trigger a computation in the same runloop error. This is because we are setting the `modal`-property when the `<Ref>` component gets rendered which will update the `this.modal`-property which will then recompute the `optional`-helper leading to this error. Instead we will create an action that will call the `open`-method on the modal when it is defined. This gets rid of the double computation error as we will not access the modal property twice in the same runloop when `modal` is getting set. * Fix - fn needs to be passed function tab-nav We create functions in the component file instead so that fn-helper stops complaining about the need to pass a function. * Update ember-exam to 6.1 version "Makes it compatible" with ember-qunit v5 * scheduleOnce setMaxHeight paged-collection We need to schedule to get around double-computation error. * Fix - model.data is removed from ember-data This has been private API all along - we need to work around the removal. Reference: https://github.com/emberjs/data/pull/7338/files#diff-9a8746fc5c86fd57e6122f00fef3155f76f0f3003a24b53fb7c4621d95dcd9bfL1310 * Fix `propContains` instead of `deepEqual` policy Recent model.data works differently than iterating attributes. We use `propContains` instead of `deepEqual`. We are only interested in the properties we assert against and match the previous behavior with this change. * Fix `propContains` instead of `deepEqual` token * Better handling single-records repo test-helper `model.data` has been removed we need to handle proxies and model instances differently. * Fix remaining repository tests with propContains We don't want to match entire objects - we don't care about properties we haven't defined in the assertion. * Don't use template helper for optional modal.open Using a template helper will give us a recomputation error - we work around it by creating an explicit action on the component instead. * Await `I $verb the $pageObject object` step * Fix no more customization ember-can No need to customize, the helper handles destruction fine on its own. * Fix - don't pass `optional` functions to fn We will declare the functions on the component instead. This gives us the same behavior but no error from `fn`, which expects a function to be passed. * Fix - handle `undefined` state on validate modifier StateChart can yield out an undefined `state` we need to handle that in the validate modifier * Fix linting errors tests directory * Warn / turn off new ember linting issues We will tackle them one by one and don't want to autofix issues that could be dangerous to auto-fix. * Auto-fix linting issues * More linting configuration * Fix remaining linting issues * Fix linting issues new files after rebase * ui: Remove ember-cli-uglify config now we are using terser (#14574) Co-authored-by: John Cowen <johncowen@users.noreply.github.com>
78 lines
2.6 KiB
JavaScript
78 lines
2.6 KiB
JavaScript
/* 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 'peer':
|
|
ability.item = {
|
|
State: bool ? 'ACTIVE' : 'DELETING',
|
|
};
|
|
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;
|
|
case 'license':
|
|
case 'zone':
|
|
// Zone permissions depend on NSPACES_ENABLED
|
|
// License permissions also depend on NSPACES_ENABLED;
|
|
// behavior works as expected when verified manually but test
|
|
// fails due to this dependency. -@evrowe 2022-04-18
|
|
return;
|
|
}
|
|
assert.equal(
|
|
bool,
|
|
ability[`can${perm}`],
|
|
`Expected ${item}.can${perm} to be ${bool ? 'true' : 'false'}`
|
|
);
|
|
});
|
|
});
|
|
});
|
|
});
|
|
});
|