mirror of
https://github.com/hashicorp/vault.git
synced 2025-08-17 12:07:02 +02:00
* Update browserslist * Add browserslistrc * ember-cli-update --to 3.26, fix conflicts * Run codemodes that start with ember-* * More codemods - before cp* * More codemods (curly data-test-*) * WIP ember-basic-dropdown template errors * updates ember-basic-dropdown and related deps to fix build issues * updates basic dropdown instances to new version API * updates more deps -- ember-template-lint is working again * runs no-implicit-this codemod * creates and runs no-quoteless-attributes codemod * runs angle brackets codemod * updates lint:hbs globs to only touch hbs files * removes yield only templates * creates and runs deprecated args transform * supresses lint error for invokeAction on LinkTo component * resolves remaining ambiguous path lint errors * resolves simple-unless lint errors * adds warnings for deprecated tagName arg on LinkTo components * adds warnings for remaining curly component invocation * updates global template lint rules * resolves remaining template lint errors * disables some ember specfic lint rules that target pre octane patterns * js lint fix run * resolves remaining js lint errors * fixes test run * adds npm-run-all dep * fixes test attribute issues * fixes console acceptance tests * fixes tests * adds yield only wizard/tutorial-active template * fixes more tests * attempts to fix more flaky tests * removes commented out settled in transit test * updates deprecations workflow and adds initializer to filter by version * updates flaky policies acl old test * updates to flaky transit test * bumps ember deps down to LTS version * runs linters after main merge * fixes client count tests after bad merge conflict fixes * fixes client count history test * more updates to lint config * another round of hbs lint fixes after extending stylistic rule * updates lint-staged commands * removes indent eslint rule since it seems to break things * fixes bad attribute in transform-edit-form template * test fixes * fixes enterprise tests * adds changelog * removes deprecated ember-concurrency-test-waiters dep and adds @ember/test-waiters * flaky test fix Co-authored-by: hashishaw <cshaw@hashicorp.com>
103 lines
3.5 KiB
JavaScript
103 lines
3.5 KiB
JavaScript
import { module, test } from 'qunit';
|
|
import KVObject from 'vault/lib/kv-object';
|
|
|
|
module('Unit | Lib | kv object', function () {
|
|
let fromJSONTests = [
|
|
[
|
|
'types',
|
|
{ string: 'string', false: false, zero: 0, number: 1, null: null, true: true, object: { one: 'two' } },
|
|
[
|
|
{ name: 'false', value: false },
|
|
{ name: 'null', value: null },
|
|
{ name: 'number', value: 1 },
|
|
{ name: 'object', value: { one: 'two' } },
|
|
{ name: 'string', value: 'string' },
|
|
{ name: 'true', value: true },
|
|
{ name: 'zero', value: 0 },
|
|
],
|
|
],
|
|
[
|
|
'ordering',
|
|
{ b: 'b', 1: '1', z: 'z', A: 'A', a: 'a' },
|
|
[
|
|
{ name: '1', value: '1' },
|
|
{ name: 'a', value: 'a' },
|
|
{ name: 'A', value: 'A' },
|
|
{ name: 'b', value: 'b' },
|
|
{ name: 'z', value: 'z' },
|
|
],
|
|
],
|
|
];
|
|
|
|
fromJSONTests.forEach(function ([name, input, content]) {
|
|
test(`fromJSON: ${name}`, function (assert) {
|
|
let data = KVObject.create({ content: [] }).fromJSON(input);
|
|
assert.deepEqual(data.get('content'), content, 'has expected content');
|
|
});
|
|
});
|
|
|
|
test(`fromJSON: non-object input`, function (assert) {
|
|
let input = [{ foo: 'bar' }];
|
|
assert.throws(
|
|
() => {
|
|
KVObject.create({ content: [] }).fromJSON(input);
|
|
},
|
|
/Vault expects data to be formatted as an JSON object/,
|
|
'throws when non-object input is used to construct the KVObject'
|
|
);
|
|
});
|
|
|
|
fromJSONTests.forEach(function ([name, input, content]) {
|
|
test(`fromJSONString: ${name}`, function (assert) {
|
|
let inputString = JSON.stringify(input, null, 2);
|
|
let data = KVObject.create({ content: [] }).fromJSONString(inputString);
|
|
assert.deepEqual(data.get('content'), content, 'has expected content');
|
|
});
|
|
});
|
|
|
|
let toJSONTests = [
|
|
[
|
|
'types',
|
|
false,
|
|
{ string: 'string', false: false, zero: 0, number: 1, null: null, true: true, object: { one: 'two' } },
|
|
{ false: false, null: null, number: 1, object: { one: 'two' }, string: 'string', true: true, zero: 0 },
|
|
],
|
|
['include blanks = true', true, { string: 'string', '': '' }, { string: 'string', '': '' }],
|
|
['include blanks = false', false, { string: 'string', '': '' }, { string: 'string' }],
|
|
];
|
|
|
|
toJSONTests.forEach(function ([name, includeBlanks, input, output]) {
|
|
test(`toJSON: ${name}`, function (assert) {
|
|
let data = KVObject.create({ content: [] }).fromJSON(input);
|
|
let result = data.toJSON(includeBlanks);
|
|
assert.deepEqual(result, output, 'has expected output');
|
|
});
|
|
});
|
|
|
|
toJSONTests.forEach(function ([name, includeBlanks, input, output]) {
|
|
test(`toJSONString: ${name}`, function (assert) {
|
|
let expected = JSON.stringify(output, null, 2);
|
|
let data = KVObject.create({ content: [] }).fromJSON(input);
|
|
let result = data.toJSONString(includeBlanks);
|
|
assert.equal(result, expected, 'has expected output string');
|
|
});
|
|
});
|
|
|
|
let isAdvancedTests = [
|
|
[
|
|
'advanced',
|
|
{ string: 'string', false: false, zero: 0, number: 1, null: null, true: true, object: { one: 'two' } },
|
|
true,
|
|
],
|
|
['string-only', { string: 'string', one: 'two' }, false],
|
|
];
|
|
|
|
isAdvancedTests.forEach(function ([name, input, expected]) {
|
|
test(`isAdvanced: ${name}`, function (assert) {
|
|
let data = KVObject.create({ content: [] }).fromJSON(input);
|
|
|
|
assert.equal(data.isAdvanced(), expected, 'calculates isAdvanced correctly');
|
|
});
|
|
});
|
|
});
|