Skip to content

Instantly share code, notes, and snippets.

View tidusia's full-sized avatar

Thibaud Duthoit tidusia

View GitHub Profile
play: async ({ canvasElement, args }) => {
const canvas = within(canvasElement);
const user = userEvent.setup({ delay: 50 });
await user.click(canvas.getByText("Click me"));
await waitFor(() => expect(args.onClick).toHaveBeenCalledTimes(1));
},
import { Meta, StoryObj } from "@storybook/react";
import Button from ".";
import { userEvent, within, waitFor } from "@storybook/testing-library";
import { expect } from "@storybook/jest";
export default {
component: Button,
argTypes: {
onClick: { action: true },
},
import React, { FunctionComponent } from "react";
const Menu: FunctionComponent<React.SVGProps<SVGSVGElement>> = (props) => (
<svg stroke="currentColor" fill="none" viewBox="0 0 24 24" {...props}>
<path
strokeLinecap="round"
strokeLinejoin="round"
strokeWidth="2"
d="M4 6h16M4 12h16M4 18h16"
/>
# Global docker ignore
**/.dockerignore
docker-compose.yml
Dockerfile*
*.dockerfile
.git/
# Nodejs app ignore
node_modules/
test("should play the story interaction", async () => {
const onClick = jest.fn();
const { container } = render(<Default onClick={onClick} />);
await Default.play({ canvasElement: container });
expect(onClick).toHaveBeenCalledTimes(1);
});
@tidusia
tidusia / context-based-compound-component.js
Created December 22, 2021 13:37
Context based Compound Component example
// Flexible Compound Components - epicreact.dev
import * as React from 'react'
import {Switch} from '../switch'
// 📜 https://reactjs.org/docs/context.html#reactcreatecontext
const ToggleContext = React.createContext()
ToggleContext.displayName = 'ToggleContext'
function Toggle({children}) {
import { ComponentMeta } from "@storybook/react";
import COMPONENT_NAME from ".";
import { userEvent, within } from "@storybook/testing-library";
export default {
component: COMPONENT_NAME,
decorators: [(story) => <div>{story()}</div>],
parameters: {
layout: "centered",
},
const server = setupServer(
rest.get("/jobs", (req, res, ctx) => res(ctx.json(fixtures.jobs))),
);
beforeAll(() => server.listen({ onUnhandledRequest: "error" }));
afterAll(() => server.close());
afterEach(() => server.resetHandlers());
jest.mock("react-modal", () => ({ children }: any) => children);
test("should be accessible and match snapshot", async () => {
const { container } = render(<Default {...props} />);
expect(await axe(container)).toHaveNoViolations();
expect(container.firstChild).toMatchSnapshot();
});