John Cowen 6589cbbd0d
ui: Move to Workspaced Structure (#8994)
* ui: Add the most basic workspace root in /ui

* We already have a LICENSE file in the repository root

* Change directory path in build scripts ui-v2 -> ui

* Make yarn install flags configurable from elsewhere

* Minimal workspace root makefile

* Call the new docker specific target

* Update yarn in the docker build image

* Reconfigure the netlify target and move to the higher makefile

* Move ui-v2 -> ui/packages/consul-ui

* Change repo root to refleect new folder structure

* Temporarily don't hoist consul-api-double

* Fixup CI configuration

* Fixup lint errors

* Fixup Netlify target
2020-10-21 15:23:16 +01:00

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);
});
});