...
1
16
17 package action
18
19 import (
20 "os"
21 "path"
22 "testing"
23
24 "github.com/Masterminds/semver/v3"
25
26 "helm.sh/helm/v3/internal/test/ensure"
27 )
28
29 func TestPassphraseFileFetcher(t *testing.T) {
30 secret := "secret"
31 directory := ensure.TempFile(t, "passphrase-file", []byte(secret))
32
33 fetcher, err := passphraseFileFetcher(path.Join(directory, "passphrase-file"), nil)
34 if err != nil {
35 t.Fatal("Unable to create passphraseFileFetcher", err)
36 }
37
38 passphrase, err := fetcher("key")
39 if err != nil {
40 t.Fatal("Unable to fetch passphrase")
41 }
42
43 if string(passphrase) != secret {
44 t.Errorf("Expected %s got %s", secret, string(passphrase))
45 }
46 }
47
48 func TestPassphraseFileFetcher_WithLineBreak(t *testing.T) {
49 secret := "secret"
50 directory := ensure.TempFile(t, "passphrase-file", []byte(secret+"\n\n."))
51
52 fetcher, err := passphraseFileFetcher(path.Join(directory, "passphrase-file"), nil)
53 if err != nil {
54 t.Fatal("Unable to create passphraseFileFetcher", err)
55 }
56
57 passphrase, err := fetcher("key")
58 if err != nil {
59 t.Fatal("Unable to fetch passphrase")
60 }
61
62 if string(passphrase) != secret {
63 t.Errorf("Expected %s got %s", secret, string(passphrase))
64 }
65 }
66
67 func TestPassphraseFileFetcher_WithInvalidStdin(t *testing.T) {
68 directory := t.TempDir()
69
70 stdin, err := os.CreateTemp(directory, "non-existing")
71 if err != nil {
72 t.Fatal("Unable to create test file", err)
73 }
74
75 if _, err := passphraseFileFetcher("-", stdin); err == nil {
76 t.Error("Expected passphraseFileFetcher returning an error")
77 }
78 }
79
80 func TestValidateVersion(t *testing.T) {
81 type args struct {
82 ver string
83 }
84 tests := []struct {
85 name string
86 args args
87 wantErr error
88 }{
89 {
90 "normal semver version",
91 args{
92 ver: "1.1.3-23658",
93 },
94 nil,
95 },
96 {
97 "Pre version number starting with 0",
98 args{
99 ver: "1.1.3-023658",
100 },
101 semver.ErrSegmentStartsZero,
102 },
103 {
104 "Invalid version number",
105 args{
106 ver: "1.1.3.sd.023658",
107 },
108 semver.ErrInvalidSemVer,
109 },
110 }
111 for _, tt := range tests {
112 t.Run(tt.name, func(t *testing.T) {
113 if err := validateVersion(tt.args.ver); err != nil {
114 if err != tt.wantErr {
115 t.Errorf("Expected {%v}, got {%v}", tt.wantErr, err)
116 }
117
118 }
119 })
120 }
121 }
122
View as plain text