mirror of
https://github.com/better-auth/better-auth.git
synced 2026-10-19 11:24:57 -05:00
65 lines
2.0 KiB
TypeScript
65 lines
2.0 KiB
TypeScript
import { describe, expect, it } from "vitest";
|
|
import {
|
|
classifyChangeType,
|
|
isMaintenanceBranch,
|
|
mapTypeToBump,
|
|
resolveDomain,
|
|
resolvePackage,
|
|
} from "../src/change-classifier.ts";
|
|
|
|
describe("change classification", () => {
|
|
it("recognizes versioned maintenance branches", () => {
|
|
expect(isMaintenanceBranch("v1.6.x")).toBe(true);
|
|
expect(isMaintenanceBranch("v1.6.30")).toBe(false);
|
|
expect(isMaintenanceBranch("v1.4.x-staging")).toBe(false);
|
|
expect(isMaintenanceBranch("release/1.6")).toBe(false);
|
|
});
|
|
|
|
it.each([
|
|
["sso", "enterprise"],
|
|
["expo", "platform"],
|
|
["session", "core"],
|
|
["prisma-adapter", "database"],
|
|
])("maps the %s scope to the %s domain", (scope, domain) => {
|
|
expect(resolveDomain(scope, [])).toBe(domain);
|
|
});
|
|
|
|
it.each([
|
|
["packages/expo/src/index.ts", "platform"],
|
|
["packages/sso/src/index.ts", "enterprise"],
|
|
["packages/better-auth/src/db/index.ts", "database"],
|
|
["docs/content/docs/index.mdx", "docs"],
|
|
])("maps %s to the %s domain", (path, domain) => {
|
|
expect(resolveDomain(undefined, [path])).toBe(domain);
|
|
});
|
|
|
|
it.each([
|
|
["expo", "@better-auth/expo"],
|
|
["sso", "@better-auth/sso"],
|
|
["cli", "auth"],
|
|
["session", "better-auth"],
|
|
])("maps the %s scope to the %s package", (scope, packageName) => {
|
|
expect(resolvePackage(scope, [])).toBe(packageName);
|
|
});
|
|
|
|
it("prefers a specific package over the core catch-all", () => {
|
|
expect(
|
|
resolvePackage(undefined, [
|
|
"packages/better-auth/src/index.ts",
|
|
"packages/expo/src/index.ts",
|
|
]),
|
|
).toBe("@better-auth/expo");
|
|
});
|
|
|
|
it("classifies semver and release-note change types", () => {
|
|
expect(mapTypeToBump("feat", false)).toBe("minor");
|
|
expect(mapTypeToBump("fix", false)).toBe("patch");
|
|
expect(mapTypeToBump("docs", false)).toBe("skip");
|
|
expect(mapTypeToBump("fix", true)).toBe("minor");
|
|
|
|
expect(classifyChangeType("feat", false)).toBe("feat");
|
|
expect(classifyChangeType("fix", false)).toBe("fix");
|
|
expect(classifyChangeType("fix", true)).toBe("breaking");
|
|
});
|
|
});
|