@@ -7213,6 +7213,108 @@ version = "3.0.0"
72137213 expect ( releases [ 0 ] . tag . toString ( ) ) . to . eql ( 'release-brancher-v1.3.1' ) ;
72147214 } ) ;
72157215
7216+ it ( 'should build prerelease releases when forcePrerelease is true' , async ( ) => {
7217+ mockPullRequests (
7218+ github ,
7219+ [ ] ,
7220+ [
7221+ {
7222+ headBranchName : 'release-please/branches/main' ,
7223+ baseBranchName : 'main' ,
7224+ number : 1234 ,
7225+ title : 'chore: release main' ,
7226+ body : pullRequestBody (
7227+ 'release-notes/single-manifest-pre-major.txt'
7228+ ) ,
7229+ labels : [ 'autorelease: pending' ] ,
7230+ files : [ '' ] ,
7231+ sha : 'abc123' ,
7232+ } ,
7233+ ]
7234+ ) ;
7235+ const getFileContentsStub = sandbox . stub (
7236+ github ,
7237+ 'getFileContentsOnBranch'
7238+ ) ;
7239+ getFileContentsStub
7240+ . withArgs ( 'package.json' , 'main' )
7241+ . resolves (
7242+ buildGitHubFileRaw (
7243+ JSON . stringify ( { name : '@google-cloud/release-brancher' } )
7244+ )
7245+ ) ;
7246+ const manifest = new Manifest (
7247+ github ,
7248+ 'main' ,
7249+ {
7250+ '.' : {
7251+ releaseType : 'node' ,
7252+ prerelease : true ,
7253+ forcePrerelease : true ,
7254+ } ,
7255+ } ,
7256+ {
7257+ '.' : Version . parse ( '0.1.0' ) ,
7258+ }
7259+ ) ;
7260+ const releases = await manifest . buildReleases ( ) ;
7261+ expect ( releases ) . lengthOf ( 1 ) ;
7262+ expect ( releases [ 0 ] . name ) . to . eql ( 'release-brancher: v0.2.0' ) ;
7263+ expect ( releases [ 0 ] . draft ) . to . be . undefined ;
7264+ expect ( releases [ 0 ] . prerelease ) . to . be . true ;
7265+ expect ( releases [ 0 ] . tag . toString ( ) ) . to . eql ( 'release-brancher-v0.2.0' ) ;
7266+ } ) ;
7267+
7268+ it ( 'should build prerelease releases from non-prerelease when forcePrerelease is true' , async ( ) => {
7269+ mockPullRequests (
7270+ github ,
7271+ [ ] ,
7272+ [
7273+ {
7274+ headBranchName : 'release-please/branches/main' ,
7275+ baseBranchName : 'main' ,
7276+ number : 1234 ,
7277+ title : 'chore: release main' ,
7278+ body : pullRequestBody ( 'release-notes/single-manifest.txt' ) ,
7279+ labels : [ 'autorelease: pending' ] ,
7280+ files : [ '' ] ,
7281+ sha : 'abc123' ,
7282+ } ,
7283+ ]
7284+ ) ;
7285+ const getFileContentsStub = sandbox . stub (
7286+ github ,
7287+ 'getFileContentsOnBranch'
7288+ ) ;
7289+ getFileContentsStub
7290+ . withArgs ( 'package.json' , 'main' )
7291+ . resolves (
7292+ buildGitHubFileRaw (
7293+ JSON . stringify ( { name : '@google-cloud/release-brancher' } )
7294+ )
7295+ ) ;
7296+ const manifest = new Manifest (
7297+ github ,
7298+ 'main' ,
7299+ {
7300+ '.' : {
7301+ releaseType : 'node' ,
7302+ prerelease : true ,
7303+ forcePrerelease : true ,
7304+ } ,
7305+ } ,
7306+ {
7307+ '.' : Version . parse ( '1.3.0' ) ,
7308+ }
7309+ ) ;
7310+ const releases = await manifest . buildReleases ( ) ;
7311+ expect ( releases ) . lengthOf ( 1 ) ;
7312+ expect ( releases [ 0 ] . name ) . to . eql ( 'release-brancher: v1.3.1' ) ;
7313+ expect ( releases [ 0 ] . draft ) . to . be . undefined ;
7314+ expect ( releases [ 0 ] . prerelease ) . to . be . true ;
7315+ expect ( releases [ 0 ] . tag . toString ( ) ) . to . eql ( 'release-brancher-v1.3.1' ) ;
7316+ } ) ;
7317+
72167318 it ( 'should skip component in tag' , async ( ) => {
72177319 mockPullRequests (
72187320 github ,
0 commit comments