/** * Tests for shell completion */ import { describe, expect, it } from 'bun:test'; import { getCompletions } from './completion'; describe('getCompletions', () => { it('completes top-level commands', async () => { const suggestions = await getCompletions(['m'], 0); expect(suggestions).toContain('module'); expect(suggestions).toContain('machine'); expect(suggestions).not.toContain('service'); }); it('completes service subcommands', async () => { const suggestions = await getCompletions(['service', 'v'], 1); expect(suggestions).toContain('verify'); expect(suggestions).not.toContain('add'); }); it('completes service add providers', async () => { const suggestions = await getCompletions(['service', 'add', 'p'], 2); expect(suggestions).toContain('proxmox'); expect(suggestions).not.toContain('digitalocean'); }); it('returns empty array for unknown context', async () => { const suggestions = await getCompletions(['unknown', 'command'], 2); expect(suggestions).toEqual([]); }); it('handles completion at different positions', async () => { const suggestions = await getCompletions(['module', 'li'], 1); expect(suggestions).toContain('list'); }); });