import { describe, expect, test } from "bun:test" import { validateReleasePleaseConfig } from "../src/release/config" describe("release-please config validation", () => { test("rejects upward-relative changelog paths", () => { const errors = validateReleasePleaseConfig({ packages: { ".": { "changelog-path": "CHANGELOG.md", }, "plugins/compound-engineering": { "changelog-path": "../../CHANGELOG.md", }, }, }) expect(errors).toHaveLength(1) expect(errors[0]).toContain('Package "plugins/compound-engineering"') expect(errors[0]).toContain("../../CHANGELOG.md") }) test("allows package-local changelog paths and skipped changelogs", () => { const errors = validateReleasePleaseConfig({ packages: { ".": { "changelog-path": "CHANGELOG.md", }, "plugins/compound-engineering": { "skip-changelog": true, }, ".claude-plugin": { "changelog-path": "CHANGELOG.md", }, }, }) expect(errors).toEqual([]) }) test("rejects checked-in release-as pins", () => { const errors = validateReleasePleaseConfig({ packages: { ".": { "release-as": "3.0.2", }, "plugins/compound-engineering": { "release-as": "3.0.2", }, }, }) expect(errors).toHaveLength(2) expect(errors[0]).toContain('Package "."') expect(errors[0]).toContain("release-as") expect(errors[1]).toContain('Package "plugins/compound-engineering"') expect(errors[1]).toContain("3.0.2") }) })