Three dashboard-section stories used a fourth title segment (`Domein/Registratie/Dashboard/<Name>`) that the sidebar rule does not have. Drop the `Dashboard/` segment so all story titles follow the one rule from CLAUDE.md decision 5. Add the two missing stories for sections that have more than one visual state: `wat-moet-ik-regelen` (4 states) and `wat-wilt-u-doen` (2 states, the first story in the new `Domein/Overzicht/` bucket). `beheer-links` gets no story — it has one visual state and its other branch renders nothing. The `MetTaken` story disables the a11y addon with the same reason and WP-11 reference already used on `task-list.stories.ts` and `choice-list.stories.ts`: `app-choice-link`'s host sits between the keuzelijst `<ul>` and its `<li>`, a pre-existing structural gap this ticket does not fix. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
85 lines
2.5 KiB
TypeScript
85 lines
2.5 KiB
TypeScript
import type { Meta, StoryObj } from '@storybook/angular';
|
|
import { applicationConfig } from '@storybook/angular';
|
|
import { provideRouter } from '@angular/router';
|
|
import { MijnAanvragenSection } from './mijn-aanvragen.section';
|
|
import { AanvragenStore } from '@registratie/application/aanvragen.store';
|
|
import { Aanvraag } from '@registratie/domain/aanvraag';
|
|
import { RemoteData } from '@shared/application/remote-data';
|
|
import { loading, success, failure } from '@shared/testing/remote-data';
|
|
|
|
const base = {
|
|
id: 'a1',
|
|
type: 'herregistratie',
|
|
documentIds: [],
|
|
createdAt: '2026-06-28T10:00:00Z',
|
|
updatedAt: '2026-06-28T10:05:00Z',
|
|
submittedAt: '2026-06-28T10:05:00Z',
|
|
} satisfies Omit<Aanvraag, 'status'>;
|
|
|
|
const concept: Aanvraag = { ...base, status: { tag: 'Concept', stepIndex: 1, stepCount: 3 } };
|
|
const ingediend: Aanvraag = {
|
|
...base,
|
|
id: 'a2',
|
|
status: { tag: 'InBehandeling', referentie: 'BIG-2026-456789', manual: false },
|
|
};
|
|
|
|
/** Minimal store stand-in — only the members the section's template reads. */
|
|
function storeStub(aanvragen: RemoteData<Error | undefined, Aanvraag[]>, lastError = '') {
|
|
return {
|
|
aanvragen: () => aanvragen,
|
|
reload: () => {},
|
|
cancel: async () => {},
|
|
lastError: () => lastError,
|
|
};
|
|
}
|
|
|
|
const meta: Meta<MijnAanvragenSection> = {
|
|
title: 'Domein/Registratie/Mijn Aanvragen',
|
|
component: MijnAanvragenSection,
|
|
decorators: [applicationConfig({ providers: [provideRouter([])] })],
|
|
};
|
|
export default meta;
|
|
type Story = StoryObj<MijnAanvragenSection>;
|
|
|
|
export const Loading: Story = {
|
|
decorators: [
|
|
applicationConfig({ providers: [{ provide: AanvragenStore, useValue: storeStub(loading()) }] }),
|
|
],
|
|
};
|
|
export const WithConceptAndSubmitted: Story = {
|
|
decorators: [
|
|
applicationConfig({
|
|
providers: [{ provide: AanvragenStore, useValue: storeStub(success([concept, ingediend])) }],
|
|
}),
|
|
],
|
|
};
|
|
export const Empty: Story = {
|
|
decorators: [
|
|
applicationConfig({
|
|
providers: [{ provide: AanvragenStore, useValue: storeStub(success([])) }],
|
|
}),
|
|
],
|
|
};
|
|
export const CancelFailed: Story = {
|
|
decorators: [
|
|
applicationConfig({
|
|
providers: [
|
|
{
|
|
provide: AanvragenStore,
|
|
useValue: storeStub(
|
|
success([concept]),
|
|
$localize`:@@dashboard.cancel.failed:Verwijderen is niet gelukt.`,
|
|
),
|
|
},
|
|
],
|
|
}),
|
|
],
|
|
};
|
|
export const Failed: Story = {
|
|
decorators: [
|
|
applicationConfig({
|
|
providers: [{ provide: AanvragenStore, useValue: storeStub(failure(new Error('offline'))) }],
|
|
}),
|
|
],
|
|
};
|