open-nomad/ui/tests/unit/utils/message-from-adapter-error-test.js
2023-04-10 15:36:59 +00:00

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}`
);
});
});
});