|
| 1 | +import { expect, describe, it } from 'vitest'; |
| 2 | +import { splitVersion, isVersionUnsupportedBelow } from '../common.ts'; |
| 3 | + |
| 4 | +describe('versionSplit', () => { |
| 5 | + const combinationsVersionSplit = [ |
| 6 | + { version: '18.13.0', expected: { major: 18, minor: 13, patch: 0 } }, |
| 7 | + { version: 'x.13.0', expected: { major: undefined, minor: 13, patch: 0 } }, |
| 8 | + { version: '18.y.0', expected: { major: 18, minor: undefined, patch: 0 } }, |
| 9 | + { version: '18.13.z', expected: { major: 18, minor: 13, patch: undefined } }, |
| 10 | + { version: '18', expected: { major: 18, minor: undefined, patch: undefined } }, |
| 11 | + { version: '18.13', expected: { major: 18, minor: 13, patch: undefined } }, |
| 12 | + { version: 'invalid', expected: { major: undefined, minor: undefined, patch: undefined } } |
| 13 | + ]; |
| 14 | + it.each(combinationsVersionSplit)( |
| 15 | + 'should return the correct version for $version', |
| 16 | + ({ version, expected }) => { |
| 17 | + expect(splitVersion(version)).toEqual(expected); |
| 18 | + } |
| 19 | + ); |
| 20 | +}); |
| 21 | + |
| 22 | +describe('minimumRequirement', () => { |
| 23 | + const combinationsMinimumRequirement = [ |
| 24 | + { version: '17', below: '18.3.0', expected: true }, |
| 25 | + { version: '18.2', below: '18.3.0', expected: true }, |
| 26 | + { version: '18.3.0', below: '18.3.1', expected: true }, |
| 27 | + { version: '18.3.1', below: '18.3.0', expected: false }, |
| 28 | + { version: '18.3.0', below: '18.3.0', expected: false }, |
| 29 | + { version: '18.3.0', below: '18.3', expected: false }, |
| 30 | + { version: '18.3.1', below: '18.3', expected: false }, |
| 31 | + { version: '18.3.1', below: '18', expected: false }, |
| 32 | + { version: '18', below: '18', expected: false }, |
| 33 | + { version: 'a', below: 'b', expected: undefined }, |
| 34 | + { version: '18.3', below: '18.3', expected: false }, |
| 35 | + { version: '18.4', below: '18.3', expected: false }, |
| 36 | + { version: '18.2', below: '18.3', expected: true }, |
| 37 | + |
| 38 | + // if it's undefined, we can't say anything... |
| 39 | + { version: undefined!, below: '18.3', expected: undefined }, |
| 40 | + { version: '', below: '18.3', expected: undefined } |
| 41 | + ] as const; |
| 42 | + it.each(combinationsMinimumRequirement)( |
| 43 | + '($version below $below) should be $expected', |
| 44 | + ({ version, below, expected }) => { |
| 45 | + expect(isVersionUnsupportedBelow(version, below)).toEqual(expected); |
| 46 | + } |
| 47 | + ); |
| 48 | +}); |
0 commit comments