-
Notifications
You must be signed in to change notification settings - Fork 2
/
generate_configuration_parser_test.go
94 lines (78 loc) · 2.39 KB
/
generate_configuration_parser_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
package gogenerate_test
import (
"testing"
gogenerate "github.com/paketo-buildpacks/go-generate"
"github.com/sclevine/spec"
. "github.com/onsi/gomega"
)
func testGenerateConfigurationParser(t *testing.T, context spec.G, it spec.S) {
var (
Expect = NewWithT(t).Expect
parser gogenerate.GenerateConfigurationParser
)
it.Before(func() {
parser = gogenerate.NewGenerateConfigurationParser(gogenerate.GenerateEnvironment{})
})
context("BP_GO_GENERATE_ARGS is set", func() {
it.Before(func() {
parser = parser.WithEnvironment(gogenerate.GenerateEnvironment{
GoGenerateArgs: "somemodule othermodule",
})
})
it("uses the values in the env var", func() {
configuration, err := parser.Parse()
Expect(err).NotTo(HaveOccurred())
Expect(configuration).To(Equal(gogenerate.GenerateConfiguration{
Args: []string{"somemodule", "othermodule"},
}))
})
})
context("BP_GO_GENERATE_ARGS is NOT set", func() {
it("uses the default value", func() {
configuration, err := parser.Parse()
Expect(err).NotTo(HaveOccurred())
Expect(configuration).To(Equal(gogenerate.GenerateConfiguration{
Args: []string{"./..."},
}))
})
})
context("BP_GO_GENERATE_FLAGS is set", func() {
it.Before(func() {
parser = parser.WithEnvironment(gogenerate.GenerateEnvironment{
GoGenerateFlags: `-run="^//go:generate go get" -n`,
})
})
it("uses the values in the env var", func() {
configuration, err := parser.Parse()
Expect(err).NotTo(HaveOccurred())
Expect(configuration).To(Equal(gogenerate.GenerateConfiguration{
Args: []string{"./..."},
Flags: []string{`-run=^//go:generate go get`, "-n"},
}))
})
})
context("failure cases", func() {
context("generate args fail to parse", func() {
it.Before(func() {
parser = parser.WithEnvironment(gogenerate.GenerateEnvironment{
GoGenerateArgs: "\"",
})
})
it("returns an error", func() {
_, err := parser.Parse()
Expect(err).To(MatchError(ContainSubstring(`BP_GO_GENERATE_ARGS="\"": invalid command line string`)))
})
})
context("generate flags fail to parse", func() {
it.Before(func() {
parser = parser.WithEnvironment(gogenerate.GenerateEnvironment{
GoGenerateFlags: "\"",
})
})
it("returns an error", func() {
_, err := parser.Parse()
Expect(err).To(MatchError(ContainSubstring(`BP_GO_GENERATE_FLAGS="\"": invalid command line string`)))
})
})
})
}