From 1fb41665e55d62573bcd63a560b6a2bc0b035626 Mon Sep 17 00:00:00 2001 From: Susmitha Girumala Date: Mon, 12 Jul 2021 16:03:06 -0400 Subject: [PATCH] feat: Mock credential library in api addon --- addons/api/mirage/config.js | 14 ++++++++++++++ addons/api/mirage/factories/credential-library.js | 14 ++++++++++++++ addons/api/mirage/factories/credential-store.js | 11 +++++++++++ .../generated/factories/credential-library.js | 12 ++++++++++++ .../mirage/generated/factories/credential-store.js | 2 +- addons/api/mirage/models/credential-library.js | 6 ++++++ addons/api/mirage/scenarios/default.js | 2 +- .../api/mirage/serializers/credential-library.js | 14 ++++++++++++++ 8 files changed, 73 insertions(+), 2 deletions(-) create mode 100644 addons/api/mirage/factories/credential-library.js create mode 100644 addons/api/mirage/generated/factories/credential-library.js create mode 100644 addons/api/mirage/models/credential-library.js create mode 100644 addons/api/mirage/serializers/credential-library.js diff --git a/addons/api/mirage/config.js b/addons/api/mirage/config.js index 1b495c0b2..6e598b47d 100644 --- a/addons/api/mirage/config.js +++ b/addons/api/mirage/config.js @@ -464,6 +464,20 @@ export default function () { credentialStores.where({ scopeId }) ); + // credential-libraries + + this.get( + '/credential-libraries', + ( + { credentialLibraries }, + { queryParams: { credential_store_id: credentialStoreId } } + ) => credentialLibraries.where({ credentialStoreId }) + ); + this.get('/credential-libraries/:id'); + this.post('/credential-libraries/:id'); + this.del('/credential-libraries/:id'); + this.patch('/credential-libraries/:id'); + /* Uncomment the following line and the Response import above * Then change the response code to simulate error responses. * this.get('/scopes', () => new Response(505)); diff --git a/addons/api/mirage/factories/credential-library.js b/addons/api/mirage/factories/credential-library.js new file mode 100644 index 000000000..f1127d5ef --- /dev/null +++ b/addons/api/mirage/factories/credential-library.js @@ -0,0 +1,14 @@ +import factory from '../generated/factories/credential-library'; +import { random, system } from 'faker'; + +export default factory.extend({ + id: (i) => `credential-library-id-${i}`, + + attributes() { + return { + http_method: 'GET', + http_request_body: random.word(), + path: system.directoryPath(), + }; + }, +}); diff --git a/addons/api/mirage/factories/credential-store.js b/addons/api/mirage/factories/credential-store.js index e143b5906..d1b037c7d 100644 --- a/addons/api/mirage/factories/credential-store.js +++ b/addons/api/mirage/factories/credential-store.js @@ -1,5 +1,6 @@ import factory from '../generated/factories/credential-store'; import { random, internet, datatype } from 'faker'; +import { trait } from 'ember-cli-mirage'; const types = ['vault']; @@ -22,4 +23,14 @@ export default factory.extend({ }; } }, + + withAssociations: trait({ + afterCreate(credentialStore, server) { + const { scope } = credentialStore; + server.createList('credential-library', 2, { + scope, + credentialStore, + }); + }, + }), }); diff --git a/addons/api/mirage/generated/factories/credential-library.js b/addons/api/mirage/generated/factories/credential-library.js new file mode 100644 index 000000000..b2e001493 --- /dev/null +++ b/addons/api/mirage/generated/factories/credential-library.js @@ -0,0 +1,12 @@ +import { Factory } from 'ember-cli-mirage'; +import { random, date } from 'faker'; + +/** + * GeneratedCredentialLibraryModelFactory + */ +export default Factory.extend({ + name: () => random.words(), + description: () => random.words(), + created_time: () => date.recent(), + updated_time: () => date.recent(), +}); diff --git a/addons/api/mirage/generated/factories/credential-store.js b/addons/api/mirage/generated/factories/credential-store.js index 1fb24e39e..2b8a86dd2 100644 --- a/addons/api/mirage/generated/factories/credential-store.js +++ b/addons/api/mirage/generated/factories/credential-store.js @@ -2,7 +2,7 @@ import { Factory } from 'ember-cli-mirage'; import { random, date } from 'faker'; /** - * GeneratedAuthMethodModelFactory + * GeneratedCredentialStoreModelFactory */ export default Factory.extend({ name: () => random.words(), diff --git a/addons/api/mirage/models/credential-library.js b/addons/api/mirage/models/credential-library.js new file mode 100644 index 000000000..921a63182 --- /dev/null +++ b/addons/api/mirage/models/credential-library.js @@ -0,0 +1,6 @@ +import { Model, belongsTo } from 'ember-cli-mirage'; + +export default Model.extend({ + scope: belongsTo(), + credentialStore: belongsTo(), +}); diff --git a/addons/api/mirage/scenarios/default.js b/addons/api/mirage/scenarios/default.js index 12adb6c5d..fc5931908 100644 --- a/addons/api/mirage/scenarios/default.js +++ b/addons/api/mirage/scenarios/default.js @@ -49,6 +49,6 @@ export default function (server) { server.createList('host-catalog', 2, { scope }, 'withChildren'); server.createList('target', 2, { scope }, 'withRandomHostSets'); server.createList('session', 4, { scope }, 'withAssociations'); - server.createList('credential-store', 3, { scope }); + server.createList('credential-store', 3, { scope }, 'withAssociations'); }); } diff --git a/addons/api/mirage/serializers/credential-library.js b/addons/api/mirage/serializers/credential-library.js new file mode 100644 index 000000000..fd65fc743 --- /dev/null +++ b/addons/api/mirage/serializers/credential-library.js @@ -0,0 +1,14 @@ +import ApplicationSerializer from './application'; + +export default ApplicationSerializer.extend({ + modelName: 'credential-library', + + _hashForModel(model) { + const json = ApplicationSerializer.prototype._hashForModel.apply( + this, + arguments + ); + json.credential_store_id = model.credentialStoreId; + return json; + }, +});