mirror of
https://github.com/status-im/consul.git
synced 2025-01-19 18:19:53 +00:00
f65f001675
In some circumstances a consul 1.4 client could be running in an un-upgraded 1.3 or lower cluster. Currently this gives a 500 error on the new ACL token endpoint. Here we catch this specific 500 error/message and set the users AccessorID to null. Elsewhere in the frontend we use this fact (AccessorID being null) to decide whether to present the legacy or the new ACL UI to the user. Also: - Re-adds in most of the old style ACL acceptance tests, now that we are keeping the old style UI - Restricts code editors to HCL only mode for all `Rules` editing (legacy/'half legacy'/new style) - Adds a [Stop using] button to the old style ACL rows so its possible to logout. - Updates copy and documentation links for the upgrade notices
49 lines
1.9 KiB
JavaScript
49 lines
1.9 KiB
JavaScript
import createIsValidServerError from 'consul-ui/utils/http/acl/is-valid-server-error';
|
|
import { module, test } from 'qunit';
|
|
|
|
module('Unit | Utility | http/acl/is valid server error');
|
|
const createEmberDataError = function(response) {
|
|
return {
|
|
errors: [
|
|
{
|
|
detail: response,
|
|
},
|
|
],
|
|
};
|
|
};
|
|
test('it returns a function', function(assert) {
|
|
const isValidServerError = createIsValidServerError();
|
|
assert.ok(typeof isValidServerError === 'function');
|
|
});
|
|
test("it returns false if there is no 'correctly' formatted error", function(assert) {
|
|
const isValidServerError = createIsValidServerError();
|
|
assert.notOk(isValidServerError());
|
|
assert.notOk(isValidServerError({}));
|
|
assert.notOk(isValidServerError({ errors: {} }));
|
|
assert.notOk(isValidServerError({ errors: [{}] }));
|
|
assert.notOk(isValidServerError({ errors: [{ notDetail: '' }] }));
|
|
});
|
|
// don't go too crazy with these, just enough for sanity check, we are essentially testing indexOf
|
|
test("it returns false if the response doesn't contain the exact error response", function(assert) {
|
|
const isValidServerError = createIsValidServerError();
|
|
[
|
|
"pc error making call: rpc: can't find method ACL",
|
|
"rpc error making call: rpc: can't find method",
|
|
"rpc rror making call: rpc: can't find method ACL",
|
|
].forEach(function(response) {
|
|
const e = createEmberDataError(response);
|
|
assert.notOk(isValidServerError(e));
|
|
});
|
|
});
|
|
test('it returns true if the response contains the exact error response', function(assert) {
|
|
const isValidServerError = createIsValidServerError();
|
|
[
|
|
"rpc error making call: rpc: can't find method ACL",
|
|
" rpc error making call: rpc: can't find method ACL",
|
|
"rpc error making call: rpc: rpc error making call: rpc: rpc error making call: rpc: can't find method ACL",
|
|
].forEach(function(response) {
|
|
const e = createEmberDataError(response);
|
|
assert.ok(isValidServerError(e));
|
|
});
|
|
});
|