update-flake-lock/src/update-flake-lock.test.ts
2024-05-23 16:09:06 -03:00

95 lines
2.1 KiB
TypeScript

import { determineFlakeDirectories } from "./inputs.js";
import { makeNixCommandArgs } from "./nix.js";
import { expect, test } from "vitest";
test("Nix command arguments", () => {
type TestCase = {
inputs: {
nixOptions: string[];
flakeInputs: string[];
commitMessage: string;
};
expected: string[];
};
const testCases: TestCase[] = [
{
inputs: {
nixOptions: ["--log-format", "raw"],
flakeInputs: [],
commitMessage: "just testing",
},
expected: [
"--log-format",
"raw",
"flake",
"update",
"--commit-lock-file",
"--commit-lockfile-summary",
"just testing",
],
},
{
inputs: {
nixOptions: [],
flakeInputs: ["nixpkgs", "rust-overlay"],
commitMessage: "just testing",
},
expected: [
"flake",
"lock",
"--update-input",
"nixpkgs",
"--update-input",
"rust-overlay",
"--commit-lock-file",
"--commit-lockfile-summary",
"just testing",
],
},
{
inputs: {
nixOptions: ["--debug"],
flakeInputs: [],
commitMessage: "just testing",
},
expected: [
"--debug",
"flake",
"update",
"--commit-lock-file",
"--commit-lockfile-summary",
"just testing",
],
},
];
testCases.forEach(({ inputs, expected }) => {
const args = makeNixCommandArgs(
inputs.nixOptions,
inputs.flakeInputs,
inputs.commitMessage,
);
expect(args).toStrictEqual(expected);
});
});
test("Flake directory parsing", () => {
type TestCase = {
input: string;
outputs: string[];
};
const testCases: TestCase[] = [
{ input: "", outputs: [] },
{ input: "one two three", outputs: ["one", "two", "three"] },
{
input: ` one two three `,
outputs: ["one", "two", "three"],
},
];
testCases.forEach(({ input, outputs }) => {
expect(determineFlakeDirectories(input)).toStrictEqual(outputs);
});
});