package genautocomplete import ( "os" "testing" "github.com/stretchr/testify/assert" ) func TestCompletionBash(t *testing.T) { tempFile, err := os.CreateTemp("", "completion_bash") assert.NoError(t, err) defer func() { _ = tempFile.Close() _ = os.Remove(tempFile.Name()) }() bashCommandDefinition.Run(bashCommandDefinition, []string{tempFile.Name()}) bs, err := os.ReadFile(tempFile.Name()) assert.NoError(t, err) assert.NotEmpty(t, string(bs)) } func TestCompletionBashStdout(t *testing.T) { originalStdout := os.Stdout tempFile, err := os.CreateTemp("", "completion_zsh") assert.NoError(t, err) defer func() { _ = tempFile.Close() _ = os.Remove(tempFile.Name()) }() os.Stdout = tempFile defer func() { os.Stdout = originalStdout }() bashCommandDefinition.Run(bashCommandDefinition, []string{"-"}) output, err := os.ReadFile(tempFile.Name()) assert.NoError(t, err) assert.NotEmpty(t, string(output)) } func TestCompletionZsh(t *testing.T) { tempFile, err := os.CreateTemp("", "completion_zsh") assert.NoError(t, err) defer func() { _ = tempFile.Close() _ = os.Remove(tempFile.Name()) }() zshCommandDefinition.Run(zshCommandDefinition, []string{tempFile.Name()}) bs, err := os.ReadFile(tempFile.Name()) assert.NoError(t, err) assert.NotEmpty(t, string(bs)) } func TestCompletionZshStdout(t *testing.T) { originalStdout := os.Stdout tempFile, err := os.CreateTemp("", "completion_zsh") assert.NoError(t, err) defer func() { _ = tempFile.Close() _ = os.Remove(tempFile.Name()) }() os.Stdout = tempFile defer func() { os.Stdout = originalStdout }() zshCommandDefinition.Run(zshCommandDefinition, []string{"-"}) output, err := os.ReadFile(tempFile.Name()) assert.NoError(t, err) assert.NotEmpty(t, string(output)) } func TestCompletionFish(t *testing.T) { tempFile, err := os.CreateTemp("", "completion_fish") assert.NoError(t, err) defer func() { _ = tempFile.Close() _ = os.Remove(tempFile.Name()) }() fishCommandDefinition.Run(fishCommandDefinition, []string{tempFile.Name()}) bs, err := os.ReadFile(tempFile.Name()) assert.NoError(t, err) assert.NotEmpty(t, string(bs)) } func TestCompletionFishStdout(t *testing.T) { originalStdout := os.Stdout tempFile, err := os.CreateTemp("", "completion_zsh") assert.NoError(t, err) defer func() { _ = tempFile.Close() _ = os.Remove(tempFile.Name()) }() os.Stdout = tempFile defer func() { os.Stdout = originalStdout }() fishCommandDefinition.Run(fishCommandDefinition, []string{"-"}) output, err := os.ReadFile(tempFile.Name()) assert.NoError(t, err) assert.NotEmpty(t, string(output)) }