Files
kustomize/cmd/k8scopy/internal/modulespec_test.go
2022-08-10 18:22:46 -04:00

65 lines
1.3 KiB
Go

// Copyright 2021 The Kubernetes Authors.
// SPDX-License-Identifier: Apache-2.0
package internal_test
import (
"os"
"testing"
"github.com/stretchr/testify/assert"
. "sigs.k8s.io/kustomize/cmd/k8scopy/internal"
)
var data = []byte(`module: k8s.io/apimachinery
version: v0.17.0
packages:
- name: pkg/labels
files:
- labels.go
- selector.go
- zz_generated.deepcopy.go
- name: pkg/selection
files:
- operator.go
- name: pkg/util/sets
files:
- empty.go
- string.go
- name: pkg/util/errors
files:
- errors.go
- name: pkg/util/validation
files:
- validation.go
- name: pkg/util/validation/field
files:
- errors.go
- path.go
`)
func TestReadSpec(t *testing.T) {
fn := writeFile(t, data)
defer os.Remove(fn)
x := ReadSpec(fn)
assert.Equal(t, "k8s.io/apimachinery@v0.17.0", x.Name())
assert.Equal(t, 6, len(x.Packages))
assert.Equal(t, "pkg/util/validation/field", x.Packages[5].Name)
assert.Equal(t, "path.go", x.Packages[5].Files[1])
}
// Write content to temp file, returning file name.
func writeFile(t *testing.T, content []byte) string {
f, err := os.CreateTemp("", "testjunk")
if err != nil {
t.Fatal(err)
}
if _, err = f.Write(content); err != nil {
t.Fatal(err)
}
if err := f.Close(); err != nil {
t.Fatal(err)
}
return f.Name()
}