26 lines
1019 B
TypeScript
26 lines
1019 B
TypeScript
import { describe, expect, it } from 'vitest'
|
|
import {
|
|
compareAppVersions,
|
|
isPerfPrereleaseAppVersion,
|
|
isPrereleaseAppVersion,
|
|
isValidAppVersion
|
|
} from './app-version'
|
|
|
|
describe('app version comparison', () => {
|
|
it('compares stable and prerelease versions with semver precedence', () => {
|
|
expect(compareAppVersions('1.4.9', '1.5.0')).toBeLessThan(0)
|
|
expect(compareAppVersions('1.5.0-rc.2', '1.5.0-rc.10')).toBeLessThan(0)
|
|
expect(compareAppVersions('1.5.0-rc.10', '1.5.0')).toBeLessThan(0)
|
|
expect(compareAppVersions('v1.5.0+build.2', '1.5.0+build.9')).toBe(0)
|
|
})
|
|
|
|
it('rejects incomplete versions and identifies prereleases', () => {
|
|
expect(isValidAppVersion('1.5')).toBe(false)
|
|
expect(isValidAppVersion('1.5.0')).toBe(true)
|
|
expect(isPrereleaseAppVersion('1.5.0-rc.1')).toBe(true)
|
|
expect(isPrereleaseAppVersion('1.5.0')).toBe(false)
|
|
expect(isPerfPrereleaseAppVersion('1.5.0-rc.1.perf')).toBe(true)
|
|
expect(isPerfPrereleaseAppVersion('1.5.0-rc.1')).toBe(false)
|
|
})
|
|
})
|