2023-03-14 13:18:55 +00:00
|
|
|
/**
|
|
|
|
* Copyright (c) HashiCorp, Inc.
|
|
|
|
* SPDX-License-Identifier: MPL-2.0
|
|
|
|
*/
|
|
|
|
|
2020-07-07 18:58:46 +00:00
|
|
|
import createQueryParams from 'consul-ui/utils/http/create-query-params';
|
|
|
|
import { module, test } from 'qunit';
|
|
|
|
|
2022-09-15 08:43:17 +00:00
|
|
|
module('Unit | Utility | http/create-query-params', function () {
|
|
|
|
const stringifyQueryParams = createQueryParams((str) => str);
|
|
|
|
test('it turns objects into query params formatted strings', function (assert) {
|
2020-07-07 18:58:46 +00:00
|
|
|
const expected = 'something=here&another=variable';
|
|
|
|
const actual = stringifyQueryParams({
|
|
|
|
something: 'here',
|
|
|
|
another: 'variable',
|
|
|
|
});
|
|
|
|
assert.equal(actual, expected);
|
|
|
|
});
|
2022-09-15 08:43:17 +00:00
|
|
|
test('it ignores undefined properties', function (assert) {
|
2020-07-07 18:58:46 +00:00
|
|
|
const expected = 'something=here';
|
|
|
|
const actual = stringifyQueryParams({
|
|
|
|
something: 'here',
|
|
|
|
another: undefined,
|
|
|
|
});
|
|
|
|
assert.equal(actual, expected);
|
|
|
|
});
|
2022-09-15 08:43:17 +00:00
|
|
|
test('it stringifies nested objects', function (assert) {
|
2020-07-07 18:58:46 +00:00
|
|
|
const expected = 'something=here&another[something]=here&another[another][something]=here';
|
|
|
|
const actual = stringifyQueryParams({
|
|
|
|
something: 'here',
|
|
|
|
another: {
|
|
|
|
something: 'here',
|
|
|
|
another: {
|
|
|
|
something: 'here',
|
|
|
|
},
|
|
|
|
},
|
|
|
|
});
|
|
|
|
assert.equal(actual, expected);
|
|
|
|
});
|
2022-09-15 08:43:17 +00:00
|
|
|
test('it only adds the property if the value is null', function (assert) {
|
2020-07-07 18:58:46 +00:00
|
|
|
const expected = 'something&another=here';
|
|
|
|
const actual = stringifyQueryParams({
|
|
|
|
something: null,
|
|
|
|
another: 'here',
|
|
|
|
});
|
|
|
|
assert.equal(actual, expected);
|
|
|
|
});
|
|
|
|
});
|