open-consul/ui-v2/tests/unit/utils/http/create-query-params-test.js
John Cowen f50438e76f
ui: Remove jQuery from the production build (#8088)
* ui: Split up client/http and replace $.ajax

This splits the client/http service more in the following ways:

1. Connections are now split out into its own service
2. The transport is now split out into its own service that returns a
listener based http transport
3. Various string parsing/stringifying functions are now split out into
utils

* Remove jQuery from our production build

* Move the coverage serving to the server.js file

* Self review amends

* Add X-Requested-With header

* Move some files around, externalize some functions

* Move connection tracking to use native Set

* Ensure HTTP parsing doesn't encode headers

In the future this will change to deal with all HTTP parsing in one
place, hence the commented out METHOD_PARSING etc

* Start to fix up integration tests to use requestParams
2020-07-07 19:58:46 +01:00

44 lines
1.4 KiB
JavaScript

import createQueryParams from 'consul-ui/utils/http/create-query-params';
import { module, test } from 'qunit';
module('Unit | Utility | http/create-query-params', function() {
const stringifyQueryParams = createQueryParams(str => str);
test('it turns objects into query params formatted strings', function(assert) {
const expected = 'something=here&another=variable';
const actual = stringifyQueryParams({
something: 'here',
another: 'variable',
});
assert.equal(actual, expected);
});
test('it ignores undefined properties', function(assert) {
const expected = 'something=here';
const actual = stringifyQueryParams({
something: 'here',
another: undefined,
});
assert.equal(actual, expected);
});
test('it stringifies nested objects', function(assert) {
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);
});
test('it only adds the property if the value is null', function(assert) {
const expected = 'something&another=here';
const actual = stringifyQueryParams({
something: null,
another: 'here',
});
assert.equal(actual, expected);
});
});