consul/ui-v2/tests/unit/utils/createURL-test.js
John Cowen f1246801b1
ui: Some trivial test additions, support env var passing of port numbers (#4728)
1. Unskip some trivial tests that were being tested higher up
2. Istanbul ignore some code for coverage.
  1. Things that I didn't write and need to 100% follow
  2. The source code checking test that has Istanbul code injected into
  it
3. Add a few simple test cases
4. Support passing port numbers through to `ember serve` and `ember
test` for use cases that would benefit from being able to configure the
ports things are served over but still use `yarn run` thus reusing the
`yarn run` config in `package.json`
2018-10-26 17:50:43 +01:00

53 lines
1.5 KiB
JavaScript

import { module, skip } from 'ember-qunit';
import test from 'ember-sinon-qunit/test-support/test';
import createURL from 'consul-ui/utils/createURL';
module('Unit | Utils | createURL', {});
skip("it isn't isolated enough, mock encodeURIComponent");
test('it passes the values to encode', function(assert) {
[
{
args: [
['/v1/url'],
['raw', 'values', 'to', 'encode'],
{
query: 'to encode',
['key with']: ' spaces ',
},
],
expected: '/v1/url/raw/values/to/encode?query=to%20encode&key%20with=%20spaces%20',
},
].forEach(function(item) {
const actual = createURL(...item.args);
assert.equal(actual, item.expected);
});
});
test('it adds a query string key without an `=` if the query value is `null`', function(assert) {
[
{
args: [
['/v1/url'],
['raw', 'values', 'to', 'encode'],
{
query: null,
},
],
expected: '/v1/url/raw/values/to/encode?query',
},
].forEach(function(item) {
const actual = createURL(...item.args);
assert.equal(actual, item.expected);
});
});
test("it returns a string with no query string if you don't pass a query string object", function(assert) {
[
{
args: [['/v1/url'], ['raw', 'values', 'to', 'encode']],
expected: '/v1/url/raw/values/to/encode',
},
].forEach(function(item) {
const actual = createURL(...item.args);
assert.equal(actual, item.expected);
});
});