mirror of https://github.com/hashicorp/consul
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));
|
||
|
});
|
||
|
});
|