@@ -186,11 +186,34 @@ describe("release.config.cjs", () => {
186186 expect ( cfg . indexOf ( "@semantic-release/exec" ) ) . toBeLessThan (
187187 cfg . indexOf ( "semantic-release-catalog-notes.cjs" ) ,
188188 ) ;
189- expect ( cfg . indexOf ( "semantic -release-changelog.cjs " ) ) . toBeLessThan (
190- cfg . indexOf ( "@semantic-release/npm " ) ,
189+ expect ( cfg . indexOf ( "prepare -release-manifest " ) ) . toBeGreaterThan (
190+ cfg . indexOf ( "@semantic-release/exec " ) ,
191191 ) ;
192- expect ( cfg . indexOf ( "@semantic-release/npm" ) ) . toBeLessThan (
193- cfg . indexOf ( "@semantic-release/github" ) ,
192+ } ) ;
193+
194+ test ( "sets the manifest version from nextRelease before packing" , ( ) => {
195+ const cfg = read ( "release.config.cjs" ) ;
196+ expect ( cfg ) . toContain ( "prepare-release-manifest" ) ;
197+ expect ( cfg ) . toContain ( "nextRelease.version" ) ;
198+ expect ( cfg ) . toContain ( "prepareCmd" ) ;
199+ } ) ;
200+ } ) ;
201+
202+ describe ( "prepare-release-manifest.ts" , ( ) => {
203+ test ( "updates only pluginVersion from the release version" , ( ) => {
204+ const src = read ( "scripts/prepare-release-manifest.ts" ) ;
205+ expect ( src ) . toContain ( "withPluginVersion" ) ;
206+ expect ( src ) . toContain ( "process.argv" ) ;
207+ } ) ;
208+ } ) ;
209+
210+ describe ( "verify-manifest-version.ts" , ( ) => {
211+ test ( "guards the packed manifest against the package version" , ( ) => {
212+ const src = read ( "scripts/verify-manifest-version.ts" ) ;
213+ expect ( src ) . toContain ( "pluginVersion" ) ;
214+ expect ( src ) . toContain ( "process.exit" ) ;
215+ expect ( json < { scripts ?: Record < string , string > } > ( "package.json" ) . scripts ?. prepack ) . toContain (
216+ "verify-manifest-version" ,
194217 ) ;
195218 } ) ;
196219} ) ;
@@ -213,4 +236,9 @@ describe("verify-release-candidate.ts", () => {
213236 / \b (?: n p m | n p x | b u n ) \s + (?: p u b l i s h | l o g i n | a d d u s e r ) \b | \b g i t \s + (?: p u s h | t a g ) \b / ,
214237 ) ;
215238 } ) ;
239+
240+ test ( "rejects a packed manifest whose pluginVersion differs from package.json" , ( ) => {
241+ const src = read ( "scripts/verify-release-candidate.ts" ) ;
242+ expect ( src ) . toContain ( "pluginVersion" ) ;
243+ } ) ;
216244} ) ;
0 commit comments