ui: Make empty Rules ('') take priority over a `Legacy: true` (#4899)
Even if an old style token has a Legacy of true, yet it has an empty set of Rules, treat the token as a new style token, as its essentially the same
This commit is contained in:
parent
e4be60b25c
commit
d7e969f513
|
@ -2,8 +2,17 @@ import { helper } from '@ember/component/helper';
|
||||||
import { get } from '@ember/object';
|
import { get } from '@ember/object';
|
||||||
|
|
||||||
const _isLegacy = function(token) {
|
const _isLegacy = function(token) {
|
||||||
|
// Empty Rules take priority over a Legacy: true
|
||||||
|
// in order to make this decision
|
||||||
const rules = get(token, 'Rules');
|
const rules = get(token, 'Rules');
|
||||||
return get(token, 'Legacy') || (rules != null && rules.trim() != '');
|
if (rules != null) {
|
||||||
|
return rules.trim() !== '';
|
||||||
|
}
|
||||||
|
const legacy = get(token, 'Legacy');
|
||||||
|
if (typeof legacy !== 'undefined') {
|
||||||
|
return legacy;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
};
|
};
|
||||||
export function isLegacy(params, hash) {
|
export function isLegacy(params, hash) {
|
||||||
const token = params[0];
|
const token = params[0];
|
||||||
|
|
|
@ -19,7 +19,7 @@ test('it returns false if the token has Rules but those rules are empty', functi
|
||||||
const actual = isLegacy([{ Rules: '' }]);
|
const actual = isLegacy([{ Rules: '' }]);
|
||||||
assert.notOk(actual);
|
assert.notOk(actual);
|
||||||
});
|
});
|
||||||
test('it returns false if the token has Rules but those rules are empty', function(assert) {
|
test('it returns false if the token has Rules but those rules is null', function(assert) {
|
||||||
const actual = isLegacy([{ Rules: null }]);
|
const actual = isLegacy([{ Rules: null }]);
|
||||||
assert.notOk(actual);
|
assert.notOk(actual);
|
||||||
});
|
});
|
||||||
|
@ -44,3 +44,10 @@ test('it returns false if tokens have no Rules, or has Rules but those rules are
|
||||||
const actual = isLegacy([[{}, { Rules: '' }]]);
|
const actual = isLegacy([[{}, { Rules: '' }]]);
|
||||||
assert.notOk(actual);
|
assert.notOk(actual);
|
||||||
});
|
});
|
||||||
|
test('it returns false if a token is marked as legacy, has Rules but those rules are empty', function(assert) {
|
||||||
|
// this may seem strange, but empty Rules should override Legacy, this only happens
|
||||||
|
// when a legacy token that has already been loaded has its rules wiped out
|
||||||
|
// WITHOUT then the ui refreshing
|
||||||
|
const actual = isLegacy([{ Legacy: true, Rules: '' }]);
|
||||||
|
assert.notOk(actual);
|
||||||
|
});
|
||||||
|
|
Loading…
Reference in New Issue