11import fs from 'fs'
2+ import { join } from 'path'
23
34import { outdent } from 'outdent'
45
@@ -9,6 +10,13 @@ import {
910
1011jest . mock ( 'fs' )
1112
13+ const CHANGELOG_FILE_PATH = join (
14+ import . meta. dirname ,
15+ '..' ,
16+ '..' ,
17+ 'CHANGELOG.md'
18+ )
19+
1220describe ( 'Changelog release helper' , ( ) => {
1321 beforeEach ( ( ) => {
1422 jest . mocked ( fs . readFileSync ) . mockReturnValue ( `
@@ -26,15 +34,15 @@ describe('Changelog release helper', () => {
2634 it ( 'adds a new heading to the changelog for the new version' , ( ) => {
2735 updateChangelog ( '3.1.0' , '3.0.0' )
2836 expect ( fs . writeFileSync ) . toHaveBeenCalledWith (
29- './CHANGELOG.md' ,
37+ CHANGELOG_FILE_PATH ,
3038 expect . stringContaining ( '## v3.1.0 (Feature release)' )
3139 )
3240 } )
3341
3442 it ( 'prefixes a new heading with a pre-release identifier if the new version is a pre-release' , ( ) => {
3543 updateChangelog ( '3.1.0-beta.0' , '3.0.0' )
3644 expect ( fs . writeFileSync ) . toHaveBeenCalledWith (
37- './CHANGELOG.md' ,
45+ CHANGELOG_FILE_PATH ,
3846 expect . stringContaining ( '## v3.1.0-beta.0 (Beta feature release)' )
3947 )
4048 } )
@@ -52,7 +60,7 @@ describe('Changelog release helper', () => {
5260
5361 updateChangelog ( '3.1.0-beta.1' , '3.1.0-beta.0' )
5462 expect ( fs . writeFileSync ) . toHaveBeenCalledWith (
55- './CHANGELOG.md' ,
63+ CHANGELOG_FILE_PATH ,
5664 expect . stringContaining ( '## v3.1.0-beta.1 (Beta feature release)' )
5765 )
5866 } )
@@ -70,7 +78,7 @@ describe('Changelog release helper', () => {
7078
7179 updateChangelog ( '3.1.0-beta.1' , '3.1.0-beta.0' )
7280 expect ( fs . writeFileSync ) . toHaveBeenCalledWith (
73- './CHANGELOG.md' ,
81+ CHANGELOG_FILE_PATH ,
7482 expect . stringContaining ( outdent `
7583 ## v3.1.0-beta.1 (Beta feature release)
7684 > [!WARNING]
@@ -79,7 +87,7 @@ describe('Changelog release helper', () => {
7987 ` )
8088 )
8189 expect ( fs . writeFileSync ) . toHaveBeenCalledWith (
82- './CHANGELOG.md' ,
90+ CHANGELOG_FILE_PATH ,
8391 expect . stringContaining ( 'To install this version with npm' )
8492 )
8593 } )
@@ -97,7 +105,7 @@ describe('Changelog release helper', () => {
97105
98106 updateChangelog ( '3.1.1' , '3.1.0' )
99107 expect ( fs . writeFileSync ) . not . toHaveBeenCalledWith (
100- './CHANGELOG.md' ,
108+ CHANGELOG_FILE_PATH ,
101109 expect . stringContaining ( '> [!WARNING]' )
102110 )
103111 } )
@@ -115,7 +123,7 @@ describe('Changelog release helper', () => {
115123
116124 updateChangelog ( '3.1.1' , '3.1.0' )
117125 expect ( fs . writeFileSync ) . toHaveBeenCalledWith (
118- './CHANGELOG.md' ,
126+ CHANGELOG_FILE_PATH ,
119127 expect . stringContaining ( outdent `
120128 ## v3.1.1 (Fix release)
121129 To install this version with npm, run \`npm install govuk-frontend@3.1.1\`. You can also find more information about [how to stay up to date](https://frontend.design-system.service.gov.uk/staying-up-to-date/#updating-to-the-latest-version) in our documentation.
0 commit comments