77 lines
1.8 KiB
Plaintext
77 lines
1.8 KiB
Plaintext
import fs from "fs-extra";
|
|
import path from "path";
|
|
import parse from "@changesets/parse";
|
|
import writeChangeset from "./";
|
|
|
|
import humanId from "human-id";
|
|
import { testdir } from "@changesets/test-utils";
|
|
|
|
jest.mock("human-id");
|
|
|
|
describe("simple project", () => {
|
|
it("should write a changeset", async () => {
|
|
const cwd = await testdir({
|
|
"package.json": JSON.stringify({
|
|
private: true,
|
|
workspaces: ["packages/*"],
|
|
}),
|
|
"packages/pkg-a/package.json": JSON.stringify({
|
|
name: "pkg-a",
|
|
version: "1.0.0",
|
|
}),
|
|
});
|
|
|
|
const changesetID = "ascii";
|
|
// @ts-ignore
|
|
humanId.mockReturnValueOnce(changesetID);
|
|
|
|
await writeChangeset(
|
|
{
|
|
summary: "This is a summary",
|
|
releases: [{ name: "pkg-a", type: "minor" }],
|
|
},
|
|
cwd
|
|
);
|
|
|
|
const mdPath = path.join(cwd, ".changeset", `${changesetID}.md`);
|
|
const mdContent = await fs.readFile(mdPath, "utf-8");
|
|
|
|
expect(parse(mdContent)).toEqual({
|
|
summary: "This is a summary",
|
|
releases: [{ name: "pkg-a", type: "minor" }],
|
|
});
|
|
});
|
|
it("should write an empty changeset", async () => {
|
|
const cwd = await testdir({
|
|
"package.json": JSON.stringify({
|
|
private: true,
|
|
workspaces: ["packages/*"],
|
|
}),
|
|
"packages/pkg-a/package.json": JSON.stringify({
|
|
name: "pkg-a",
|
|
version: "1.0.0",
|
|
}),
|
|
});
|
|
|
|
const changesetID = "ascii";
|
|
// @ts-ignore
|
|
humanId.mockReturnValueOnce(changesetID);
|
|
|
|
await writeChangeset(
|
|
{
|
|
summary: "",
|
|
releases: [],
|
|
},
|
|
cwd
|
|
);
|
|
|
|
const mdPath = path.join(cwd, ".changeset", `${changesetID}.md`);
|
|
const mdContent = await fs.readFile(mdPath, "utf-8");
|
|
|
|
expect(parse(mdContent)).toEqual({
|
|
summary: "",
|
|
releases: [],
|
|
});
|
|
});
|
|
});
|