mirror of
https://github.com/alibaba/lowcode-engine.git
synced 2026-01-13 17:48:13 +00:00
51 lines
1.9 KiB
TypeScript
51 lines
1.9 KiB
TypeScript
import test from 'ava';
|
|
import type { ExecutionContext, Macro } from 'ava';
|
|
import { calcCompatibleVersion } from '../../src/utils/version';
|
|
|
|
const NO_COMPATIBLE_VERSIONS = /no compatible versions/;
|
|
|
|
const testCalcCompatibleVersion: Macro<any[]> = (
|
|
t: ExecutionContext<{}>,
|
|
input: [string | null | undefined, string | null | undefined],
|
|
expected: string,
|
|
error?: { message: RegExp },
|
|
) => {
|
|
if (!error) {
|
|
t.is(calcCompatibleVersion(input[0], input[1]), expected);
|
|
t.is(calcCompatibleVersion(input[1], input[0]), expected); // 应该满足交换律
|
|
} else {
|
|
t.throws(() => {
|
|
calcCompatibleVersion(input[0], input[1]);
|
|
}, error.message);
|
|
t.throws(() => {
|
|
calcCompatibleVersion(input[1], input[0]); // 应该满足交换律
|
|
}, error.message);
|
|
}
|
|
};
|
|
|
|
testCalcCompatibleVersion.title = (providedTitle: string | undefined, ...args: any[]): string => {
|
|
const [input, expected] = args;
|
|
return `calc compatible versions "${input[0]}" & "${input[1]}" should be "${expected}"`;
|
|
};
|
|
|
|
test(testCalcCompatibleVersion, ['*', '*'], '*');
|
|
test(testCalcCompatibleVersion, ['1.0.0', '1.0.0'], '1.0.0');
|
|
test(testCalcCompatibleVersion, ['^1.0.0', '^1.0.0'], '^1.0.0');
|
|
|
|
test(testCalcCompatibleVersion, ['*', undefined], '*');
|
|
|
|
test(testCalcCompatibleVersion, [undefined, undefined], '*');
|
|
|
|
test(testCalcCompatibleVersion, ['^1.0.0', undefined], '^1.0.0');
|
|
|
|
test(testCalcCompatibleVersion, ['*', '^1.0.0'], '^1.0.0');
|
|
test(testCalcCompatibleVersion, ['^1.0.0', '^1.0.2'], '^1.0.2');
|
|
test(testCalcCompatibleVersion, ['^1.2.0', '^1.1.2'], '^1.2.0');
|
|
test(testCalcCompatibleVersion, ['^1.0.0', '1.0.2'], '1.0.2');
|
|
|
|
test(testCalcCompatibleVersion, ['^0.2.0', '^0.1.2'], 'error', { message: NO_COMPATIBLE_VERSIONS });
|
|
|
|
test(testCalcCompatibleVersion, ['>0.2.0', '^0.1.2'], 'error', { message: NO_COMPATIBLE_VERSIONS });
|
|
|
|
test(testCalcCompatibleVersion, ['1.0.1', '1.0.2'], 'error', { message: NO_COMPATIBLE_VERSIONS });
|