Skip to content

Commit

Permalink
add better coverage to pkg/machinery/marker
Browse files Browse the repository at this point in the history
To ensure that current code implementation is well
tested and changes will not break it
  • Loading branch information
camilamacedo86 committed Sep 10, 2024
1 parent 26c4b55 commit 28b19f4
Showing 1 changed file with 67 additions and 1 deletion.
68 changes: 67 additions & 1 deletion 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 Down Expand Up @@ -54,6 +54,65 @@ var _ = Describe("NewMarkerFor", func() {
})
})

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() {
Context("String", func() {
DescribeTable("should return the right string representation",
Expand Down Expand Up @@ -83,3 +142,10 @@ var _ = Describe("NewMarkerWithPrefixFor", func() {
)
})
})

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 28b19f4

Please sign in to comment.