@@ -271,5 +271,71 @@ packages:
271271 expect ( dockerConfig ?. tags ) . toEqual ( [ 'latest' , '{version}' ] ) ;
272272 expect ( dockerConfig ?. devTags ) . toEqual ( [ 'dev' , '{version}' ] ) ;
273273 } ) ;
274+
275+ test ( 'applies default versionFiles settings' , ( ) => {
276+ const config = applyDefaults ( { } ) ;
277+
278+ expect ( config . versionFiles . enabled ) . toBe ( false ) ;
279+ expect ( config . versionFiles . files ) . toEqual ( [ ] ) ;
280+ expect ( config . versionFiles . updateOn . stable ) . toBe ( true ) ;
281+ expect ( config . versionFiles . updateOn . dev ) . toBe ( false ) ;
282+ expect ( config . versionFiles . updateOn . alpha ) . toBe ( false ) ;
283+ expect ( config . versionFiles . updateOn . beta ) . toBe ( false ) ;
284+ expect ( config . versionFiles . updateOn . rc ) . toBe ( false ) ;
285+ } ) ;
286+
287+ test ( 'applies default versionFiles.updateOn when enabled without updateOn' , ( ) => {
288+ const config = applyDefaults ( {
289+ versionFiles : {
290+ enabled : true ,
291+ files : [ { file : 'README.md' , pattern : 'v[0-9]+' , replace : 'v{major}' } ] ,
292+ } ,
293+ } ) ;
294+
295+ expect ( config . versionFiles . enabled ) . toBe ( true ) ;
296+ expect ( config . versionFiles . files ) . toHaveLength ( 1 ) ;
297+ // updateOn should use defaults
298+ expect ( config . versionFiles . updateOn . stable ) . toBe ( true ) ;
299+ expect ( config . versionFiles . updateOn . dev ) . toBe ( false ) ;
300+ expect ( config . versionFiles . updateOn . alpha ) . toBe ( false ) ;
301+ expect ( config . versionFiles . updateOn . beta ) . toBe ( false ) ;
302+ expect ( config . versionFiles . updateOn . rc ) . toBe ( false ) ;
303+ } ) ;
304+
305+ test ( 'preserves user-provided versionFiles.updateOn values' , ( ) => {
306+ const config = applyDefaults ( {
307+ versionFiles : {
308+ enabled : true ,
309+ updateOn : {
310+ stable : true ,
311+ rc : true ,
312+ // dev, alpha, beta not specified - should default to false
313+ } ,
314+ files : [ { file : 'README.md' , pattern : 'v[0-9]+' , replace : 'v{major}' } ] ,
315+ } ,
316+ } ) ;
317+
318+ expect ( config . versionFiles . updateOn . stable ) . toBe ( true ) ;
319+ expect ( config . versionFiles . updateOn . rc ) . toBe ( true ) ;
320+ expect ( config . versionFiles . updateOn . dev ) . toBe ( false ) ;
321+ expect ( config . versionFiles . updateOn . alpha ) . toBe ( false ) ;
322+ expect ( config . versionFiles . updateOn . beta ) . toBe ( false ) ;
323+ } ) ;
324+
325+ test ( 'allows disabling stable in versionFiles.updateOn' , ( ) => {
326+ const config = applyDefaults ( {
327+ versionFiles : {
328+ enabled : true ,
329+ updateOn : {
330+ stable : false ,
331+ dev : true ,
332+ } ,
333+ files : [ { file : 'README.md' , pattern : 'v[0-9]+' , replace : 'v{major}' } ] ,
334+ } ,
335+ } ) ;
336+
337+ expect ( config . versionFiles . updateOn . stable ) . toBe ( false ) ;
338+ expect ( config . versionFiles . updateOn . dev ) . toBe ( true ) ;
339+ } ) ;
274340 } ) ;
275341} ) ;
0 commit comments