mirror of https://github.com/hashicorp/consul
99 lines
2.3 KiB
JavaScript
99 lines
2.3 KiB
JavaScript
/**
|
|
* Copyright (c) HashiCorp, Inc.
|
|
* SPDX-License-Identifier: BUSL-1.1
|
|
*/
|
|
|
|
import { module, test } from 'qunit';
|
|
|
|
import ExactSearch from 'consul-ui/utils/search/exact';
|
|
import predicates from 'consul-ui/search/predicates/role';
|
|
|
|
module('Unit | Search | Predicate | role', function () {
|
|
test('items are found by properties', function (assert) {
|
|
const actual = new ExactSearch(
|
|
[
|
|
{
|
|
Name: 'name-HIT',
|
|
Description: 'description',
|
|
Policies: [],
|
|
},
|
|
{
|
|
Name: 'name',
|
|
Description: 'desc-HIT-ription',
|
|
Policies: [],
|
|
},
|
|
{
|
|
Name: 'name',
|
|
Description: 'description',
|
|
Policies: [{ Name: 'policy' }, { Name: 'policy-HIT' }],
|
|
},
|
|
{
|
|
Name: 'name',
|
|
Description: 'description',
|
|
ServiceIdentities: [
|
|
{ ServiceName: 'service-identity' },
|
|
{ ServiceName: 'service-identity-HIT' },
|
|
],
|
|
},
|
|
],
|
|
{
|
|
finders: predicates,
|
|
}
|
|
).search('hit');
|
|
assert.equal(actual.length, 4);
|
|
});
|
|
test('items are not found', function (assert) {
|
|
const actual = new ExactSearch(
|
|
[
|
|
{
|
|
Name: 'name',
|
|
Description: 'description',
|
|
Policies: [],
|
|
},
|
|
{
|
|
Name: 'name',
|
|
Description: 'description',
|
|
Policies: [{ Name: 'policy' }, { Name: 'policy-second' }],
|
|
},
|
|
{
|
|
AccessorID: 'id',
|
|
Name: 'name',
|
|
Description: 'description',
|
|
ServiceIdenitities: [{ ServiceName: 'si' }, { ServiceName: 'si-second' }],
|
|
},
|
|
],
|
|
{
|
|
finders: predicates,
|
|
}
|
|
).search('hit');
|
|
assert.equal(actual.length, 0);
|
|
});
|
|
test('arraylike things can be empty', function (assert) {
|
|
const actual = new ExactSearch(
|
|
[
|
|
{
|
|
Name: 'name',
|
|
Description: 'description',
|
|
},
|
|
{
|
|
Name: 'name',
|
|
Description: 'description',
|
|
Policies: null,
|
|
ServiceIdentities: null,
|
|
},
|
|
{
|
|
AccessorID: 'id',
|
|
Name: 'name',
|
|
Description: 'description',
|
|
Policies: [],
|
|
ServiceIdentities: [],
|
|
},
|
|
],
|
|
{
|
|
finders: predicates,
|
|
}
|
|
).search('hit');
|
|
assert.equal(actual.length, 0);
|
|
});
|
|
});
|