diff --git a/addons/api/mirage/factories/target.js b/addons/api/mirage/factories/target.js index e664a1532..8a4a93cc6 100644 --- a/addons/api/mirage/factories/target.js +++ b/addons/api/mirage/factories/target.js @@ -26,6 +26,8 @@ export default factory.extend({ 'remove-host-sources', 'add-credential-sources', 'remove-credential-sources', + 'set-storage-bucket', + 'remove-storage-bucket', ], id: () => generateId('t_'), @@ -66,6 +68,14 @@ export default factory.extend({ .where((credential) => credential.scopeId === target.scope.id) .models.filter(() => randomBoolean()) .map((cred) => cred.id); + + const randomlySelectedStorageBucket = faker.helpers.arrayElement( + server.schema.storageBuckets.all().models + ); + if (randomlySelectedStorageBucket && randomBoolean()) { + target.update({ storage_bucket_id: randomlySelectedStorageBucket.id }); + } + target.update({ hostSets: randomlySelectedHostSets, brokeredCredentialSourceIds: [ diff --git a/addons/api/mirage/route-handlers/target.js b/addons/api/mirage/route-handlers/target.js index b26c59b7e..5d7897ee2 100644 --- a/addons/api/mirage/route-handlers/target.js +++ b/addons/api/mirage/route-handlers/target.js @@ -100,5 +100,14 @@ export function targetHandler({ targets }, { params: { idMethod } }) { removedCredentialSources; } } + + if (method === 'add-storage-bucket') { + updatedAttrs.storage_bucket_id = attrs.storage_bucket_id; + } + + if (method === 'remove-storage-bucket') { + updatedAttrs.storage_bucket_id = null; + } + return target.update(updatedAttrs); } diff --git a/addons/api/mirage/scenarios/default.js b/addons/api/mirage/scenarios/default.js index 8b90d290c..893a2fd0f 100644 --- a/addons/api/mirage/scenarios/default.js +++ b/addons/api/mirage/scenarios/default.js @@ -94,6 +94,10 @@ export default function (server) { role.update({ managedGroups }); }); + // Storage Buckets + server.createList('storage-bucket', 3, { scope: globalScope }); + server.createList('storage-bucket', 2, { scope: orgScope }); + // Other resources server.schema.scopes.where({ type: 'project' }).models.forEach((scope) => { server.createList('host-catalog', 8, { scope }, 'withChildren'); @@ -110,9 +114,7 @@ export default function (server) { // Workers server.createList('worker', 3, { scope: globalScope }); - // Session Recordings and Storage Buckets - server.createList('storage-bucket', 3, { scope: globalScope }); - server.createList('storage-bucket', 2, { scope: orgScope }); + // Session Recordings server.createList( 'session-recording', 3,