Mock Service Worker: Add image handlers

This commit adds handlers to MSW for the composes, clones, and their
respective status routes.
This commit is contained in:
lucasgarfield 2023-06-05 10:54:18 +02:00 committed by Lucas Garfield
parent 5bf3f5af35
commit c3e86b95fd
3 changed files with 74 additions and 44 deletions

View file

@ -36,7 +36,7 @@ jest.spyOn(api, 'getComposeStatus').mockImplementation((id) => {
jest.spyOn(api, 'getClones').mockImplementation((id) => { jest.spyOn(api, 'getClones').mockImplementation((id) => {
return id === '1579d95b-8f1d-4982-8c53-8c2afa4ab04c' return id === '1579d95b-8f1d-4982-8c53-8c2afa4ab04c'
? Promise.resolve(mockClones) ? Promise.resolve(mockClones(id))
: Promise.resolve(mockNoClones); : Promise.resolve(mockNoClones);
}); });
@ -280,22 +280,22 @@ describe('Clones table', () => {
expect(cloneRows).toHaveLength(5); expect(cloneRows).toHaveLength(5);
// prepend parent data // prepend parent data
const composeId = '1579d95b-8f1d-4982-8c53-8c2afa4ab04c';
const clonesTableData = { const clonesTableData = {
uuid: [ uuid: [composeId, ...mockClones(composeId).data.map((clone) => clone.id)],
'1579d95b-8f1d-4982-8c53-8c2afa4ab04c',
...mockClones.data.map((clone) => clone.id),
],
created: [ created: [
'2021-04-27 12:31:12.794809 +0000 UTC', '2021-04-27 12:31:12.794809 +0000 UTC',
...mockClones.data.map((clone) => clone.created_at), ...mockClones(composeId).data.map((clone) => clone.created_at),
], ],
account: [ account: [
'123123123123', '123123123123',
...mockClones.data.map((clone) => clone.request.share_with_accounts[0]), ...mockClones(composeId).data.map(
(clone) => clone.request.share_with_accounts[0]
),
], ],
region: [ region: [
'us-east-1', 'us-east-1',
...mockClones.data.map( ...mockClones(composeId).data.map(
(clone) => mockCloneStatus[clone.id].options.region (clone) => mockCloneStatus[clone.id].options.region
), ),
], ],

View file

@ -10,7 +10,7 @@ export const mockComposesEmpty = {
// ImagesTable mocks // ImagesTable mocks
const currentDate = new Date(); const currentDate = new Date();
const currentDateInString = currentDate.toString(); const currentDateInString = currentDate.toISOString();
export const mockComposes = { export const mockComposes = {
meta: { meta: {
@ -349,41 +349,47 @@ export const mockNoClones = {
data: null, data: null,
}; };
export const mockClones = { export const mockClones = (composeId) => {
data: [ if (composeId === '1579d95b-8f1d-4982-8c53-8c2afa4ab04c') {
{ return {
created_at: '2021-04-27 12:31:12.794809 +0000 UTC', data: [
id: 'f9133ec4-7a9e-4fd9-9a9f-9636b82b0a5d', {
request: { created_at: '2021-04-27 12:31:12.794809 +0000 UTC',
region: 'us-west-1', id: 'f9133ec4-7a9e-4fd9-9a9f-9636b82b0a5d',
share_with_accounts: ['123123123123'], request: {
}, region: 'us-west-1',
}, share_with_accounts: ['123123123123'],
{ },
created_at: '2021-04-28 12:31:12.794809 +0000 UTC', },
id: '48fce414-0cc0-4a16-8645-e3f0edec3212', {
request: { created_at: '2021-04-28 12:31:12.794809 +0000 UTC',
region: 'us-west-1', id: '48fce414-0cc0-4a16-8645-e3f0edec3212',
share_with_accounts: ['123123123123'], request: {
}, region: 'us-west-1',
}, share_with_accounts: ['123123123123'],
{ },
created_at: '2021-04-27 12:31:12.794809 +0000 UTC', },
id: '0169538e-515c-477e-b934-f12783939313', {
request: { created_at: '2021-04-27 12:31:12.794809 +0000 UTC',
region: 'us-west-2', id: '0169538e-515c-477e-b934-f12783939313',
share_with_accounts: ['123123123123'], request: {
}, region: 'us-west-2',
}, share_with_accounts: ['123123123123'],
{ },
created_at: '2021-04-27 12:31:12.794809 +0000 UTC', },
id: '4a851db1-919f-43ca-a7ef-dd209877a77e', {
request: { created_at: '2021-04-27 12:31:12.794809 +0000 UTC',
region: 'eu-central-1', id: '4a851db1-919f-43ca-a7ef-dd209877a77e',
share_with_accounts: ['000000000000'], request: {
}, region: 'eu-central-1',
}, share_with_accounts: ['000000000000'],
], },
},
],
};
}
return null;
}; };
export const mockCloneStatus = { export const mockCloneStatus = {

View file

@ -11,6 +11,12 @@ import {
mockActivationKeysResults, mockActivationKeysResults,
} from '../fixtures/activationKeys'; } from '../fixtures/activationKeys';
import { mockArchitecturesByDistro } from '../fixtures/architectures'; import { mockArchitecturesByDistro } from '../fixtures/architectures';
import {
mockClones,
mockCloneStatus,
mockComposes,
mockStatus,
} from '../fixtures/composes';
import { import {
mockPackagesResults, mockPackagesResults,
mockSourcesPackagesResults, mockSourcesPackagesResults,
@ -77,4 +83,22 @@ export const handlers = [
const args = { available_for_arch, available_for_version, limit }; const args = { available_for_arch, available_for_version, limit };
return res(ctx.status(200), ctx.json(mockRepositoryResults(args))); return res(ctx.status(200), ctx.json(mockRepositoryResults(args)));
}), }),
rest.get(`${IMAGE_BUILDER_API}/composes`, (req, res, ctx) => {
return res(ctx.status(200), ctx.json(mockComposes));
}),
rest.get(`${IMAGE_BUILDER_API}/composes/:composeId`, (req, res, ctx) => {
const { composeId } = req.params;
return res(ctx.status(200), ctx.json(mockStatus[composeId]));
}),
rest.get(
`${IMAGE_BUILDER_API}/composes/:composeId/clones`,
(req, res, ctx) => {
const { composeId } = req.params;
return res(ctx.status(200), ctx.json(mockClones(composeId)));
}
),
rest.get(`${IMAGE_BUILDER_API}/clones/:cloneId`, (req, res, ctx) => {
const { cloneId } = req.params;
return res(ctx.status(200), ctx.json(mockCloneStatus[cloneId]));
}),
]; ];