@pagopa/dx-cli
Version:
A CLI useful to manage DX tools.
39 lines (38 loc) • 1.29 kB
JavaScript
import { errAsync, okAsync } from "neverthrow";
import { describe, expect, it, vi } from "vitest";
import { listCodemods } from "../list-codemods.js";
describe("listCodemods", () => {
it("returns codemods from the registry", async () => {
const codemods = [
{
apply: vi.fn().mockResolvedValue(undefined),
description: "a",
id: "a",
},
{
apply: vi.fn().mockResolvedValue(undefined),
description: "b",
id: "b",
},
];
const registry = {
getAll: vi.fn().mockReturnValue(okAsync(codemods)),
getById: vi.fn(),
};
const result = await listCodemods(registry)();
expect(result.isOk()).toBe(true);
expect(registry.getAll).toHaveBeenCalledTimes(1);
});
it("propagates registry errors", async () => {
const error = new Error("boom");
const registry = {
getAll: vi.fn().mockReturnValue(errAsync(error)),
getById: vi.fn(),
};
const result = await listCodemods(registry)();
expect(result.isErr()).toBe(true);
if (result.isErr()) {
expect(result.error).toBe(error);
}
});
});