Skip to content

Commit 2fa5479

Browse files
authored
test(utils): Add additional tests for version helper functions (#562)
1 parent 413a603 commit 2fa5479

File tree

1 file changed

+25
-3
lines changed

1 file changed

+25
-3
lines changed

src/utils/__tests__/version.test.ts

Lines changed: 25 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,10 @@ describe('isValidVersion', () => {
4242
expect(isValidVersion('1.2.3rc1')).toBe(true);
4343
});
4444

45+
test('accepts valid Python-style post release version', () => {
46+
expect(isValidVersion('1.2.3-1')).toBe(true);
47+
});
48+
4549
test('does not accept leading "v"', () => {
4650
expect(isValidVersion('v1.2.3')).toBe(false);
4751
});
@@ -110,6 +114,17 @@ describe('parseVersion', () => {
110114
});
111115
});
112116

117+
test('parses a Python-style post release version', () => {
118+
expect(parseVersion('1.2.3-1')).toEqual({
119+
major: 1,
120+
minor: 2,
121+
patch: 3,
122+
// we misinterpret the post release number as `pre` but this is fine as we
123+
// have specific checks for what we consider a preview release
124+
pre: '1',
125+
});
126+
});
127+
113128
test('does not parse an invalid version', () => {
114129
expect(parseVersion('v1.2')).toBeNull();
115130
});
@@ -120,9 +135,12 @@ describe('parseVersion', () => {
120135
});
121136

122137
describe('isPreviewRelease', () => {
123-
test('accepts semver preview release', () => {
124-
expect(isPreviewRelease('2.3.4-preview1')).toBe(true);
125-
});
138+
test.each(['preview', 'pre', 'alpha.0', 'beta', 'rc.1', 'dev'])(
139+
'accepts semver preview release',
140+
previewSuffix => {
141+
expect(isPreviewRelease(`2.3.4-${previewSuffix}1`)).toBe(true);
142+
}
143+
);
126144

127145
test('accepts Python-style preview release', () => {
128146
expect(isPreviewRelease('2.3.4rc0')).toBe(true);
@@ -135,6 +153,10 @@ describe('isPreviewRelease', () => {
135153
test('does not accept non-release strings', () => {
136154
expect(isPreviewRelease('4-preview')).toBe(false);
137155
});
156+
157+
test('does not accept Python-style post release', () => {
158+
expect(isPreviewRelease('1.2.3-1')).toBe(false);
159+
});
138160
});
139161

140162
describe('versionGreaterOrEqualThan', () => {

0 commit comments

Comments
 (0)