56 lines
1.6 KiB
TypeScript
56 lines
1.6 KiB
TypeScript
import {parseFileReference} from "./file-reference";
|
|
|
|
describe("parseFileReference", () => {
|
|
it("parses local file reference", () => {
|
|
const ref = parseFileReference("./workflow/path");
|
|
expect(ref).toEqual({
|
|
path: "workflow/path"
|
|
});
|
|
});
|
|
|
|
it("parses local file references with an empty path", () => {
|
|
const ref = parseFileReference("./");
|
|
expect(ref).toEqual({
|
|
path: ""
|
|
});
|
|
});
|
|
|
|
it("parses remote file reference", () => {
|
|
const ref = parseFileReference("owner/repo/path@version");
|
|
expect(ref).toEqual({
|
|
owner: "owner",
|
|
repository: "repo",
|
|
path: "path",
|
|
version: "version"
|
|
});
|
|
});
|
|
|
|
it("parses remote file reference with an empty path", () => {
|
|
const ref = parseFileReference("owner/repo@version");
|
|
expect(ref).toEqual({
|
|
owner: "owner",
|
|
repository: "repo",
|
|
path: "",
|
|
version: "version"
|
|
});
|
|
});
|
|
|
|
it("parses remote file reference with slashes in the version", () => {
|
|
const ref = parseFileReference("owner/repo@feature-branch/dev");
|
|
expect(ref).toEqual({
|
|
owner: "owner",
|
|
repository: "repo",
|
|
path: "",
|
|
version: "feature-branch/dev"
|
|
});
|
|
});
|
|
|
|
it("throws for malformed remote file references", () => {
|
|
expect(() => parseFileReference("owner/repo/path")).toThrowError("Invalid file reference: owner/repo/path");
|
|
|
|
expect(() => parseFileReference("owner/repo/path@")).toThrowError("Invalid file reference: owner/repo/path@");
|
|
|
|
expect(() => parseFileReference("owner@")).toThrowError("Invalid file reference: owner@");
|
|
});
|
|
});
|