diff --git a/lib/modules/versioning/hashicorp/convertor.spec.ts b/lib/modules/versioning/hashicorp/convertor.spec.ts index bd3ed56e4748d7344b5c9f7e8d91f092ca8b3b81..c46be23ef5427e2f5f1274af24c63ce984b9b1a4 100644 --- a/lib/modules/versioning/hashicorp/convertor.spec.ts +++ b/lib/modules/versioning/hashicorp/convertor.spec.ts @@ -18,6 +18,7 @@ describe('modules/versioning/hashicorp/convertor', () => { ${'< 4.0'} | ${'<4.0'} ${'> 4.0, < 5.0'} | ${'>4.0 <5.0'} ${'~> 2.3.4'} | ${'~2.3.4'} + ${'0.1.0-beta.0'} | ${'0.1.0-beta.0'} `( 'hashicorp2npm("$hashicorp") === $npm && npm2hashicorp("$npm") === $hashicorp', ({ hashicorp, npm }) => { diff --git a/lib/modules/versioning/hashicorp/convertor.ts b/lib/modules/versioning/hashicorp/convertor.ts index 9f784f58f87829a15deeae215cf80a51d9eeca51..ffff6416d779a131cc6fc60fe8bbdc777f1abe60 100644 --- a/lib/modules/versioning/hashicorp/convertor.ts +++ b/lib/modules/versioning/hashicorp/convertor.ts @@ -14,7 +14,9 @@ export function hashicorp2npm(input: string): string { .split(',') .map((single) => { const r = single.match( - regEx(/^\s*(|=|!=|>|<|>=|<=|~>)\s*v?((\d+)(\.\d+){0,2}[\w-+]*)\s*$/) + regEx( + /^\s*(|=|!=|>|<|>=|<=|~>)\s*v?((\d+)(\.\d+){0,2}[\w-+]*(\.\d+)*)\s*$/ + ) ); if (!r) { logger.warn( @@ -64,7 +66,7 @@ export function npm2hashicorp(input: string): string { .split(' ') .map((single) => { const r = single.match( - regEx(/^(|>|<|>=|<=|~|\^)v?((\d+)(\.\d+){0,2}[\w-]*)$/) + regEx(/^(|>|<|>=|<=|~|\^)v?((\d+)(\.\d+){0,2}[\w-]*(\.\d+)*)$/) ); if (!r) { throw new Error('invalid npm constraint'); diff --git a/lib/modules/versioning/hashicorp/index.spec.ts b/lib/modules/versioning/hashicorp/index.spec.ts index cc6bcede70c377b0e5b3bf8be7826febd9dc3e5f..f1eae889e34a98b4e004dd5966829b44e453ac09 100644 --- a/lib/modules/versioning/hashicorp/index.spec.ts +++ b/lib/modules/versioning/hashicorp/index.spec.ts @@ -36,6 +36,7 @@ describe('modules/versioning/hashicorp/index', () => { ${'>=4.1'} | ${true} ${'<=4.1.2'} | ${true} ${''} | ${false} + ${'0.1.0-beta.0'} | ${true} `('isValid("$input") === $expected', ({ input, expected }) => { const res = !!semver.isValid(input); expect(res).toBe(expected);