···11+import type { Meta, StoryObj } from "@storybook/react";
22+33+import Album from "./Album";
44+import { albums } from "../Albums/mocks";
55+import { fn } from "@storybook/test";
66+77+// More on how to set up stories at: https://storybook.js.org/docs/writing-stories#default-export
88+const meta = {
99+ title: "Components/Album",
1010+ component: Album,
1111+ // This component will have an automatically generated Autodocs entry: https://storybook.js.org/docs/writing-docs/autodocs
1212+ tags: ["autodocs"],
1313+ // More on argTypes: https://storybook.js.org/docs/api/argtypes
1414+} satisfies Meta<typeof Album>;
1515+1616+export default meta;
1717+type Story = StoryObj<typeof meta>;
1818+1919+// More on writing stories with args: https://storybook.js.org/docs/writing-stories/args
2020+export const Default: Story = {
2121+ args: {
2222+ onPlay: fn(),
2323+ onLike: fn(),
2424+ onUnLike: fn(),
2525+ album: albums[0],
2626+ },
2727+};
+31
webui/rockbox/src/Components/Album/Album.test.tsx
···11+import { render } from "@testing-library/react";
22+import { vi } from "vitest";
33+import Album from "./Album";
44+import { albums } from "../Albums/mocks";
55+import Providers from "../../Providers";
66+import { MemoryRouter } from "react-router-dom";
77+import { MockedProvider } from "@apollo/client/testing";
88+import { mocks } from "../../mocks";
99+1010+describe("Album", () => {
1111+ it("should render", () => {
1212+ const onPlay = vi.fn();
1313+ const onUnLike = vi.fn();
1414+ const onLike = vi.fn();
1515+ const { container } = render(
1616+ <MemoryRouter initialEntries={["/"]}>
1717+ <MockedProvider mocks={mocks}>
1818+ <Providers>
1919+ <Album
2020+ album={albums[0]}
2121+ onPlay={onPlay}
2222+ onUnLike={onUnLike}
2323+ onLike={onLike}
2424+ />
2525+ </Providers>
2626+ </MockedProvider>
2727+ </MemoryRouter>
2828+ );
2929+ expect(container).toMatchSnapshot();
3030+ });
3131+});