2023-03-14 13:18:55 +00:00
|
|
|
/**
|
|
|
|
* Copyright (c) HashiCorp, Inc.
|
2023-08-11 13:12:13 +00:00
|
|
|
* SPDX-License-Identifier: BUSL-1.1
|
2023-03-14 13:18:55 +00:00
|
|
|
*/
|
|
|
|
|
2021-01-29 15:57:47 +00:00
|
|
|
import mergeChecks from 'consul-ui/utils/merge-checks';
|
|
|
|
import { module, test } from 'qunit';
|
|
|
|
|
2022-09-15 08:43:17 +00:00
|
|
|
module('Unit | Utility | merge-checks', function () {
|
|
|
|
test('it works', function (assert) {
|
2023-02-10 21:32:19 +00:00
|
|
|
assert.expect(4);
|
2021-01-29 15:57:47 +00:00
|
|
|
[
|
|
|
|
{
|
|
|
|
desc: 'One list of checks, not exposed',
|
|
|
|
exposed: false,
|
|
|
|
checks: [
|
|
|
|
[
|
|
|
|
{
|
|
|
|
ServiceName: 'service-0',
|
|
|
|
CheckID: 'service-0-check-0',
|
|
|
|
Node: 'node-0',
|
|
|
|
Exposable: false,
|
|
|
|
},
|
|
|
|
],
|
|
|
|
],
|
|
|
|
expected: [
|
|
|
|
{
|
|
|
|
ServiceName: 'service-0',
|
|
|
|
CheckID: 'service-0-check-0',
|
|
|
|
Node: 'node-0',
|
|
|
|
Exposable: false,
|
|
|
|
},
|
|
|
|
],
|
|
|
|
},
|
|
|
|
{
|
|
|
|
desc: 'One list of checks, exposed',
|
|
|
|
exposed: true,
|
|
|
|
checks: [
|
|
|
|
[
|
|
|
|
{
|
|
|
|
ServiceName: 'service-0',
|
|
|
|
CheckID: 'service-0-check-0',
|
|
|
|
Node: 'node-0',
|
|
|
|
Exposable: true,
|
|
|
|
},
|
|
|
|
],
|
|
|
|
],
|
|
|
|
expected: [
|
|
|
|
{
|
|
|
|
ServiceName: 'service-0',
|
|
|
|
CheckID: 'service-0-check-0',
|
|
|
|
Node: 'node-0',
|
|
|
|
Exposable: true,
|
|
|
|
Exposed: true,
|
|
|
|
},
|
|
|
|
],
|
|
|
|
},
|
|
|
|
{
|
|
|
|
desc: 'Two lists of checks, not exposed',
|
|
|
|
exposed: false,
|
|
|
|
checks: [
|
|
|
|
[
|
|
|
|
{
|
|
|
|
ServiceName: 'service-0',
|
|
|
|
CheckID: 'service-0-check-0',
|
|
|
|
Node: 'node-0',
|
|
|
|
Exposable: true,
|
|
|
|
},
|
|
|
|
],
|
|
|
|
[
|
|
|
|
{
|
|
|
|
ServiceName: 'service-0-proxy',
|
|
|
|
CheckID: 'service-0-proxy-check-0',
|
|
|
|
Node: 'node-0',
|
|
|
|
Exposable: true,
|
|
|
|
},
|
|
|
|
],
|
|
|
|
],
|
|
|
|
expected: [
|
|
|
|
{
|
|
|
|
ServiceName: 'service-0',
|
|
|
|
CheckID: 'service-0-check-0',
|
|
|
|
Node: 'node-0',
|
|
|
|
Exposable: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
ServiceName: 'service-0-proxy',
|
|
|
|
CheckID: 'service-0-proxy-check-0',
|
|
|
|
Node: 'node-0',
|
|
|
|
Exposable: true,
|
|
|
|
},
|
|
|
|
],
|
|
|
|
},
|
|
|
|
{
|
|
|
|
desc: 'Two lists of checks, with one duplicate node checks, not exposed',
|
|
|
|
exposed: false,
|
|
|
|
checks: [
|
|
|
|
[
|
|
|
|
{
|
|
|
|
ServiceName: 'service-0',
|
|
|
|
CheckID: 'service-0-check-0',
|
|
|
|
Node: 'node-0',
|
|
|
|
Exposable: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
ServiceName: '',
|
|
|
|
CheckID: 'service-0-check-1',
|
|
|
|
Node: 'node-0',
|
|
|
|
Exposable: true,
|
|
|
|
},
|
|
|
|
],
|
|
|
|
[
|
|
|
|
{
|
|
|
|
ServiceName: 'service-0-proxy',
|
|
|
|
CheckID: 'service-0-proxy-check-0',
|
|
|
|
Node: 'node-0',
|
|
|
|
Exposable: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
ServiceName: '',
|
|
|
|
CheckID: 'service-0-check-1',
|
|
|
|
Node: 'node-0',
|
|
|
|
Exposable: true,
|
|
|
|
},
|
|
|
|
],
|
|
|
|
],
|
|
|
|
expected: [
|
|
|
|
{
|
|
|
|
ServiceName: 'service-0',
|
|
|
|
CheckID: 'service-0-check-0',
|
|
|
|
Node: 'node-0',
|
|
|
|
Exposable: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
ServiceName: '',
|
|
|
|
CheckID: 'service-0-check-1',
|
|
|
|
Node: 'node-0',
|
|
|
|
Exposable: true,
|
|
|
|
},
|
|
|
|
{
|
|
|
|
ServiceName: 'service-0-proxy',
|
|
|
|
CheckID: 'service-0-proxy-check-0',
|
|
|
|
Node: 'node-0',
|
|
|
|
Exposable: true,
|
|
|
|
},
|
|
|
|
],
|
|
|
|
},
|
2022-09-15 08:43:17 +00:00
|
|
|
].forEach((spec) => {
|
2021-01-29 15:57:47 +00:00
|
|
|
const actual = mergeChecks(spec.checks, spec.exposed);
|
|
|
|
assert.deepEqual(actual, spec.expected);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
});
|