Define Slots
Out of the box, spartacus-mock comes with the mock-data for the standard electronics store. You can add additional custom slots or override existing slots:
Create a file
src/mock-server/mock-data/slots.tsAdd a function
customSlotto return the mock-data for your custom slot
// src/mock-server/mock-data/slots.ts
import { cmsParagraphComponent } from '@valantic/spartacus-mock';
import { Occ } from '@spartacus/core';
export const customSlot = (): Occ.ContentSlot => {
return {
slotId: 'testSlot', // use same slotId as an existing slot to overide the default slot
slotUuid: 'testSlot1234',
position: 'TestSlot', // use an existing position to add your custom components to that slot
name: 'My Test Slot',
slotShared: true,
components: {
component: [cmsParagraphComponent('Hello World!')],
},
};
};
export const customSlots = (): Occ.ContentSlot[] => {
return [customSlot()];
};Use
slotPositionof an existing slot to add your custom components to that slot. UseslotPositionandslotIdto override the default components with your custom components.
Append your slot function to your mockConfig in your
main.tsfile
// src/main.ts
import { testSlot } from './mock-server/mock-data/slots/test-slot';
async function prepare(): Promise<
ServiceWorkerRegistration | undefined
> {
if (environment.mockServer) {
const { prepareMock } = await import(
/* webpackChunkName: "mock-server" */ '@valantic/spartacus-mock'
);
const mockConfig: MockConfig = {
enableWorker: environment.mockServer || false,
environment,
customSlots: customSlots(),
};
return prepareMock(mockConfig);
}
return Promise.resolve(undefined);
}Pro tip: When your project (and therefore also your mock-data) grows, we recommend to created different files / folders for different features / pages to keep your mock-data organized.
Last updated