| <script context="module"> | |
| import { Template, Story } from "@storybook/addon-svelte-csf"; | |
| import JSON from "./Index.svelte"; | |
| import { userEvent, within } from "@storybook/test"; | |
| const SAMPLE_JSON = { | |
| items: { | |
| item: [ | |
| { | |
| id: "0001", | |
| type: null, | |
| is_good: false, | |
| ppu: 0.55, | |
| batters: { | |
| batter: [{ id: "1001", type: "Regular" }] | |
| }, | |
| topping: [{ id: "5002", type: "Glazed" }] | |
| } | |
| ] | |
| } | |
| }; | |
| export const meta = { | |
| title: "Components/JSON", | |
| component: JSON | |
| }; | |
| </script> | |
| <Template let:args> | |
| <JSON value={SAMPLE_JSON} {...args} /> | |
| </Template> | |
| <Story name="Default JSON" args={{}} /> | |
| <Story | |
| name="JSON Interactions" | |
| args={{ | |
| value: SAMPLE_JSON, | |
| interactive: true | |
| }} | |
| play={async ({ canvasElement }) => { | |
| const canvas = within(canvasElement); | |
| const toggles = within(canvasElement).getAllByRole("button"); | |
| await userEvent.click(toggles[1]); | |
| await userEvent.click(toggles[1]); | |
| await userEvent.click(toggles[2]); | |
| await userEvent.click(canvas.getAllByText("Object(2)")[0]); | |
| }} | |
| /> | |
| <Story | |
| name="JSON viewed as list with height" | |
| args={{ | |
| value: SAMPLE_JSON, | |
| show_indices: true, | |
| height: 200 | |
| }} | |
| /> | |