github.com/sl1pm4t/consul@v1.4.5-0.20190325224627-74c31c540f9c/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 });