Files
pnpm/completion/plugin-commands-completion/src/getShell.test.ts
Zoltan Kochan 1c8c4e49f5 style: add eslint-plugin-simple-import-sort (#10947)
Add eslint-plugin-simple-import-sort to enforce consistent import ordering:
- Node.js builtins first
- External packages second
- Relative imports last
- Named imports sorted alphabetically within each statement
2026-03-13 02:02:38 +01:00

38 lines
1.4 KiB
TypeScript

import { getShellFromParams, getShellFromString } from './getShell.js'
test('getShellFromString errors on undefined', () => {
expect(() => getShellFromString()).toThrow('`pnpm completion` requires a shell name')
})
test('getShellFromString errors on empty input', () => {
expect(() => getShellFromString('')).toThrow('`pnpm completion` requires a shell name')
})
test('getShellFromString errors on white space', () => {
expect(() => getShellFromString(' ')).toThrow('`pnpm completion` requires a shell name')
})
test('getShellFromString errors on unsupported shell', () => {
expect(() => getShellFromString('weird-shell-nobody-uses')).toThrow("'weird-shell-nobody-uses' is not supported")
})
test('getShellFromString returns supported shell as-is', () => {
expect(getShellFromString('bash')).toBe('bash')
})
test('getShellFromString trims whitespaces on support shell', () => {
expect(getShellFromString(' bash\n')).toBe('bash')
})
test('getShellFromParams errors on empty input', () => {
expect(() => getShellFromParams([])).toThrow('`pnpm completion` requires a shell name')
})
test('getShellFromParams errors on redundant parameters', () => {
expect(() => getShellFromParams(['bash', 'zsh', 'fish', 'pwsh'])).toThrow('The 3 parameters after shell is not necessary')
})
test('getShellFromParams returns supported shell', () => {
expect(getShellFromParams(['bash'])).toBe('bash')
})