vault/ui/tests/unit/adapters/transform-test.js
claire bontempo cbe09c76a2
UI: add deletion_allowed to transform, add tokenization transform type (#25436)
* update adapter to accept :type in url

* update model attributes to include deletion_allowed and tokenization type

* update max_ttl text

* update adapter test

* add changelog;

* update comment
2024-02-16 09:07:52 -08:00

96 lines
3.4 KiB
JavaScript

/**
* Copyright (c) HashiCorp, Inc.
* SPDX-License-Identifier: BUSL-1.1
*/
import { module, test } from 'qunit';
import { setupTest } from 'ember-qunit';
import { setupMirage } from 'ember-cli-mirage/test-support';
const TRANSFORM_TYPES = ['fpe', 'masking', 'tokenization'];
module('Unit | Adapter | transform', function (hooks) {
setupTest(hooks);
setupMirage(hooks);
hooks.beforeEach(function () {
this.store = this.owner.lookup('service:store');
this.backend = 'my-transform-engine';
this.name = 'my-transform';
});
hooks.afterEach(function () {
this.store.unloadAll('transform');
});
test('it should make request to correct endpoint when querying all records', async function (assert) {
assert.expect(2);
this.server.get(`${this.backend}/transformation`, (schema, req) => {
assert.ok(true, 'GET request made to correct endpoint when querying record');
assert.propEqual(req.queryParams, { list: 'true' }, 'query params include list: true');
return { data: { key_info: {}, keys: [] } };
});
await this.store.query('transform', { backend: this.backend });
});
test('it should make request to correct endpoint when querying a record', async function (assert) {
assert.expect(1);
this.server.get(`${this.backend}/transformation/${this.name}`, () => {
assert.ok(true, 'GET request made to correct endpoint when querying record');
return { data: { backend: this.backend, name: this.name } };
});
await this.store.queryRecord('transform', { backend: this.backend, id: this.name });
});
test('it should make request to correct endpoint when creating new record', async function (assert) {
assert.expect(3);
for (const type of TRANSFORM_TYPES) {
const name = `transform-${type}-test`;
this.server.post(`${this.backend}/transformations/${type}/${name}`, () => {
assert.ok(true, `POST request made to transformations/${type}/:name creating a record`);
return { data: { backend: this.backend, name, type } };
});
const record = this.store.createRecord('transform', { backend: this.backend, name, type });
await record.save();
}
});
test('it should make request to correct endpoint when updating record', async function (assert) {
assert.expect(3);
for (const type of TRANSFORM_TYPES) {
const name = `transform-${type}-test`;
this.server.post(`${this.backend}/transformations/${type}/${name}`, () => {
assert.ok(true, `POST request made to transformations/${type}/:name endpoint`);
});
this.store.pushPayload('transform', {
modelName: 'transform',
backend: this.backend,
id: name,
type,
name,
});
const record = this.store.peekRecord('transform', name);
await record.save();
}
});
test('it should make request to correct endpoint when deleting record', async function (assert) {
assert.expect(3);
for (const type of TRANSFORM_TYPES) {
const name = `transform-${type}-test`;
this.server.delete(`${this.backend}/transformation/${name}`, () => {
assert.ok(true, `type: ${type} - DELETE request to transformation/:name endpoint`);
});
this.store.pushPayload('transform', {
modelName: 'transform',
backend: this.backend,
id: name,
type,
name,
});
const record = this.store.peekRecord('transform', name);
await record.destroyRecord();
}
});
});