Skip to content

Commit 287f18d

Browse files
committed
feat(QwikCityMockProvider): custom loaders mocks
1 parent f263433 commit 287f18d

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

packages/qwik-city/src/runtime/src/qwik-city-component.tsx

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ import type {
3939
Editable,
4040
EndpointResponse,
4141
LoadedRoute,
42+
LoaderConstructor,
4243
MutableRouteLocation,
4344
PageModule,
4445
PreventNavigateCallback,
@@ -661,6 +662,10 @@ export interface QwikCityMockProps {
661662
url?: string;
662663
params?: Record<string, string>;
663664
goto?: RouteNavigate;
665+
loaders?: {
666+
loader: LoaderConstructor;
667+
data: any;
668+
}[];
664669
}
665670

666671
/** @public */
@@ -677,7 +682,13 @@ export const QwikCityMockProvider = component$<QwikCityMockProps>((props) => {
677682
{ deep: false }
678683
);
679684

680-
const loaderState = useSignal({});
685+
const loaderState = useStore(
686+
props.loaders?.reduce(
687+
(acc, { loader, data }) => ({ ...acc, [(loader as any).__id]: data }),
688+
{} as Record<string, any>
689+
) ?? {},
690+
{ deep: false }
691+
);
681692
const routeInternal = useSignal<RouteStateInternal>({ type: 'initial', dest: url });
682693

683694
const goto: RouteNavigate =

0 commit comments

Comments
 (0)