From 2b58e82d6d11a2f9fa97c0cca44b9d046747054a Mon Sep 17 00:00:00 2001 From: Zhihe Li Date: Thu, 28 Jul 2022 14:57:53 -0400 Subject: [PATCH] =?UTF-8?q?feat:=20=F0=9F=8E=B8=20Add=20worker=20mirage=20?= =?UTF-8?q?mocks=20(#1217)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ✅ Closes: ICU-5240 --- addons/api/mirage/config.js | 11 ++++++++ addons/api/mirage/factories/worker.js | 25 +++++++++++++++++++ .../api/mirage/generated/factories/worker.js | 17 +++++++++++++ addons/api/mirage/models/worker.js | 6 +++++ addons/api/mirage/serializers/worker.js | 5 ++++ 5 files changed, 64 insertions(+) create mode 100644 addons/api/mirage/factories/worker.js create mode 100644 addons/api/mirage/generated/factories/worker.js create mode 100644 addons/api/mirage/models/worker.js create mode 100644 addons/api/mirage/serializers/worker.js diff --git a/addons/api/mirage/config.js b/addons/api/mirage/config.js index 9b4c92e37..b8d71212d 100644 --- a/addons/api/mirage/config.js +++ b/addons/api/mirage/config.js @@ -622,6 +622,17 @@ export default function () { this.patch('/managed-groups/:id'); this.del('/managed-groups/:id'); + // worker + + this.get( + '/workers', + ({ workers }, { queryParams: { scope_id: scopeId } }) => { + return workers.where({ scopeId }); + } + ); + this.get('/worker/:id'); + this.patch('/worker/: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/worker.js b/addons/api/mirage/factories/worker.js new file mode 100644 index 000000000..b54f1155d --- /dev/null +++ b/addons/api/mirage/factories/worker.js @@ -0,0 +1,25 @@ +import factory from '../generated/factories/user'; +import permissions from '../helpers/permissions'; +import generateId from '../helpers/id'; +import { random } from 'faker'; + +const types = ['pki', 'kms']; +const tags = ['dev', random.word(), random.word()]; + +export default factory.extend({ + id: () => generateId('w_'), + authorized_actions: () => + permissions.authorizedActionsFor('worker') || [ + 'no-op', + 'read', + 'update', + 'delete', + ], + type: (i) => types[i % types.length], + canonical_tags: () => ({ + type: tags, + }), + config_tags: () => ({ + type: tags, + }), +}); diff --git a/addons/api/mirage/generated/factories/worker.js b/addons/api/mirage/generated/factories/worker.js new file mode 100644 index 000000000..d9b3cff54 --- /dev/null +++ b/addons/api/mirage/generated/factories/worker.js @@ -0,0 +1,17 @@ +import { Factory } from 'ember-cli-mirage'; +import { random, date, datatype, internet } from 'faker'; + +/** + * GeneratedUserModelFactory + * User contains all fields related to a User resource + */ +export default Factory.extend({ + name: () => random.words(), + description: () => random.words(), + created_time: () => date.recent(), + updated_time: () => date.recent(), + version: () => datatype.number(), + address: () => `${internet.ipv6()}${internet.port()}`, + last_status_time: () => date.recent(), + active_connection_count: () => datatype.number(), +}); diff --git a/addons/api/mirage/models/worker.js b/addons/api/mirage/models/worker.js new file mode 100644 index 000000000..0cc6532df --- /dev/null +++ b/addons/api/mirage/models/worker.js @@ -0,0 +1,6 @@ +import { belongsTo } from 'ember-cli-mirage'; +import Model from './base'; + +export default Model.extend({ + scope: belongsTo(), +}); diff --git a/addons/api/mirage/serializers/worker.js b/addons/api/mirage/serializers/worker.js new file mode 100644 index 000000000..a359a2386 --- /dev/null +++ b/addons/api/mirage/serializers/worker.js @@ -0,0 +1,5 @@ +import ApplicationSerializer from './application'; + +export default ApplicationSerializer.extend({ + modelName: 'worker', +});