2018-10-06 03:02:23 +00:00
|
|
|
import { module, test } from 'qunit';
|
|
|
|
import { setupTest } from 'ember-qunit';
|
|
|
|
import apiStub from 'vault/tests/helpers/noop-all-api-requests';
|
|
|
|
|
|
|
|
module('Unit | Adapter | secret-v2-version', function(hooks) {
|
|
|
|
setupTest(hooks);
|
|
|
|
|
|
|
|
hooks.beforeEach(function() {
|
|
|
|
this.server = apiStub();
|
|
|
|
});
|
|
|
|
|
|
|
|
hooks.afterEach(function() {
|
|
|
|
this.server.shutdown();
|
|
|
|
});
|
|
|
|
|
2018-10-17 04:23:29 +00:00
|
|
|
let fakeStore = {
|
|
|
|
peekRecord() {
|
|
|
|
return {
|
|
|
|
reload() {},
|
|
|
|
};
|
|
|
|
},
|
|
|
|
};
|
2018-10-06 03:02:23 +00:00
|
|
|
[
|
|
|
|
[
|
|
|
|
'findRecord with version',
|
|
|
|
'findRecord',
|
|
|
|
[null, {}, JSON.stringify(['secret', 'foo', '2']), {}],
|
|
|
|
'GET',
|
|
|
|
'/v1/secret/data/foo?version=2',
|
|
|
|
],
|
|
|
|
[
|
2018-10-17 04:23:29 +00:00
|
|
|
'v2DeleteOperation with delete',
|
|
|
|
'v2DeleteOperation',
|
|
|
|
[fakeStore, JSON.stringify(['secret', 'foo', '2']), 'delete'],
|
2018-10-06 03:02:23 +00:00
|
|
|
'POST',
|
|
|
|
'/v1/secret/delete/foo',
|
|
|
|
{ versions: ['2'] },
|
|
|
|
],
|
|
|
|
[
|
2018-10-17 04:23:29 +00:00
|
|
|
'v2DeleteOperation with destroy',
|
|
|
|
'v2DeleteOperation',
|
|
|
|
[fakeStore, JSON.stringify(['secret', 'foo', '2']), 'destroy'],
|
2018-10-06 03:02:23 +00:00
|
|
|
'POST',
|
|
|
|
'/v1/secret/destroy/foo',
|
|
|
|
{ versions: ['2'] },
|
|
|
|
],
|
|
|
|
[
|
2018-10-17 04:23:29 +00:00
|
|
|
'v2DeleteOperation with destroy',
|
|
|
|
'v2DeleteOperation',
|
|
|
|
[fakeStore, JSON.stringify(['secret', 'foo', '2']), 'undelete'],
|
2018-10-06 03:02:23 +00:00
|
|
|
'POST',
|
|
|
|
'/v1/secret/undelete/foo',
|
|
|
|
{ versions: ['2'] },
|
|
|
|
],
|
|
|
|
[
|
|
|
|
'updateRecord makes calls to correct url',
|
|
|
|
'updateRecord',
|
|
|
|
[
|
|
|
|
{
|
|
|
|
serializerFor() {
|
|
|
|
return { serializeIntoHash() {} };
|
|
|
|
},
|
|
|
|
},
|
|
|
|
{},
|
|
|
|
{ id: JSON.stringify(['secret', 'foo', '2']) },
|
|
|
|
],
|
|
|
|
'PUT',
|
|
|
|
'/v1/secret/data/foo',
|
|
|
|
],
|
|
|
|
].forEach(([testName, adapterMethod, args, expectedHttpVerb, expectedURL, exptectedRequestBody]) => {
|
2018-10-17 04:23:29 +00:00
|
|
|
test(`${testName}`, function(assert) {
|
2018-10-06 03:02:23 +00:00
|
|
|
let adapter = this.owner.lookup('adapter:secret-v2-version');
|
|
|
|
adapter[adapterMethod](...args);
|
|
|
|
let { url, method, requestBody } = this.server.handledRequests[0];
|
|
|
|
assert.equal(url, expectedURL, `${adapterMethod} calls the correct url: ${expectedURL}`);
|
|
|
|
assert.equal(
|
|
|
|
method,
|
|
|
|
expectedHttpVerb,
|
|
|
|
`${adapterMethod} uses the correct http verb: ${expectedHttpVerb}`
|
|
|
|
);
|
|
|
|
if (exptectedRequestBody) {
|
|
|
|
assert.deepEqual(JSON.parse(requestBody), exptectedRequestBody);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
});
|
|
|
|
});
|