mirror of
https://github.com/status-im/consul.git
synced 2025-01-12 14:55:02 +00:00
b5b9c8d953
* 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
44 lines
1.9 KiB
JavaScript
44 lines
1.9 KiB
JavaScript
import { module, skip } from 'qunit';
|
|
import test from 'ember-sinon-qunit/test-support/test';
|
|
import createURL from 'consul-ui/utils/http/create-url';
|
|
import createQueryParams from 'consul-ui/utils/http/create-query-params';
|
|
|
|
module('Unit | Utils | http/create-url', function() {
|
|
skip("it isn't isolated enough, mock encodeURIComponent");
|
|
const url = createURL(encodeURIComponent, createQueryParams(encodeURIComponent));
|
|
test('it passes the values to encode', function(assert) {
|
|
const actual = url`/v1/url?${{ query: 'to encode', 'key with': ' spaces ' }}`;
|
|
const expected = '/v1/url?query=to%20encode&key%20with=%20spaces%20';
|
|
assert.equal(actual, expected);
|
|
});
|
|
test('it adds a query string key without an `=` if the query value is `null`', function(assert) {
|
|
const actual = url`/v1/url?${{ 'key with space': null }}`;
|
|
const expected = '/v1/url?key%20with%20space';
|
|
assert.equal(actual, expected);
|
|
});
|
|
test('it returns a string when passing an array', function(assert) {
|
|
const actual = url`/v1/url/${['raw values', 'to', 'encode']}`;
|
|
const expected = '/v1/url/raw%20values/to/encode';
|
|
assert.equal(actual, expected);
|
|
});
|
|
test('it returns a string when passing a string', function(assert) {
|
|
const actual = url`/v1/url/${'raw values to encode'}`;
|
|
const expected = '/v1/url/raw%20values%20to%20encode';
|
|
assert.equal(actual, expected);
|
|
});
|
|
test("it doesn't add a query string prop/value is the value is undefined", function(assert) {
|
|
const actual = url`/v1/url?${{ key: undefined }}`;
|
|
const expected = '/v1/url?';
|
|
assert.equal(actual, expected);
|
|
});
|
|
test("it doesn't encode headers", function(assert) {
|
|
const actual = url`
|
|
/v1/url/${'raw values to encode'}
|
|
Header: %value
|
|
`;
|
|
const expected = `/v1/url/raw%20values%20to%20encode
|
|
Header: %value`;
|
|
assert.equal(actual, expected);
|
|
});
|
|
});
|