gopass/tests/completion_test.go

43 lines
971 B
Go

package tests
import (
"testing"
"github.com/stretchr/testify/assert"
)
func TestCompletion(t *testing.T) {
ts := newTester(t)
defer ts.teardown()
out, err := ts.run("completion")
assert.NoError(t, err)
assert.Contains(t, out, "Source for auto completion in bash")
assert.Contains(t, out, "Source for auto completion in zsh")
bash := `_gopass_bash_autocomplete() {
local cur opts base
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
opts=$( ${COMP_WORDS[@]:0:$COMP_CWORD} --generate-bash-completion )
local IFS=$'\n'
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
return 0
}
complete -F _gopass_bash_autocomplete gopass`
out, err = ts.run("completion bash")
assert.NoError(t, err)
assert.Equal(t, bash, out)
zsh := `autoload -U compinit && compinit
autoload -U bashcompinit && bashcompinit
source <(gopass completion bash)`
out, err = ts.run("completion zsh")
assert.NoError(t, err)
assert.Equal(t, zsh, out)
}