github.com/kjdelisle/consul@v1.4.5/ui-v2/tests/integration/adapters/kv/url-test.js (about)

     1  import { module, test } from 'qunit';
     2  import { setupTest } from 'ember-qunit';
     3  import makeAttrable from 'consul-ui/utils/makeAttrable';
     4  module('Integration | Adapter | kv | url', function(hooks) {
     5    setupTest(hooks);
     6    const dc = 'dc-1';
     7    const id = 'key-name/here';
     8    test('slugFromURL returns the correct slug', function(assert) {
     9      const adapter = this.owner.lookup('adapter:kv');
    10      const url = `/v1/kv/${id}?dc=${dc}`;
    11      const expected = id;
    12      const actual = adapter.slugFromURL(new URL(url, 'http://localhost'));
    13      assert.equal(actual, expected);
    14    });
    15    test('urlForQuery returns the correct url', function(assert) {
    16      const adapter = this.owner.lookup('adapter:kv');
    17      const expected = `/v1/kv/${id}?keys&dc=${dc}`;
    18      const actual = adapter.urlForQuery({
    19        dc: dc,
    20        id: id,
    21      });
    22      assert.equal(actual, expected);
    23    });
    24    test('urlForQueryRecord returns the correct url', function(assert) {
    25      const adapter = this.owner.lookup('adapter:kv');
    26      const expected = `/v1/kv/${id}?dc=${dc}`;
    27      const actual = adapter.urlForQueryRecord({
    28        dc: dc,
    29        id: id,
    30      });
    31      assert.equal(actual, expected);
    32    });
    33    test("urlForQueryRecord throws if you don't specify an id", function(assert) {
    34      const adapter = this.owner.lookup('adapter:kv');
    35      assert.throws(function() {
    36        adapter.urlForQueryRecord({
    37          dc: dc,
    38        });
    39      });
    40    });
    41    test("urlForQuery throws if you don't specify an id", function(assert) {
    42      const adapter = this.owner.lookup('adapter:kv');
    43      assert.throws(function() {
    44        adapter.urlForQuery({
    45          dc: dc,
    46        });
    47      });
    48    });
    49    test('urlForCreateRecord returns the correct url', function(assert) {
    50      const adapter = this.owner.lookup('adapter:kv');
    51      const expected = `/v1/kv/${id}?dc=${dc}`;
    52      const actual = adapter.urlForCreateRecord(
    53        'kv',
    54        makeAttrable({
    55          Datacenter: dc,
    56          Key: id,
    57        })
    58      );
    59      assert.equal(actual, expected);
    60    });
    61    test('urlForUpdateRecord returns the correct url', function(assert) {
    62      const adapter = this.owner.lookup('adapter:kv');
    63      const expected = `/v1/kv/${id}?dc=${dc}`;
    64      const actual = adapter.urlForUpdateRecord(
    65        id,
    66        'kv',
    67        makeAttrable({
    68          Datacenter: dc,
    69          Key: id,
    70        })
    71      );
    72      assert.equal(actual, expected);
    73    });
    74    test('urlForDeleteRecord returns the correct url for non-folders', function(assert) {
    75      const adapter = this.owner.lookup('adapter:kv');
    76      const expected = `/v1/kv/${id}?dc=${dc}`;
    77      const actual = adapter.urlForDeleteRecord(
    78        id,
    79        'kv',
    80        makeAttrable({
    81          Datacenter: dc,
    82          Key: id,
    83        })
    84      );
    85      assert.equal(actual, expected);
    86    });
    87    test('urlForDeleteRecord returns the correct url for folders', function(assert) {
    88      const adapter = this.owner.lookup('adapter:kv');
    89      const folder = `${id}/`;
    90      const expected = `/v1/kv/${folder}?dc=${dc}&recurse`;
    91      const actual = adapter.urlForDeleteRecord(
    92        folder,
    93        'kv',
    94        makeAttrable({
    95          Datacenter: dc,
    96          Key: folder,
    97        })
    98      );
    99      assert.equal(actual, expected);
   100    });
   101  });