package context // import ( // "os" // "reflect" // "testing" // "github.com/go-git/go-billy/v5" // "github.com/go-git/go-billy/v5/memfs" // "github.com/kyverno/kyverno/cmd/cli/kubectl-kyverno/apis/v1alpha1" // ) // func Test_readFile(t *testing.T) { // mustReadFile := func(path string) []byte { // t.Helper() // data, err := os.ReadFile(path) // if err != nil { // t.Fatal(err) // } // return data // } // tests := []struct { // name string // f billy.Filesystem // filepath string // want []byte // wantErr bool // }{{ // name: "empty", // filepath: "", // want: nil, // wantErr: true, // }, { // name: "does not exist", // filepath: "../_testdata/values/doesnotexist", // want: nil, // wantErr: true, // }, { // name: "bad format", // filepath: "../_testdata/values/bad-format.yaml", // want: mustReadFile("../_testdata/values/bad-format.yaml"), // wantErr: false, // }, { // name: "valid", // filepath: "../_testdata/values/limit-configmap-for-sa.yaml", // want: mustReadFile("../_testdata/values/limit-configmap-for-sa.yaml"), // wantErr: false, // }, { // name: "empty (billy)", // f: memfs.New(), // filepath: "", // want: nil, // wantErr: true, // }, { // name: "valid (billy)", // f: func() billy.Filesystem { // f := memfs.New() // file, err := f.Create("valid.yaml") // if err != nil { // t.Fatal(err) // } // defer file.Close() // if _, err := file.Write([]byte("foo: bar")); err != nil { // t.Fatal(err) // } // return f // }(), // filepath: "valid.yaml", // want: []byte("foo: bar"), // wantErr: false, // }} // for _, tt := range tests { // t.Run(tt.name, func(t *testing.T) { // got, err := readFile(tt.f, tt.filepath) // if (err != nil) != tt.wantErr { // t.Errorf("readFile() error = %v, wantErr %v", err, tt.wantErr) // return // } // if !reflect.DeepEqual(got, tt.want) { // t.Errorf("readFile() = %v, want %v", got, tt.want) // } // }) // } // } // func TestLoad(t *testing.T) { // tests := []struct { // name string // f billy.Filesystem // filepath string // want *v1alpha1.Values // wantErr bool // }{{ // name: "empty", // filepath: "", // want: nil, // wantErr: true, // }, { // name: "does not exist", // filepath: "../_testdata/values/doesnotexist", // want: nil, // wantErr: true, // }, { // name: "bad format", // filepath: "../_testdata/values/bad-format.yaml", // want: nil, // wantErr: true, // }, { // name: "valid", // filepath: "../_testdata/values/limit-configmap-for-sa.yaml", // want: &v1alpha1.Values{ // ValuesSpec: v1alpha1.ValuesSpec{ // NamespaceSelectors: []v1alpha1.NamespaceSelector{{ // Name: "test1", // Labels: map[string]string{ // "foo.com/managed-state": "managed", // }, // }}, // Policies: []v1alpha1.Policy{{ // Name: "limit-configmap-for-sa", // Resources: []v1alpha1.Resource{{ // Name: "any-configmap-name-good", // Values: map[string]interface{}{ // "request.operation": "UPDATE", // }, // }, { // Name: "any-configmap-name-bad", // Values: map[string]interface{}{ // "request.operation": "UPDATE", // }, // }}, // }}, // }, // }, // wantErr: false, // }} // for _, tt := range tests { // t.Run(tt.name, func(t *testing.T) { // got, err := Load(tt.f, tt.filepath) // if (err != nil) != tt.wantErr { // t.Errorf("Load() error = %v, wantErr %v", err, tt.wantErr) // return // } // if !reflect.DeepEqual(got, tt.want) { // t.Errorf("Load() = %v, want %v", got, tt.want) // } // }) // } // }