From d401819d2ea66b146407a563bcde3ef7fbb062bf Mon Sep 17 00:00:00 2001 From: Sebastian Martinez Date: Wed, 20 Mar 2024 00:02:10 +0100 Subject: [PATCH] Add Canonical badge for canonical branch --- src/components/Badge.svelte | 6 ++++++ src/views/projects/Source/BranchSelector.svelte | 13 ++++++++++++- src/views/projects/Source/Header.svelte | 2 +- tests/e2e/project/commits.spec.ts | 8 ++++---- 4 files changed, 23 insertions(+), 6 deletions(-) diff --git a/src/components/Badge.svelte b/src/components/Badge.svelte index 5d32db374..cdb10003d 100644 --- a/src/components/Badge.svelte +++ b/src/components/Badge.svelte @@ -9,6 +9,7 @@ | "negative" | "positive" | "primary" + | "foreground-emphasized" | "delegate" | "secondary"; export let round: boolean = false; @@ -39,6 +40,10 @@ color: var(--color-foreground-match-background); background: var(--color-fill-gray); } + .foreground-emphasized { + background-color: var(--color-fill-counter-emphasized); + color: var(--color-foreground-emphasized); + } .delegate { color: var(--color-foreground-primary); background: var(--color-fill-delegate); @@ -119,6 +124,7 @@ class:yellow={variant === "yellow"} class:delegate={variant === "delegate"} class:outline={variant === "outline"} + class:foreground-emphasized={variant === "foreground-emphasized"} class:background={variant === "background"} class:foreground={variant === "foreground"} class:neutral={variant === "neutral"} diff --git a/src/views/projects/Source/BranchSelector.svelte b/src/views/projects/Source/BranchSelector.svelte index fad4940b6..d560b8b26 100644 --- a/src/views/projects/Source/BranchSelector.svelte +++ b/src/views/projects/Source/BranchSelector.svelte @@ -6,6 +6,7 @@ import { activeUnloadedRouteStore } from "@app/lib/router"; import { closeFocused } from "@app/components/Popover.svelte"; + import Badge from "@app/components/Badge.svelte"; import DropdownList from "@app/components/DropdownList.svelte"; import DropdownListItem from "@app/components/DropdownList/DropdownListItem.svelte"; import Popover from "@app/components/Popover.svelte"; @@ -13,6 +14,7 @@ import Link from "@app/components/Link.svelte"; import Button from "@app/components/Button.svelte"; + export let onCanonical: boolean; export let branches: Array<{ name: string; route: Route }>; export let node: BaseUrl; export let project: Project; @@ -52,6 +54,11 @@ title="Change branch">
{selectedBranch}
+ {#if onCanonical} + + Canonical + + {/if} @@ -62,7 +69,11 @@ closeFocused()}> -
{item.name}
+ {#if onCanonical} + + Canonical + + {/if}
diff --git a/src/views/projects/Source/Header.svelte b/src/views/projects/Source/Header.svelte index 442ddc614..ed2d5d629 100644 --- a/src/views/projects/Source/Header.svelte +++ b/src/views/projects/Source/Header.svelte @@ -88,7 +88,7 @@ {branches} {project} {node} - selectedCommitId={commitId} + onCanonical={Boolean(!peer && selectedBranch === project.defaultBranch)} {selectedBranch} /> diff --git a/tests/e2e/project/commits.spec.ts b/tests/e2e/project/commits.spec.ts index 2ba9940d4..e812a0eb5 100644 --- a/tests/e2e/project/commits.spec.ts +++ b/tests/e2e/project/commits.spec.ts @@ -152,8 +152,7 @@ test("pushing changes while viewing history", async ({ page, peerManager }) => { await expect(page).toHaveURL(`${alice.uiUrl()}/${rid}/history`); await expect(page.getByRole("link", { name: "Commits 2" })).toBeVisible(); - await expect(page.getByTitle("Change branch")).toHaveText("main"); - await expect(page.getByTitle("Current HEAD")).toHaveText("516fa74"); + await expect(page.getByTitle("Change branch")).toHaveText("main Canonical"); await page .getByRole("banner") @@ -181,6 +180,7 @@ test("pushing changes while viewing history", async ({ page, peerManager }) => { await expect(page.getByRole("link", { name: "Commits 3" })).toHaveText( "Commits 3", ); - await expect(page.getByTitle("Change branch")).toHaveText("main"); - await expect(page.getByTitle("Current HEAD")).toHaveText("bb9089a"); + await expect( + page.getByRole("button", { name: "main Canonical" }), + ).toBeVisible(); });