@coveo/semantic-monorepo-tools
Version:
A library of helper functions to do SemVer2 compliant releases from Conventional Commits in monorepos
45 lines (39 loc) • 1.38 kB
text/typescript
jest.mock("semver");
import semver, { SemVer } from "semver";
import getNextVersion from "./getNextVersion.js";
describe("getNextVersion()", () => {
const initialTestVersion = new SemVer("1.2.3");
const mockedInc = jest.mocked(semver.inc);
afterEach(() => {
jest.resetAllMocks();
});
describe("when called with BumpInfoWithLevel", () => {
it.each([
[{ level: 0 }, "major"],
[{ level: 1 }, "minor"],
[{ level: 2 }, "patch"],
[{ level: 0, isPrerelease: false }, "major"],
[{ level: 1, isPrerelease: false }, "minor"],
[{ level: 2, isPrerelease: false }, "patch"],
[{ level: 0, isPrerelease: true }, "premajor"],
[{ level: 1, isPrerelease: true }, "preminor"],
[{ level: 2, isPrerelease: true }, "prepatch"],
] as const)(
"should call semver.inc with the good ReleaseType",
(params, expectedBumpInfo) => {
getNextVersion(initialTestVersion, params);
expect(mockedInc).toBeCalledWith(initialTestVersion, expectedBumpInfo);
},
);
});
describe("when called with BumpInfoWithType", () => {
it("should just act as proxy to semver.inc", () => {
getNextVersion(initialTestVersion, { type: "patch", preid: "foobarbaz" });
expect(mockedInc).toBeCalledWith(
initialTestVersion,
"patch",
"foobarbaz",
);
});
});
});