summaryrefslogtreecommitdiff
path: root/env
diff options
context:
space:
mode:
authorewy <ewy0@protonmail.com>2026-04-22 20:54:20 +0200
committerewy <ewy0@protonmail.com>2026-04-22 20:54:20 +0200
commitfb6f9434eaf353375b20a13966946d3a230d93d5 (patch)
tree4a481907a77e50c0564c4a572368e1133f796018 /env
parent086a0cc0eb75c0c3a15cf6a715427df1e2d589a2 (diff)
testooooo
Diffstat (limited to 'env')
-rw-r--r--env/env.go3
-rw-r--r--env/env_test.go54
2 files changed, 56 insertions, 1 deletions
diff --git a/env/env.go b/env/env.go
index 1bf0bd1..844613e 100644
--- a/env/env.go
+++ b/env/env.go
@@ -20,7 +20,8 @@ func IsEnv(file string) bool {
options = append(options,
".env-"+e,
".env."+e,
- e+".env")
+ e+".env",
+ "."+e+".env")
}
return slices.Contains(options, file)
}
diff --git a/env/env_test.go b/env/env_test.go
new file mode 100644
index 0000000..865f3cd
--- /dev/null
+++ b/env/env_test.go
@@ -0,0 +1,54 @@
+//go:build test
+
+package env
+
+import (
+ "github.com/spf13/pflag"
+ "github.com/stretchr/testify/assert"
+ "os"
+ "path/filepath"
+ "pik/model"
+ "testing"
+)
+
+func TestIsEnv(t *testing.T) {
+ err := pflag.Set("env", "test")
+ assert.NoError(t, err)
+ files := []string{
+ ".env",
+ ".env-test",
+ ".env.test",
+ "test.env",
+ }
+ fakes := []string{
+ ".env-other",
+ "unrelated.env",
+ }
+ for _, f := range files {
+ assert.True(t, IsEnv(f))
+ }
+ for _, f := range fakes {
+ assert.False(t, IsEnv(f))
+ }
+}
+
+func TestGet(t *testing.T) {
+ err := pflag.Set("env", "get")
+ dir := t.TempDir()
+ ctx := filepath.Join(dir, ".pik")
+ err = os.Mkdir(ctx, 0777)
+ assert.NoError(t, err)
+ file := filepath.Join(dir, ".get.env")
+ ctxFile := filepath.Join(dir, ".pik", ".get.env")
+ src := &model.Source{
+ Path: dir,
+ }
+ err = os.WriteFile(file, []byte("OUTERKEY=val"), 0666)
+ assert.NoError(t, err)
+ err = os.WriteFile(ctxFile, []byte("INNERKEY=otherval"), 0666)
+ assert.NoError(t, err)
+ res := Get(src)
+ assert.Len(t, res, 2)
+ assert.Contains(t, res, "OUTERKEY=val")
+ assert.Contains(t, res, "INNERKEY=otherval")
+}