78 lines · 2.4 KB · TypeScript
RawDownload
import { describe, expect, it } from "vite-plus/test"; import {  detectSourceControlProviderFromRemoteUrl,  getChangeRequestTerminologyForKind,  resolveChangeRequestPresentation,} from "./sourceControl.ts"; describe("source control presentation", () => {  it("uses merge request terminology for GitLab", () => {    expect(getChangeRequestTerminologyForKind("gitlab")).toEqual({      shortLabel: "MR",      singular: "merge request",    });  });   it("uses pull request terminology for GitHub-compatible providers", () => {    expect(getChangeRequestTerminologyForKind("github")).toEqual({      shortLabel: "PR",      singular: "pull request",    });    expect(getChangeRequestTerminologyForKind("azure-devops")).toEqual({      shortLabel: "PR",      singular: "pull request",    });    expect(getChangeRequestTerminologyForKind("bitbucket")).toEqual({      shortLabel: "PR",      singular: "pull request",    });  });   it("falls back to generic change request copy for unknown providers", () => {    expect(      resolveChangeRequestPresentation({ kind: "unknown", name: "forge", baseUrl: "" }),    ).toEqual(      expect.objectContaining({        shortName: "change request",        longName: "change request",      }),    );  });}); describe("detectSourceControlProviderFromRemoteUrl", () => {  it("detects common source control hosts", () => {    expect(detectSourceControlProviderFromRemoteUrl("git@github.com:owner/repo.git")?.kind).toBe(      "github",    );    expect(      detectSourceControlProviderFromRemoteUrl("https://gitlab.com/group/repo.git")?.kind,    ).toBe("gitlab");    expect(      detectSourceControlProviderFromRemoteUrl("https://dev.azure.com/org/project/_git/repo")?.kind,    ).toBe("azure-devops");    expect(      detectSourceControlProviderFromRemoteUrl("git@bitbucket.org:workspace/repo.git")?.kind,    ).toBe("bitbucket");  });   it("preserves ports while classifying by hostname", () => {    expect(      detectSourceControlProviderFromRemoteUrl("https://gitlab.com:8443/group/repo.git"),    ).toEqual({      kind: "gitlab",      name: "GitLab",      baseUrl: "https://gitlab.com:8443",    });    expect(      detectSourceControlProviderFromRemoteUrl(        "https://self-hosted.example.test:8443/group/repo.git",      ),    ).toEqual({      kind: "unknown",      name: "self-hosted.example.test:8443",      baseUrl: "https://self-hosted.example.test:8443",    });  });});