Skip to content

Commit 5f62443

Browse files
authored
fix(release-pr): update default initial version (googleapis#776)
1 parent 660f8e9 commit 5f62443

3 files changed

Lines changed: 84 additions & 57 deletions

File tree

__snapshots__/node.js

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,19 @@ exports['Node run uses detected package name in branch 1'] = `
8181
]
8282
`
8383

84-
exports['Node getOpenPROptions returns release PR changes with defaultInitialVersion 1'] = `
84+
exports['Node getOpenPROptions returns release PR changes with semver patch bump 1'] = `
85+
### [0.123.5](https://www.github.com/googleapis/node-test-repo/compare/v0.123.4...v0.123.5) (1983-10-10)
86+
87+
88+
### Bug Fixes
89+
90+
* **deps:** update dependency com.google.cloud:google-cloud-spanner to v1.50.0 ([08ca011](https://www.github.com/googleapis/node-test-repo/commit/08ca01180a91c0a1ba8992b491db9212))
91+
* **deps:** update dependency com.google.cloud:google-cloud-storage to v1.120.0 ([845db13](https://www.github.com/googleapis/node-test-repo/commit/845db1381b3d5d20151cad2588f85feb))
92+
---
93+
94+
`
95+
96+
exports['Node getOpenPROptions returns release PR changes with defaultInitialVersion 1.0.0, when bumpMinorPreMajor is false 1'] = `
8597
## 1.0.0 (1983-10-10)
8698
8799
@@ -93,8 +105,8 @@ exports['Node getOpenPROptions returns release PR changes with defaultInitialVer
93105
94106
`
95107

96-
exports['Node getOpenPROptions returns release PR changes with semver patch bump 1'] = `
97-
### [0.123.5](https://www.github.com/googleapis/node-test-repo/compare/v0.123.4...v0.123.5) (1983-10-10)
108+
exports['Node getOpenPROptions returns release PR changes with defaultInitialVersion 0.1.0, when bumpMinorPreMajor is true 1'] = `
109+
## 0.1.0 (1983-10-10)
98110
99111
100112
### Bug Fixes

src/release-pr.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,7 @@ export class ReleasePR {
177177
}
178178

179179
protected defaultInitialVersion(): string {
180-
return '1.0.0';
180+
return this.bumpMinorPreMajor ? '0.1.0' : '1.0.0';
181181
}
182182

183183
tagSeparator(): string {

test/releasers/node.ts

Lines changed: 68 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -75,61 +75,76 @@ describe('Node', () => {
7575
sandbox.restore();
7676
});
7777
describe('getOpenPROptions', () => {
78-
it('returns release PR changes with defaultInitialVersion', async () => {
79-
const expectedVersion = '1.0.0';
80-
const pkgName = 'node-test-repo';
81-
const releasePR = new Node({
82-
github: new GitHub({owner: 'googleapis', repo: 'node-test-repo'}),
83-
});
84-
mockRequest(releasePR);
85-
// for Node.getPackageName
86-
stubFilesToUpdate(releasePR.gh, ['package.json']);
87-
88-
// no latestTag to pass to getOpenPROptions (never found a release)
89-
// releaser should set defaultInitialVersion
90-
const openPROptions = await releasePR.getOpenPROptions(COMMITS);
91-
92-
expect(openPROptions).to.not.be.undefined;
93-
expect(openPROptions).to.have.property('sha').equal(COMMITS[0].sha);
94-
expect(openPROptions).to.have.property('version').equal(expectedVersion);
95-
expect(openPROptions).to.have.property('includePackageName').to.be.false;
96-
expect(openPROptions).to.have.property('changelogEntry');
97-
98-
snapshot(dateSafe(openPROptions!.changelogEntry));
99-
100-
const perUpdateChangelog = openPROptions!.changelogEntry.substring(
101-
0,
102-
openPROptions!.changelogEntry.length - 5 // no trailing "\n---\n"
78+
const testDefaultInitialVersion = [
79+
{version: '1.0.0', bumpMinorPreMajor: false},
80+
{version: '0.1.0', bumpMinorPreMajor: true},
81+
];
82+
testDefaultInitialVersion.forEach(element => {
83+
it(
84+
`returns release PR changes with defaultInitialVersion ${element.version}, ` +
85+
`when bumpMinorPreMajor is ${element.bumpMinorPreMajor}`,
86+
async () => {
87+
const expectedVersion = element.version;
88+
const pkgName = 'node-test-repo';
89+
const releasePR = new Node({
90+
github: new GitHub({owner: 'googleapis', repo: 'node-test-repo'}),
91+
bumpMinorPreMajor: element.bumpMinorPreMajor,
92+
});
93+
mockRequest(releasePR);
94+
// for Node.getPackageName
95+
stubFilesToUpdate(releasePR.gh, ['package.json']);
96+
97+
// no latestTag to pass to getOpenPROptions (never found a release)
98+
// releaser should set defaultInitialVersion
99+
const openPROptions = await releasePR.getOpenPROptions(COMMITS);
100+
101+
expect(openPROptions).to.not.be.undefined;
102+
expect(openPROptions).to.have.property('sha').equal(COMMITS[0].sha);
103+
expect(openPROptions)
104+
.to.have.property('version')
105+
.equal(expectedVersion);
106+
expect(openPROptions).to.have.property('includePackageName').to.be
107+
.false;
108+
expect(openPROptions).to.have.property('changelogEntry');
109+
110+
snapshot(dateSafe(openPROptions!.changelogEntry));
111+
112+
const perUpdateChangelog = openPROptions!.changelogEntry.substring(
113+
0,
114+
openPROptions!.changelogEntry.length - 5 // no trailing "\n---\n"
115+
);
116+
expect(openPROptions)
117+
.to.have.property('updates')
118+
.to.eql([
119+
new PackageJson({
120+
path: 'package-lock.json',
121+
changelogEntry: perUpdateChangelog,
122+
version: expectedVersion,
123+
packageName: pkgName,
124+
}),
125+
new SamplesPackageJson({
126+
path: 'samples/package.json',
127+
changelogEntry: perUpdateChangelog,
128+
version: expectedVersion,
129+
packageName: pkgName,
130+
}),
131+
new Changelog({
132+
path: 'CHANGELOG.md',
133+
changelogEntry: perUpdateChangelog,
134+
version: expectedVersion,
135+
packageName: pkgName,
136+
}),
137+
new PackageJson({
138+
path: 'package.json',
139+
changelogEntry: perUpdateChangelog,
140+
version: expectedVersion,
141+
packageName: pkgName,
142+
}),
143+
]);
144+
}
103145
);
104-
expect(openPROptions)
105-
.to.have.property('updates')
106-
.to.eql([
107-
new PackageJson({
108-
path: 'package-lock.json',
109-
changelogEntry: perUpdateChangelog,
110-
version: expectedVersion,
111-
packageName: pkgName,
112-
}),
113-
new SamplesPackageJson({
114-
path: 'samples/package.json',
115-
changelogEntry: perUpdateChangelog,
116-
version: expectedVersion,
117-
packageName: pkgName,
118-
}),
119-
new Changelog({
120-
path: 'CHANGELOG.md',
121-
changelogEntry: perUpdateChangelog,
122-
version: expectedVersion,
123-
packageName: pkgName,
124-
}),
125-
new PackageJson({
126-
path: 'package.json',
127-
changelogEntry: perUpdateChangelog,
128-
version: expectedVersion,
129-
packageName: pkgName,
130-
}),
131-
]);
132146
});
147+
133148
it('returns release PR changes with semver patch bump', async () => {
134149
const expectedVersion = '0.123.5';
135150
const pkgName = 'node-test-repo';

0 commit comments

Comments
 (0)