From 202a22a17099b2063a5fcde5a571fe839ac24d20 Mon Sep 17 00:00:00 2001 From: Carlos Alcaide Corvo Date: Thu, 4 Nov 2021 12:24:54 -0700 Subject: [PATCH] =?UTF-8?q?feat:=20=F0=9F=8E=B8=20Refactor=20managed-group?= =?UTF-8?q?s=20mirage=20serializer=20and=20model?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Refactor managed-groups mirage serializer and model. Accomodate factory and admin UI acceptance test. --- addons/api/mirage/factories/auth-method.js | 6 +++--- addons/api/mirage/factories/managed-groups.js | 12 ------------ addons/api/mirage/models/managed-groups.js | 2 +- addons/api/mirage/scenarios/default.js | 2 -- addons/api/mirage/serializers/managed-groups.js | 11 ++++++++++- ui/admin/tests/acceptance/users/accounts-test.js | 2 +- 6 files changed, 15 insertions(+), 20 deletions(-) diff --git a/addons/api/mirage/factories/auth-method.js b/addons/api/mirage/factories/auth-method.js index daf57061b..051ea096f 100644 --- a/addons/api/mirage/factories/auth-method.js +++ b/addons/api/mirage/factories/auth-method.js @@ -28,13 +28,13 @@ export default factory.extend({ withAccountsAndUsersAndManagedGroups: trait({ afterCreate(authMethod, server) { const { scope, type } = authMethod; - console.log('This is the test'); + server.createList('user', 5, { scope }).map((user) => { const { id } = server.create('account', { scope, type, authMethod }); user.update({ accountIds: [id] }); }); - // We need to get the authmethod ID - // server.createList('managed-group', 2, { scope, authMethodId: id }) + + server.createList('managed-group', 2, { scope, authMethod }); }, }), }); diff --git a/addons/api/mirage/factories/managed-groups.js b/addons/api/mirage/factories/managed-groups.js index 9cbb76b54..098957428 100644 --- a/addons/api/mirage/factories/managed-groups.js +++ b/addons/api/mirage/factories/managed-groups.js @@ -1,6 +1,5 @@ import factory from '../generated/factories/managed-groups'; import permissions from '../helpers/permissions'; -import { trait } from 'ember-cli-mirage'; export default factory.extend({ id: (i) => `managed-groups-id-${i}`, @@ -18,15 +17,4 @@ export default factory.extend({ accounts: ['create', 'list'], }; }, - /** - * Generates some users for the same scope and assigns them to the group - * as members. - */ - withMembers: trait({ - afterCreate(group, server) { - const scope = group.scope; - const members = server.createList('user', 2, { scope }); - group.update({ members }); - }, - }), }); diff --git a/addons/api/mirage/models/managed-groups.js b/addons/api/mirage/models/managed-groups.js index 689991383..8f39ad219 100644 --- a/addons/api/mirage/models/managed-groups.js +++ b/addons/api/mirage/models/managed-groups.js @@ -2,5 +2,5 @@ import { Model, belongsTo } from 'ember-cli-mirage'; export default Model.extend({ scope: belongsTo(), - authMethodId: belongsTo(), + authMethod: belongsTo(), }); diff --git a/addons/api/mirage/scenarios/default.js b/addons/api/mirage/scenarios/default.js index 9ede6cb26..9291f8a3e 100644 --- a/addons/api/mirage/scenarios/default.js +++ b/addons/api/mirage/scenarios/default.js @@ -44,8 +44,6 @@ export default function (server) { server.createList('role', 1, { scope: globalScope }, 'withPrincipals'); server.createList('role', 5, { scope: orgScope }, 'withPrincipals'); - // server.createList('managed-group', 2, { scope: globalScope }, 'withMembers'); - // Other resources server.schema.scopes.where({ type: 'project' }).models.forEach((scope) => { server.createList('host-catalog', 2, { scope }, 'withChildren'); diff --git a/addons/api/mirage/serializers/managed-groups.js b/addons/api/mirage/serializers/managed-groups.js index a35598d1a..602e6938e 100644 --- a/addons/api/mirage/serializers/managed-groups.js +++ b/addons/api/mirage/serializers/managed-groups.js @@ -1,5 +1,14 @@ import ApplicationSerializer from './application'; export default ApplicationSerializer.extend({ - modelName: 'managed-groups', + modelName: 'managed-group', + + _hashForModel(model) { + const json = ApplicationSerializer.prototype._hashForModel.apply( + this, + arguments + ); + json.auth_method_id = model.authMethodId; + return json; + }, }); diff --git a/ui/admin/tests/acceptance/users/accounts-test.js b/ui/admin/tests/acceptance/users/accounts-test.js index fe556f84a..afae1e609 100644 --- a/ui/admin/tests/acceptance/users/accounts-test.js +++ b/ui/admin/tests/acceptance/users/accounts-test.js @@ -43,7 +43,7 @@ module('Acceptance | users | accounts', function (hooks) { { scope: instances.scopes.org, }, - 'withAccountsAndUsers' + 'withAccountsAndUsersAndManagedGroups' ); instances.user = this.server.schema.users.all().models[0]; accountsCount = instances.user.accountIds.length;