Skip to content

Commit 34e4b86

Browse files
committed
Fix case where no tags does not trigger false
1 parent e9514b4 commit 34e4b86

File tree

4 files changed

+36
-12
lines changed

4 files changed

+36
-12
lines changed

action/index.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/jest.setup.js

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,4 +26,24 @@ expect.extend({
2626
pass,
2727
};
2828
},
29+
30+
toBeParsableToANumber(received) {
31+
let pass = false;
32+
let errorMessage = '';
33+
34+
try {
35+
Number.parseInt(received, 10);
36+
pass = true;
37+
} catch (error) {
38+
errorMessage = error;
39+
}
40+
41+
const message = () => `Expected ${this.utils.printExpected(received)} to be parsable as a number
42+
, but received error: ${this.utils.printReceived(errorMessage)}.`;
43+
44+
return {
45+
message,
46+
pass,
47+
};
48+
},
2949
});

src/model/system.test.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,5 +44,13 @@ describe('System', () => {
4444
expect(info).toHaveBeenCalledTimes(2);
4545
expect(info).toHaveBeenLastCalledWith('3\n');
4646
});
47+
48+
it('allows pipes using buffer', async () => {
49+
await expect(
50+
System.run('sh', undefined, {
51+
input: Buffer.from('git tag --list --merged HEAD | grep v[0-9]* | wc -l'),
52+
}),
53+
).resolves.toBeParsableToANumber();
54+
});
4755
});
4856
});

src/model/versioning.js

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -183,18 +183,14 @@ export default class Versioning {
183183
* Whether or not the repository has any version tags yet.
184184
*/
185185
static async hasAnyVersionTags() {
186-
const numberOfVersionCommits = await System.run('git', [
187-
'tag',
188-
'--list',
189-
'--merged',
190-
'HEAD',
191-
'|',
192-
'grep v[0-9]*',
193-
'|',
194-
'wc -l',
195-
]);
186+
const numberOfCommitsAsString = await System.run('sh', undefined, {
187+
input: Buffer.from('git tag --list --merged HEAD | grep v[0-9]* | wc -l'),
188+
silent: false,
189+
});
190+
191+
const numberOfCommits = Number.parseInt(numberOfCommitsAsString, 10);
196192

197-
return numberOfVersionCommits !== '0';
193+
return numberOfCommits !== 0;
198194
}
199195

200196
/**

0 commit comments

Comments
 (0)