dev-manager-tauri/src/lib/commands.test.ts

33 lines
976 B
TypeScript

import { describe, it, expect } from "vitest";
import { parseRepoPath } from "./commands";
describe("parseRepoPath", () => {
it("解析标准 HTTPS GitHub URL", () => {
expect(parseRepoPath("https://github.com/facebook/react")).toBe("facebook/react");
});
it("解析带 .git 后缀的 URL", () => {
expect(parseRepoPath("https://github.com/facebook/react.git")).toBe("facebook/react");
});
it("解析 SSH 格式 URL", () => {
expect(parseRepoPath("git@github.com:facebook/react.git")).toBe("facebook/react");
});
it("非 GitHub URL 返回 null", () => {
expect(parseRepoPath("https://gitlab.com/foo/bar")).toBeNull();
});
it("空字符串返回 null", () => {
expect(parseRepoPath("")).toBeNull();
});
it("纯域名无路径返回 null", () => {
expect(parseRepoPath("https://github.com")).toBeNull();
});
it("非 URL 的随机字符串返回 null", () => {
expect(parseRepoPath("not-a-url")).toBeNull();
});
});