75 lines
2.1 KiB
TypeScript
75 lines
2.1 KiB
TypeScript
import { renderCommitMessage, renderPullRequestBody } from "./template.js";
|
|
import { template } from "handlebars";
|
|
import { Test, describe, expect, test } from "vitest";
|
|
|
|
describe("templating", () => {
|
|
test("commit message", () => {
|
|
type TestCase = {
|
|
template: string;
|
|
flakeDotLockDir: string;
|
|
flakeDotLock: string;
|
|
expected: string;
|
|
};
|
|
|
|
const testCases: TestCase[] = [
|
|
{
|
|
template: "Updating flake.lock in dir {{ flake_dot_lock_dir }}",
|
|
flakeDotLockDir: ".",
|
|
flakeDotLock: "./flake.lock",
|
|
expected: "Updating flake.lock in dir .",
|
|
},
|
|
{
|
|
template:
|
|
"Here I go doing some updating of my pristine flake.lock at {{ flake_dot_lock }}",
|
|
flakeDotLockDir: "subflake",
|
|
flakeDotLock: "subflake/flake.lock",
|
|
expected:
|
|
"Here I go doing some updating of my pristine flake.lock at subflake/flake.lock",
|
|
},
|
|
{
|
|
template: "This variable doesn't exist: {{ foo }}",
|
|
flakeDotLockDir: ".",
|
|
flakeDotLock: "./flake.lock",
|
|
expected: "This variable doesn't exist: ",
|
|
},
|
|
];
|
|
|
|
testCases.forEach(
|
|
({ template, flakeDotLockDir, flakeDotLock, expected }) => {
|
|
expect(
|
|
renderCommitMessage(template, flakeDotLockDir, flakeDotLock),
|
|
).toEqual(expected);
|
|
},
|
|
);
|
|
});
|
|
|
|
test("pull request body", () => {
|
|
type TestCase = {
|
|
template: string;
|
|
dirs: string[];
|
|
expected: string;
|
|
};
|
|
|
|
const testCases: TestCase[] = [
|
|
{
|
|
template: "Updated inputs: {{ comma_separated_dirs }}",
|
|
dirs: ["."],
|
|
expected: "Updated inputs: .",
|
|
},
|
|
{
|
|
template: "Updated inputs: {{ space_separated_dirs }}",
|
|
dirs: ["subflake", "subflake2"],
|
|
expected: "Updated inputs: subflake subflake2",
|
|
},
|
|
{
|
|
template: "Updated inputs:\n{{ updated_dirs_list }}",
|
|
dirs: ["flake1", "flake2"],
|
|
expected: `Updated inputs:\n* flake1\n* flake2`,
|
|
},
|
|
];
|
|
|
|
testCases.forEach(({ template, dirs, expected }) => {
|
|
expect(renderPullRequestBody(template, dirs)).toEqual(expected);
|
|
});
|
|
});
|
|
});
|