This repository has no description
0

Configure Feed

Select the types of activity you want to include in your feed.

core / web / src / lib / components / repo / CloneDropdown.stories.svelte
1.7 kB 51 lines
1<script module lang="ts"> 2 import { defineMeta, type StoryContext } from "@storybook/addon-svelte-csf"; 3 import { expect } from "storybook/test"; 4 import CloneDropdown from "./CloneDropdown.svelte"; 5 import type { RepoInfo } from "./types"; 6 7 const repo: RepoInfo = { 8 uri: "at://did:plc:repo/sh.tangled.repo.repo/3jzrepo", 9 rkey: "3jzrepo", 10 name: "tangled", 11 ownerDid: "did:plc:owner", 12 ownerHandle: "dawn", 13 repoDid: "did:plc:repo", 14 knot: "knot1.tangled.sh", 15 defaultBranch: "main" 16 }; 17 18 const selfHostedRepo = { ...repo, knot: "https://git.example.test:8443" }; 19 const repoWithoutDid = { ...repo, repoDid: undefined }; 20 type PlayContext = Pick<StoryContext<Record<string, unknown>>, "canvas" | "userEvent">; 21 22 const openMenu = async ({ canvas, userEvent }: PlayContext) => { 23 await userEvent.click(canvas.getByRole("button", { name: "Clone this repository" })); 24 await expect(canvas.getByRole("menu")).toBeVisible(); 25 }; 26 27 const selectPermalink = async ({ canvas, userEvent }: PlayContext) => { 28 await openMenu({ canvas, userEvent }); 29 await userEvent.click(canvas.getByRole("checkbox", { name: "Use permalink" })); 30 await expect(canvas.getByText("git@tangled.org:did:plc:repo")).toBeVisible(); 31 }; 32 33 const { Story } = defineMeta({ 34 title: "Repo/CloneDropdown", 35 component: CloneDropdown, 36 tags: ["autodocs"], 37 args: { 38 repo, 39 ref: "main", 40 bobbinUrl: "https://bobbin.example.test" 41 } 42 }); 43</script> 44 45<Story name="Opened clone menu" play={openMenu} /> 46<Story name="Permalink URLs" play={selectPermalink} /> 47<Story 48 name="Self-hosted knot normalizes SSH host" 49 args={{ repo: selfHostedRepo, ref: "feature/demo" }} 50/> 51<Story name="Repository without DID" args={{ repo: repoWithoutDid }} />