53 lines
1.4 KiB
JavaScript
53 lines
1.4 KiB
JavaScript
/**
|
|
* Copyright (c) HashiCorp, Inc.
|
|
* SPDX-License-Identifier: MPL-2.0
|
|
*/
|
|
|
|
import { module, test } from 'qunit';
|
|
import { ServerError, ForbiddenError } from '@ember-data/adapter/error';
|
|
import messageFromAdapterError from 'nomad-ui/utils/message-from-adapter-error';
|
|
|
|
const testCases = [
|
|
{
|
|
name: 'Forbidden Error',
|
|
in: [new ForbiddenError([], "Can't do that"), 'run tests'],
|
|
out: 'Your ACL token does not grant permission to run tests.',
|
|
},
|
|
{
|
|
name: 'Generic Error',
|
|
in: [
|
|
new ServerError([{ detail: 'DB Max Connections' }], 'Server Error'),
|
|
'run tests',
|
|
],
|
|
out: 'DB Max Connections',
|
|
},
|
|
{
|
|
name: 'Multiple Errors',
|
|
in: [
|
|
new ServerError(
|
|
[{ detail: 'DB Max Connections' }, { detail: 'Service timeout' }],
|
|
'Server Error'
|
|
),
|
|
'run tests',
|
|
],
|
|
out: 'DB Max Connections\n\nService timeout',
|
|
},
|
|
{
|
|
name: 'Malformed Error (not from Ember Data which should always have an errors list)',
|
|
in: [new Error('Go boom'), 'handle custom error messages'],
|
|
out: 'Unknown Error',
|
|
},
|
|
];
|
|
|
|
module('Unit | Util | messageFromAdapterError', function () {
|
|
testCases.forEach((testCase) => {
|
|
test(testCase.name, function (assert) {
|
|
assert.equal(
|
|
messageFromAdapterError.apply(null, testCase.in),
|
|
testCase.out,
|
|
`[${testCase.in.join(', ')}] => ${testCase.out}`
|
|
);
|
|
});
|
|
});
|
|
});
|