mirror of
https://github.com/hashicorp/vault.git
synced 2026-05-28 04:10:44 -04:00
* license: update headers to IBM Corp. * `make proto` * update offset because source file changed Signed-off-by: Ryan Cragun <me@ryan.ec> Co-authored-by: Ryan Cragun <me@ryan.ec>
80 lines
2.4 KiB
JavaScript
80 lines
2.4 KiB
JavaScript
/**
|
|
* Copyright IBM Corp. 2016, 2025
|
|
* SPDX-License-Identifier: BUSL-1.1
|
|
*/
|
|
|
|
import { combineFieldGroups } from 'vault/utils/openapi-to-attrs';
|
|
import { module, test } from 'qunit';
|
|
|
|
module('Unit | Util | combineFieldGroups', function () {
|
|
const NEW_FIELDS = ['one', 'two', 'three'];
|
|
|
|
test('it adds new fields from OpenAPI to fieldGroups except for exclusions', function (assert) {
|
|
assert.expect(3);
|
|
const modelFieldGroups = [
|
|
{ default: ['name', 'awesomePeople'] },
|
|
{
|
|
Options: ['ttl'],
|
|
},
|
|
];
|
|
const excludedFields = ['two'];
|
|
const expectedGroups = [
|
|
{ default: ['name', 'awesomePeople', 'one', 'three'] },
|
|
{
|
|
Options: ['ttl'],
|
|
},
|
|
];
|
|
const newFieldGroups = combineFieldGroups(modelFieldGroups, NEW_FIELDS, excludedFields);
|
|
for (const groupName in modelFieldGroups) {
|
|
assert.deepEqual(
|
|
newFieldGroups[groupName],
|
|
expectedGroups[groupName],
|
|
'it incorporates all new fields except for those excluded'
|
|
);
|
|
}
|
|
});
|
|
test('it adds all new fields from OpenAPI to fieldGroups when excludedFields is empty', function (assert) {
|
|
assert.expect(3);
|
|
const modelFieldGroups = [
|
|
{ default: ['name', 'awesomePeople'] },
|
|
{
|
|
Options: ['ttl'],
|
|
},
|
|
];
|
|
const excludedFields = [];
|
|
const expectedGroups = [
|
|
{ default: ['name', 'awesomePeople', 'one', 'two', 'three'] },
|
|
{
|
|
Options: ['ttl'],
|
|
},
|
|
];
|
|
const nonExcludedFieldGroups = combineFieldGroups(modelFieldGroups, NEW_FIELDS, excludedFields);
|
|
for (const groupName in modelFieldGroups) {
|
|
assert.deepEqual(
|
|
nonExcludedFieldGroups[groupName],
|
|
expectedGroups[groupName],
|
|
'it incorporates all new fields'
|
|
);
|
|
}
|
|
});
|
|
test('it keeps fields the same when there are no brand new fields from OpenAPI', function (assert) {
|
|
assert.expect(3);
|
|
const modelFieldGroups = [
|
|
{ default: ['name', 'awesomePeople', 'two', 'one', 'three'] },
|
|
{
|
|
Options: ['ttl'],
|
|
},
|
|
];
|
|
const excludedFields = [];
|
|
const expectedGroups = [
|
|
{ default: ['name', 'awesomePeople', 'two', 'one', 'three'] },
|
|
{
|
|
Options: ['ttl'],
|
|
},
|
|
];
|
|
const fieldGroups = combineFieldGroups(modelFieldGroups, NEW_FIELDS, excludedFields);
|
|
for (const groupName in modelFieldGroups) {
|
|
assert.deepEqual(fieldGroups[groupName], expectedGroups[groupName], 'it incorporates all new fields');
|
|
}
|
|
});
|
|
});
|