Aam-Digital/ndb-core

View on GitHub
src/app/child-dev-project/attendance/activity-card/activity-card.stories.ts

Summary

Maintainability
A
0 mins
Test Coverage
import { applicationConfig, Meta, StoryFn } from "@storybook/angular";
import { ActivityCardComponent } from "./activity-card.component";
import { Note } from "../../notes/model/note";
import { DemoChildGenerator } from "../../children/demo-data-generators/demo-child-generator.service";
import { RecurringActivity } from "../model/recurring-activity";
import { StorybookBaseModule } from "../../../utils/storybook-base.module";
import { importProvidersFrom } from "@angular/core";

export default {
  title: "Features/Attendance/Components/ActivityCard",
  component: ActivityCardComponent,
  decorators: [
    applicationConfig({
      providers: [importProvidersFrom(StorybookBaseModule)],
    }),
  ],
} as Meta;

const Template: StoryFn<ActivityCardComponent> = (
  args: ActivityCardComponent,
) => ({
  component: ActivityCardComponent,
  props: args,
});

const demoChildren = [
  DemoChildGenerator.generateEntity("1"),
  DemoChildGenerator.generateEntity("2"),
  DemoChildGenerator.generateEntity("3"),
];

const simpleEvent = Note.create(new Date(), "some meeting");
demoChildren.forEach((c) => simpleEvent.addChild(c));

const longEvent = Note.create(new Date(), "another meeting");
longEvent.text =
  "a guardians meeting with all families who are in the neighbourhood";
longEvent.category = {
  id: "GUARDIAN_MEETING",
  label: "Guardians Meeting",
  isMeeting: true,
};
demoChildren.forEach((c) => longEvent.addChild(c));

const activityEvent = Note.create(new Date(), "Coaching Batch C");
activityEvent.relatesTo = RecurringActivity.create("Coaching Batch C").getId();
demoChildren.forEach((c) => activityEvent.addChild(c));

export const OneTimeEvent = Template.bind({});
OneTimeEvent.args = {
  event: simpleEvent,
};

export const OneTimeEventComplex = Template.bind({});
OneTimeEventComplex.args = {
  event: longEvent,
};

export const RecurringEvent = Template.bind({});
RecurringEvent.args = {
  event: activityEvent,
};