/** * @license * Copyright Google LLC All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.dev/license */ import {compareNumbers, compareVersions, isVersionBetween, toNumbers} from '../src/version_helpers'; describe('toNumbers', () => { it('should handle strings', () => { expect(toNumbers('2')).toEqual([2]); expect(toNumbers('2.1')).toEqual([2, 1]); expect(toNumbers('2.0.1')).toEqual([2, 0, 1]); }); }); describe('compareNumbers', () => { it('should handle empty arrays', () => { expect(compareNumbers([], [])).toEqual(0); }); it('should handle arrays of same length', () => { expect(compareNumbers([1], [3])).toEqual(-1); expect(compareNumbers([3], [1])).toEqual(1); expect(compareNumbers([1, 0], [1, 0])).toEqual(0); expect(compareNumbers([1, 1], [1, 0])).toEqual(1); expect(compareNumbers([1, 0], [1, 1])).toEqual(-1); expect(compareNumbers([1, 0, 9], [1, 1, 0])).toEqual(-1); expect(compareNumbers([1, 1, 0], [1, 0, 9])).toEqual(1); }); it('should handle arrays of different length', () => { expect(compareNumbers([2], [2, 1])).toEqual(-1); expect(compareNumbers([2, 1], [2])).toEqual(1); expect(compareNumbers([0, 9], [1])).toEqual(-1); expect(compareNumbers([1], [0, 9])).toEqual(1); expect(compareNumbers([2], [])).toEqual(1); expect(compareNumbers([], [2])).toEqual(-1); expect(compareNumbers([1, 0], [1, 0, 0, 0])).toEqual(0); }); }); describe('isVersionBetween', () => { it('should correctly check if a typescript version is within a given range', () => { expect(isVersionBetween('2.7.0', '2.40')).toEqual(false); expect(isVersionBetween('2.40', '2.7.0')).toEqual(true); expect(isVersionBetween('2.7.2', '2.7.0', '2.8.0')).toEqual(true); expect(isVersionBetween('2.7.2', '2.7.7', '2.8.0')).toEqual(false); }); }); describe('compareVersions', () => { it('should correctly compare versions', () => { expect(compareVersions('2.7.0', '2.40')).toEqual(-1); expect(compareVersions('2.40', '2.7.0')).toEqual(1); expect(compareVersions('2.40', '2.40')).toEqual(0); expect(compareVersions('2.40', '2.41')).toEqual(-1); expect(compareVersions('2', '2.1')).toEqual(-1); }); });