check / check (push) Failing after 3s
REPO_POLICIES.md requires the module root sneak.berlin/go/<name>. go.mod, every import (rewritten with gofmt -r), the -X flags in script/build and the examples in the pkg READMEs now use the new path. go mod tidy lists go-humanize and fatih/color as direct requirements, since internal/cli imports them. This breaks anyone who fetched or imported git.eeqj.de/sneak/secret: they must switch to sneak.berlin/go/secret, which resolves to this repository. Model: opus-5-5
77 lines
1.9 KiB
Go
77 lines
1.9 KiB
Go
package cli_test
|
|
|
|
import (
|
|
"os"
|
|
"path/filepath"
|
|
"testing"
|
|
|
|
"github.com/spf13/afero"
|
|
"sneak.berlin/go/secret/internal/cli"
|
|
"sneak.berlin/go/secret/internal/secret"
|
|
)
|
|
|
|
func TestCLIInstanceStateDir(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
// Test the CLI instance state directory functionality
|
|
fs := afero.NewMemMapFs()
|
|
|
|
// Create a test state directory
|
|
testStateDir := "/test-state-dir"
|
|
instance := cli.NewCLIInstanceWithStateDir(fs, testStateDir)
|
|
|
|
got := instance.GetStateDir()
|
|
if got != testStateDir {
|
|
t.Errorf("Expected state directory %q, got %q", testStateDir, got)
|
|
}
|
|
}
|
|
|
|
//nolint:paralleltest // reads process environment to determine the state dir
|
|
func TestCLIInstanceWithFs(t *testing.T) {
|
|
// Test creating CLI instance with custom filesystem
|
|
fs := afero.NewMemMapFs()
|
|
|
|
instance, err := cli.NewCLIInstanceWithFs(fs)
|
|
if err != nil {
|
|
t.Fatalf("failed to initialize CLI: %v", err)
|
|
}
|
|
|
|
// The state directory should be determined automatically
|
|
stateDir := instance.GetStateDir()
|
|
if stateDir == "" {
|
|
t.Error("Expected non-empty state directory")
|
|
}
|
|
}
|
|
|
|
func TestDetermineStateDir(t *testing.T) {
|
|
// Test the determineStateDir function from the secret package
|
|
|
|
// Test with environment variable set
|
|
testEnvDir := "/test-env-dir"
|
|
t.Setenv(secret.EnvStateDir, testEnvDir)
|
|
|
|
stateDir, err := secret.DetermineStateDir("")
|
|
if err != nil {
|
|
t.Fatalf("unexpected error: %v", err)
|
|
}
|
|
|
|
if stateDir != testEnvDir {
|
|
t.Errorf("Expected state directory %q from environment, got %q", testEnvDir, stateDir)
|
|
}
|
|
|
|
// Test with custom config dir
|
|
_ = os.Unsetenv(secret.EnvStateDir)
|
|
customConfigDir := "/custom-config"
|
|
|
|
stateDir, err = secret.DetermineStateDir(customConfigDir)
|
|
if err != nil {
|
|
t.Fatalf("unexpected error: %v", err)
|
|
}
|
|
|
|
expectedDir := filepath.Join(customConfigDir, secret.AppID)
|
|
if stateDir != expectedDir {
|
|
t.Errorf("Expected state directory %q with custom config, got %q",
|
|
expectedDir, stateDir)
|
|
}
|
|
}
|