Icu 5232 credential mirage mocks (#1204)
* feat: 🎸 Add mirage mocks for credential ✅ Closes: ICU-5232 * chore: 🤖 Update Credential Store factory to handle credentials ✅ Closes: ICU-5232 * feat: 🎸 Added mirage mocks for credential ✅ Closes: ICU-5232 Co-authored-by: Cameron Perera <cameron.perera@hashicorp.com>
This commit is contained in:
1 parent
379609217b
commit
27a676774c
5 files changed
+87
-9
No files matched your search
@@ -14,10 +14,18 @@ export default factory.extend({
|
||||
'update',
|
||||
'delete',
|
||||
],
|
||||
authorized_collection_actions: () => {
|
||||
return {
|
||||
'credential-libraries': ['create', 'list'],
|
||||
};
|
||||
authorized_collection_actions() {
|
||||
switch (this.type) {
|
||||
case 'vault':
|
||||
return {
|
||||
'credential-libraries': ['create', 'list'],
|
||||
};
|
||||
case 'static':
|
||||
default:
|
||||
return {
|
||||
'credentials': ['create', 'list'],
|
||||
};
|
||||
}
|
||||
},
|
||||
id: () => generateId('cs_'),
|
||||
type: (i) => types[i % types.length],
|
||||
@@ -40,11 +48,21 @@ export default factory.extend({
|
||||
|
||||
withAssociations: trait({
|
||||
afterCreate(credentialStore, server) {
|
||||
const { scope } = credentialStore;
|
||||
server.createList('credential-library', 2, {
|
||||
scope,
|
||||
credentialStore,
|
||||
});
|
||||
const { scope, type } = credentialStore;
|
||||
switch (type) {
|
||||
case 'vault':
|
||||
server.createList('credential-library', 2, {
|
||||
scope,
|
||||
credentialStore,
|
||||
});
|
||||
break;
|
||||
case 'static':
|
||||
default:
|
||||
server.createList('credential', 2, {
|
||||
scope,
|
||||
credentialStore,
|
||||
});
|
||||
}
|
||||
},
|
||||
}),
|
||||
});
|
||||
@@ -0,0 +1,21 @@
|
||||
import factory from '../generated/factories/credential';
|
||||
import { random } from 'faker';
|
||||
import permissions from '../helpers/permissions';
|
||||
import generatedId from '../helpers/id';
|
||||
|
||||
export default factory.extend({
|
||||
id: () => generatedId('cred_'),
|
||||
type: 'username_password',
|
||||
authorized_actions: () =>
|
||||
permissions.authorizedActionsFor('credential') || [
|
||||
'no-op',
|
||||
'read',
|
||||
'update',
|
||||
'delete',
|
||||
],
|
||||
attributes() {
|
||||
return {
|
||||
username: random.word(),
|
||||
};
|
||||
},
|
||||
});
|
||||
@@ -0,0 +1,13 @@
|
||||
import { Factory } from 'ember-cli-mirage';
|
||||
import { random, date, datatype } from 'faker';
|
||||
|
||||
/**
|
||||
* GeneratedCredentialModelFactory
|
||||
*/
|
||||
export default Factory.extend({
|
||||
name: () => random.words(),
|
||||
description: () => random.words(),
|
||||
created_time: () => date.recent(),
|
||||
updated_time: () => date.recent(),
|
||||
version: () => datatype.number(),
|
||||
});
|
||||
@@ -0,0 +1,7 @@
|
||||
import { belongsTo } from 'ember-cli-mirage';
|
||||
import Model from './base';
|
||||
|
||||
export default Model.extend({
|
||||
scope: belongsTo(),
|
||||
credentialStore: belongsTo(),
|
||||
});
|
||||
@@ -0,0 +1,19 @@
|
||||
import ApplicationSerializer from './application';
|
||||
|
||||
export default ApplicationSerializer.extend({
|
||||
modelName: 'credential',
|
||||
|
||||
_hashForModel(model) {
|
||||
const json = ApplicationSerializer.prototype._hashForModel.apply(
|
||||
this,
|
||||
arguments
|
||||
);
|
||||
json.credential_store_id = model.credentialStoreId;
|
||||
|
||||
// in a real API, the following field is set-only and returned
|
||||
// as an associated HMAC field
|
||||
delete json.attributes?.password_hmac;
|
||||
|
||||
return json;
|
||||
},
|
||||
});
|
||||
Reference in new issue
Block a user