Skip to content

Commit 6a36023

Browse files
authored
internal/scaffold/role_test.go: make tests execute properly (#3465)
1 parent 5e78ab9 commit 6a36023

File tree

1 file changed

+29
-53
lines changed

1 file changed

+29
-53
lines changed

internal/scaffold/role_test.go

Lines changed: 29 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@
1515
package scaffold
1616

1717
import (
18-
"fmt"
1918
"io/ioutil"
2019
"os"
20+
"path/filepath"
2121
"testing"
2222

2323
"github.com/operator-framework/operator-sdk/internal/util/diffutil"
@@ -90,60 +90,35 @@ func TestRoleCustomRules(t *testing.T) {
9090

9191
func TestMergeRoleForResource(t *testing.T) {
9292
clusterRoleFilePath1 := "./testdata/testroles/valid_clusterrole"
93-
clusterRoleFile1 := clusterRoleFilePath1 + "/deploy/role.yaml"
94-
if err := ioutil.WriteFile(clusterRoleFile1, []byte(clusterRole), fileutil.DefaultFileMode); err != nil {
95-
fmt.Printf("failed to instantiate %v: %v", clusterRoleFile1, err)
96-
}
97-
defer remove(clusterRoleFile1)
98-
9993
roleFilePath1 := "./testdata/testroles/valid_role1"
100-
absRoleFile1 := roleFilePath1 + "/deploy/role.yaml"
101-
if err := ioutil.WriteFile(absRoleFile1, []byte(roleFile1), fileutil.DefaultFileMode); err != nil {
102-
fmt.Printf("failed to instantiate %v: %v", absRoleFile1, err)
103-
}
104-
defer remove(absRoleFile1)
105-
10694
roleFilePath2 := "./testdata/testroles/valid_role2"
107-
absRoleFile2 := roleFilePath2 + "/deploy/role.yaml"
108-
if err := ioutil.WriteFile(absRoleFile2, []byte(roleFile2), fileutil.DefaultFileMode); err != nil {
109-
fmt.Printf("failed to instantiate %v: %v", absRoleFile2, err)
110-
}
111-
defer remove(absRoleFile2)
112-
11395
roleFilePath3 := "./testdata/testroles/valid_role3"
114-
absRoleFile3 := roleFilePath3 + "/deploy/role.yaml"
115-
if err := ioutil.WriteFile(absRoleFile3, []byte(roleFile3), fileutil.DefaultFileMode); err != nil {
116-
fmt.Printf("failed to instantiate %v: %v", absRoleFile3, err)
117-
}
118-
defer remove(absRoleFile3)
119-
12096
roleFilePath4 := "./testdata/testroles/valid_role4"
121-
absRoleFile4 := roleFilePath4 + "/deploy/role.yaml"
122-
if err := ioutil.WriteFile(absRoleFile4, []byte(roleFile3), fileutil.DefaultFileMode); err != nil {
123-
fmt.Printf("failed to instantiate %v: %v", absRoleFile4, err)
124-
}
125-
defer remove(absRoleFile4)
126-
12797
roleFilePath5 := "./testdata/testroles/valid_role5"
128-
absRoleFile5 := roleFilePath5 + "/deploy/role.yaml"
129-
if err := ioutil.WriteFile(absRoleFile5, []byte(roleFile3), fileutil.DefaultFileMode); err != nil {
130-
fmt.Printf("failed to instantiate %v: %v", absRoleFile5, err)
98+
roleFilePath6 := "./testdata/testroles/valid_role6"
99+
100+
testFiles := map[string]string{
101+
"./testdata/testroles/valid_clusterrole/deploy/role.yaml": clusterRole,
102+
"./testdata/testroles/valid_role1/deploy/role.yaml": roleFile1,
103+
"./testdata/testroles/valid_role2/deploy/role.yaml": roleFile2,
104+
"./testdata/testroles/valid_role3/deploy/role.yaml": roleFile3,
105+
"./testdata/testroles/valid_role4/deploy/role.yaml": roleFile3,
106+
"./testdata/testroles/valid_role5/deploy/role.yaml": roleFile3,
107+
"./testdata/testroles/valid_role6/deploy/role.yaml": roleFile3,
131108
}
132-
defer remove(absRoleFile5)
133109

134-
roleFilePath6 := "./testdata/testroles/valid_role6"
135-
absRoleFile6 := roleFilePath6 + "/deploy/role.yaml"
136-
if err := ioutil.WriteFile(absRoleFile6, []byte(roleFile3), fileutil.DefaultFileMode); err != nil {
137-
fmt.Printf("failed to instantiate %v: %v", absRoleFile6, err)
110+
for path, content := range testFiles {
111+
assert.NoError(t, os.MkdirAll(filepath.Dir(path), 0755))
112+
assert.NoError(t, ioutil.WriteFile(path, []byte(content), fileutil.DefaultFileMode))
113+
defer remove(filepath.Dir(path))
138114
}
139-
defer remove(absRoleFile6)
140115

141116
testCases := []struct {
142117
name string
143118
absProjectPath string
144119
r *Resource
145120
roleScaffold *Role
146-
expError error
121+
expError bool
147122
existingRole string
148123
mergedRole string
149124
}{
@@ -472,6 +447,7 @@ func TestMergeRoleForResource(t *testing.T) {
472447
},
473448
{
474449
name: "Invalid ClusterRole",
450+
expError: true,
475451
absProjectPath: roleFilePath1,
476452
r: &Resource{
477453
APIVersion: "charts.helm.k8s.io/v1alpha1",
@@ -499,6 +475,7 @@ func TestMergeRoleForResource(t *testing.T) {
499475
},
500476
{
501477
name: "Empty CustomRules",
478+
expError: true,
502479
absProjectPath: "./testdata/testroles/invalid_role",
503480
mergedRole: "",
504481
r: &Resource{
@@ -514,6 +491,7 @@ func TestMergeRoleForResource(t *testing.T) {
514491
},
515492
{
516493
name: "Empty role.yaml file",
494+
expError: true,
517495
absProjectPath: "./testdata/testroles/invalid_role",
518496
mergedRole: "",
519497
r: &Resource{
@@ -536,22 +514,20 @@ func TestMergeRoleForResource(t *testing.T) {
536514
}
537515
for _, tc := range testCases {
538516
t.Run(tc.name, func(t *testing.T) {
539-
actualErr := MergeRoleForResource(tc.r, tc.absProjectPath, *tc.roleScaffold)
517+
err := MergeRoleForResource(tc.r, tc.absProjectPath, *tc.roleScaffold)
518+
if tc.expError {
519+
assert.Error(t, err)
520+
return
521+
}
522+
assert.NoError(t, err)
523+
540524
absFilePath := tc.absProjectPath + "/deploy/role.yaml"
541525
actualMergedRoleYAML, err := ioutil.ReadFile(absFilePath)
542-
if err != nil {
543-
fmt.Printf("failed to read actualMergedrole %v: %v", absFilePath, err)
544-
}
526+
assert.NoError(t, err)
545527
expectedMergedRoleYAML, err := ioutil.ReadFile(tc.mergedRole)
546-
if err != nil {
547-
fmt.Printf("failed to read expectedMergedrole %v: %v", tc.mergedRole, err)
548-
}
528+
assert.NoError(t, err)
549529

550-
if actualErr != nil {
551-
assert.NotNil(t, actualErr)
552-
} else {
553-
assert.Equal(t, string(expectedMergedRoleYAML), string(actualMergedRoleYAML))
554-
}
530+
assert.Equal(t, string(expectedMergedRoleYAML), string(actualMergedRoleYAML))
555531
})
556532
}
557533
}

0 commit comments

Comments
 (0)