mirror of
https://github.com/pnpm/pnpm.git
synced 2026-07-25 23:17:08 -04:00
* feat: treat bare `workspace:` protocol as `workspace:*` * chore: add chageset * test(exportable-manifest): add test for `workspace` with explicit versions * test: add tests and update changesets --------- Co-authored-by: Zoltan Kochan <z@kochan.io>
32 lines
1.1 KiB
TypeScript
32 lines
1.1 KiB
TypeScript
import { resolveWorkspaceRange } from '@pnpm/resolve-workspace-range'
|
|
|
|
describe('resolveWorkspaceRange', () => {
|
|
const versions = ['1.0.0', '2.0.0', '3.0.0-beta.1']
|
|
|
|
test('resolves * to max version including prereleases', () => {
|
|
expect(resolveWorkspaceRange('*', versions)).toBe('3.0.0-beta.1')
|
|
})
|
|
|
|
test('resolves ^ to max version including prereleases', () => {
|
|
expect(resolveWorkspaceRange('^', versions)).toBe('3.0.0-beta.1')
|
|
})
|
|
|
|
test('resolves ~ to max version including prereleases', () => {
|
|
expect(resolveWorkspaceRange('~', versions)).toBe('3.0.0-beta.1')
|
|
})
|
|
|
|
test('resolves empty string (bare workspace:) to max version including prereleases', () => {
|
|
expect(resolveWorkspaceRange('', versions)).toBe('3.0.0-beta.1')
|
|
})
|
|
|
|
test('resolves semver range', () => {
|
|
expect(resolveWorkspaceRange('^1.0.0', versions)).toBe('1.0.0')
|
|
expect(resolveWorkspaceRange('^2.0.0', versions)).toBe('2.0.0')
|
|
expect(resolveWorkspaceRange('>=1.0.0', versions)).toBe('2.0.0')
|
|
})
|
|
|
|
test('returns null when no version satisfies range', () => {
|
|
expect(resolveWorkspaceRange('^4.0.0', versions)).toBeNull()
|
|
})
|
|
})
|