open-vault/ui/tests/unit/adapters/secret-v2-version-test.js

88 lines
2.3 KiB
JavaScript
Raw Normal View History

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 {
rollbackAttributes() {},
2018-10-17 04:23:29 +00:00
reload() {},
};
},
};
[
[
'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'],
'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'],
'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'],
'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) {
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);
}
});
});
});