mirror of
https://github.com/gopasspw/gopass.git
synced 2026-10-03 13:57:32 +02:00
61 lines
1.4 KiB
Go
61 lines
1.4 KiB
Go
//go:build linux
|
|
|
|
package main
|
|
|
|
import (
|
|
"bytes"
|
|
"os"
|
|
"path/filepath"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/urfave/cli/v2"
|
|
)
|
|
|
|
func TestMain(t *testing.T) {
|
|
// Setup temporary directory for testing
|
|
tempDir := t.TempDir()
|
|
filename = filepath.Join(tempDir, "VERSION")
|
|
err := os.WriteFile(filename, []byte("1.0.0"), 0o644)
|
|
assert.NoError(t, err)
|
|
|
|
// Test man-page generation
|
|
buf := &bytes.Buffer{}
|
|
stdout = buf
|
|
defer func() { stdout = os.Stderr }()
|
|
|
|
main()
|
|
|
|
assert.Contains(t, buf.String(), "1.0.0")
|
|
assert.Contains(t, buf.String(), "gopass")
|
|
// TODO: Validate man format.
|
|
}
|
|
|
|
func TestGetFlags(t *testing.T) {
|
|
flags := []cli.Flag{
|
|
&cli.BoolFlag{Name: "boolFlag", Usage: "A boolean flag"},
|
|
&cli.IntFlag{Name: "intFlag", Usage: "An integer flag"},
|
|
&cli.StringFlag{Name: "stringFlag", Usage: "A string flag"},
|
|
}
|
|
|
|
expected := []flag{
|
|
{Name: "boolFlag", Aliases: []string{"boolFlag"}, Description: "A boolean flag"},
|
|
{Name: "intFlag", Aliases: []string{"intFlag"}, Description: "An integer flag"},
|
|
{Name: "stringFlag", Aliases: []string{"stringFlag"}, Description: "A string flag"},
|
|
}
|
|
|
|
result := getFlags(flags)
|
|
assert.Equal(t, expected, result)
|
|
}
|
|
|
|
func TestLookPath(t *testing.T) {
|
|
// Test finding an executable in PATH
|
|
path, err := lookPath("ls")
|
|
assert.NoError(t, err)
|
|
assert.NotEmpty(t, path)
|
|
|
|
// Test not finding an executable
|
|
_, err = lookPath("nonexistent")
|
|
assert.Error(t, err)
|
|
}
|