feat: vendor permission system source

This commit is contained in:
云服务部-叶林立
2026-08-19 14:35:19 +08:00
parent 198584daf8
commit 410c50a3e5
809 changed files with 157793 additions and 139 deletions
@@ -0,0 +1,91 @@
import { describe, expect, test } from "vitest";
import { extractFrontmatter, parseSimpleYamlMap } from "#src/yaml-frontmatter";
describe("extractFrontmatter", () => {
test("returns empty string when no frontmatter delimiter", () => {
expect(extractFrontmatter("# Hello\nSome content")).toBe("");
});
test("returns empty string when only opening delimiter with no closing", () => {
expect(extractFrontmatter("---\nkey: value")).toBe("");
});
test("returns frontmatter body between delimiters", () => {
const markdown = "---\nissue: 1\ntitle: Test\n---\n# Content";
expect(extractFrontmatter(markdown)).toBe("issue: 1\ntitle: Test");
});
test("returns empty string when file does not start with ---", () => {
expect(extractFrontmatter("content\n---\nkey: val\n---")).toBe("");
});
test("handles CRLF line endings", () => {
const markdown = "---\r\nissue: 5\r\n---\r\n# Content";
expect(extractFrontmatter(markdown)).toBe("issue: 5");
});
test("returns empty string for empty string input", () => {
expect(extractFrontmatter("")).toBe("");
});
test("returns empty frontmatter for --- \\n--- with nothing between", () => {
const markdown = "---\n---\n# Content";
expect(extractFrontmatter(markdown)).toBe("");
});
});
describe("parseSimpleYamlMap", () => {
test("returns empty object for empty string", () => {
expect(parseSimpleYamlMap("")).toEqual({});
});
test("parses simple key-value pairs", () => {
const yaml = "issue: 21\ntitle: Test";
expect(parseSimpleYamlMap(yaml)).toEqual({ issue: "21", title: "Test" });
});
test("strips surrounding quotes from values", () => {
const yaml = 'title: "My Title"';
expect(parseSimpleYamlMap(yaml)).toEqual({ title: "My Title" });
const yaml2 = "title: 'My Title'";
expect(parseSimpleYamlMap(yaml2)).toEqual({ title: "My Title" });
});
test("skips lines without colon or with colon at position 0", () => {
const yaml = "no separator here\n:starts-with-colon: val\nkey: val";
const result = parseSimpleYamlMap(yaml);
expect(result.key).toBe("val");
expect(result["no separator here"]).toBeUndefined();
});
test("skips comment lines", () => {
const yaml = "# This is a comment\nkey: value";
expect(parseSimpleYamlMap(yaml)).toEqual({ key: "value" });
});
test("skips blank lines", () => {
const yaml = "\n\nkey: value\n\n";
expect(parseSimpleYamlMap(yaml)).toEqual({ key: "value" });
});
test("parses nested map (child indented under parent)", () => {
const yaml = "parent:\n child: nested_value";
const result = parseSimpleYamlMap(yaml);
expect(result.parent).toEqual({ child: "nested_value" });
});
test("handles multi-line values correctly (second line is new key)", () => {
const yaml = "key1: val1\nkey2: val2";
const result = parseSimpleYamlMap(yaml);
expect(result.key1).toBe("val1");
expect(result.key2).toBe("val2");
});
test("strips quotes from keys", () => {
const yaml = '"quoted-key": value';
const result = parseSimpleYamlMap(yaml);
expect(result["quoted-key"]).toBe("value");
});
});