Skip to content

Commit

Permalink
Merge pull request #4156 from camilamacedo86/add-tests-for-markers
Browse files Browse the repository at this point in the history
🌱 add better coverage to pkg/machinery/marker
  • Loading branch information
k8s-ci-robot authored Sep 11, 2024
2 parents ec3bf70 + f8cec65 commit d26664f
Showing 1 changed file with 105 additions and 14 deletions.
119 changes: 105 additions & 14 deletions pkg/machinery/marker_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ import (
. "github.com/onsi/gomega"
)

var _ = Describe("NerMarkerFor", func() {
var _ = Describe("NewMarkerFor", func() {
DescribeTable("should create valid markers for known extensions",
func(path, comment string) { Expect(NewMarkerFor(path, "").comment).To(Equal(comment)) },
Entry("for go files", "file.go", "//"),
Expand All @@ -39,8 +39,10 @@ var _ = Describe("Marker", func() {
Context("String", func() {
DescribeTable("should return the right string representation",
func(marker Marker, str string) { Expect(marker.String()).To(Equal(str)) },
Entry("for go files", Marker{prefix: kbPrefix, comment: "//", value: "test"}, "// +kubebuilder:scaffold:test"),
Entry("for yaml files", Marker{prefix: kbPrefix, comment: "#", value: "test"}, "# +kubebuilder:scaffold:test"),
Entry("for go files", Marker{prefix: kbPrefix, comment: "//", value: "test"},
"// +kubebuilder:scaffold:test"),
Entry("for yaml files", Marker{prefix: kbPrefix, comment: "#", value: "test"},
"# +kubebuilder:scaffold:test"),
)
})
})
Expand All @@ -49,9 +51,81 @@ var _ = Describe("NewMarkerFor", func() {
Context("String", func() {
DescribeTable("should return the right string representation",
func(marker Marker, str string) { Expect(marker.String()).To(Equal(str)) },
Entry("for yaml files", NewMarkerFor("test.yaml", "test"), "# +kubebuilder:scaffold:test"),
Entry("for yaml files", NewMarkerFor("test.yaml", "test"),
"# +kubebuilder:scaffold:test"),
)
})
})

var _ = Describe("NewMarkerForImports", func() {
Context("String", func() {
DescribeTable("should return the correct string representation for import markers",
func(marker Marker, str string) { Expect(marker.String()).To(Equal(str)) },
Entry("for go import marker", NewMarkerFor("test.go", "import \"my/package\""),
"// +kubebuilder:scaffold:import \"my/package\""),
Entry("for go import marker with alias", NewMarkerFor("test.go",
"import alias \"my/package\""), "// +kubebuilder:scaffold:import alias \"my/package\""),
Entry("for multiline go import marker", NewMarkerFor("test.go",
"import (\n\"my/package\"\n)"), "// +kubebuilder:scaffold:import (\n\"my/package\"\n)"),
Entry("for multiline go import marker with alias", NewMarkerFor("test.go",
"import (\nalias \"my/package\"\n)"), "// +kubebuilder:scaffold:import (\nalias \"my/package\"\n)"),
)
})

It("should detect import in Go file", func() {
line := "// +kubebuilder:scaffold:import \"my/package\""
marker := NewMarkerFor("test.go", "import \"my/package\"")
Expect(marker.EqualsLine(line)).To(BeTrue())
})

It("should detect import with alias in Go file", func() {
line := "// +kubebuilder:scaffold:import alias \"my/package\""
marker := NewMarkerFor("test.go", "import alias \"my/package\"")
Expect(marker.EqualsLine(line)).To(BeTrue())
})

It("should detect multiline import in Go file", func() {
line := "// +kubebuilder:scaffold:import (\n\"my/package\"\n)"
marker := NewMarkerFor("test.go", "import (\n\"my/package\"\n)")
Expect(marker.EqualsLine(line)).To(BeTrue())
})

It("should detect multiline import with alias in Go file", func() {
line := "// +kubebuilder:scaffold:import (\nalias \"my/package\"\n)"
marker := NewMarkerFor("test.go",
"import (\nalias \"my/package\"\n)")
Expect(marker.EqualsLine(line)).To(BeTrue())
})
})

var _ = Describe("NewMarkerForImports with different formatting", func() {
Context("String", func() {
DescribeTable("should handle variations in spacing and formatting for import markers",
func(marker Marker, str string) { Expect(marker.String()).To(Equal(str)) },
Entry("go import marker with extra spaces",
NewMarkerFor("test.go", "import \"my/package\""),
"// +kubebuilder:scaffold:import \"my/package\""),
Entry("go import marker with spaces around alias",
NewMarkerFor("test.go", "import alias \"my/package\""),
"// +kubebuilder:scaffold:import alias \"my/package\""),
Entry("go import marker with newline",
NewMarkerFor("test.go", "import \n\"my/package\""),
"// +kubebuilder:scaffold:import \n\"my/package\""),
)
})

It("should detect import with spaces in Go file", func() {
line := "// +kubebuilder:scaffold:import \"my/package\""
marker := NewMarkerFor("test.go", "import \"my/package\"")
Expect(marker.EqualsLine(line)).To(BeTrue())
})

It("should detect import with alias and spaces in Go file", func() {
line := "// +kubebuilder:scaffold:import alias \"my/package\""
marker := NewMarkerFor("test.go",
"import alias \"my/package\"")
Expect(marker.EqualsLine(line)).To(BeTrue())
})
})

var _ = Describe("NewMarkerWithPrefixFor", func() {
Expand All @@ -60,26 +134,43 @@ var _ = Describe("NewMarkerWithPrefixFor", func() {
func(marker Marker, str string) { Expect(marker.String()).To(Equal(str)) },

Entry("for yaml files",
NewMarkerWithPrefixFor("custom:scaffold", "test.yaml", "test"), "# +custom:scaffold:test"),
NewMarkerWithPrefixFor("custom:scaffold",
"test.yaml", "test"), "# +custom:scaffold:test"),
Entry("for yaml files",
NewMarkerWithPrefixFor("+custom:scaffold", "test.yaml", "test"), "# +custom:scaffold:test"),
NewMarkerWithPrefixFor("+custom:scaffold",
"test.yaml", "test"), "# +custom:scaffold:test"),
Entry("for yaml files",
NewMarkerWithPrefixFor("custom:scaffold:", "test.yaml", "test"), "# +custom:scaffold:test"),
NewMarkerWithPrefixFor("custom:scaffold:",
"test.yaml", "test"), "# +custom:scaffold:test"),
Entry("for yaml files",
NewMarkerWithPrefixFor("+custom:scaffold:", "test.yaml", "test"), "# +custom:scaffold:test"),
NewMarkerWithPrefixFor("+custom:scaffold:",
"test.yaml", "test"), "# +custom:scaffold:test"),
Entry("for yaml files",
NewMarkerWithPrefixFor(" +custom:scaffold: ", "test.yaml", "test"), "# +custom:scaffold:test"),
NewMarkerWithPrefixFor(" +custom:scaffold: ",
"test.yaml", "test"), "# +custom:scaffold:test"),

Entry("for go files",
NewMarkerWithPrefixFor("custom:scaffold", "test.go", "test"), "// +custom:scaffold:test"),
NewMarkerWithPrefixFor("custom:scaffold",
"test.go", "test"), "// +custom:scaffold:test"),
Entry("for go files",
NewMarkerWithPrefixFor("+custom:scaffold", "test.go", "test"), "// +custom:scaffold:test"),
NewMarkerWithPrefixFor("+custom:scaffold",
"test.go", "test"), "// +custom:scaffold:test"),
Entry("for go files",
NewMarkerWithPrefixFor("custom:scaffold:", "test.go", "test"), "// +custom:scaffold:test"),
NewMarkerWithPrefixFor("custom:scaffold:",
"test.go", "test"), "// +custom:scaffold:test"),
Entry("for go files",
NewMarkerWithPrefixFor("+custom:scaffold:", "test.go", "test"), "// +custom:scaffold:test"),
NewMarkerWithPrefixFor("+custom:scaffold:",
"test.go", "test"), "// +custom:scaffold:test"),
Entry("for go files",
NewMarkerWithPrefixFor(" +custom:scaffold: ", "test.go", "test"), "// +custom:scaffold:test"),
NewMarkerWithPrefixFor(" +custom:scaffold: ",
"test.go", "test"), "// +custom:scaffold:test"),
)
})
})

var _ = Describe("NewMarkerFor with unsupported extensions", func() {
It("should panic for unsupported extensions", func() {
Expect(func() { NewMarkerFor("file.txt", "test") }).To(Panic())
Expect(func() { NewMarkerFor("file.md", "test") }).To(Panic())
})
})

0 comments on commit d26664f

Please sign in to comment.