-
Notifications
You must be signed in to change notification settings - Fork 0
/
build_test.go
87 lines (72 loc) · 2.08 KB
/
build_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
package sidekiq_test
import (
"bytes"
"io/ioutil"
"os"
"testing"
"github.com/paketo-buildpacks/packit"
"github.com/paketo-buildpacks/packit/scribe"
"github.com/paketo-buildpacks/sidekiq"
"github.com/sclevine/spec"
. "github.com/onsi/gomega"
)
func testBuild(t *testing.T, context spec.G, it spec.S) {
var (
Expect = NewWithT(t).Expect
layersDir string
workingDir string
cnbDir string
buffer *bytes.Buffer
build packit.BuildFunc
)
it.Before(func() {
var err error
layersDir, err = ioutil.TempDir("", "layers")
Expect(err).NotTo(HaveOccurred())
cnbDir, err = ioutil.TempDir("", "cnb")
Expect(err).NotTo(HaveOccurred())
workingDir, err = ioutil.TempDir("", "working-dir")
Expect(err).NotTo(HaveOccurred())
buffer = bytes.NewBuffer(nil)
logger := scribe.NewLogger(buffer)
build = sidekiq.Build(logger)
})
it.After(func() {
Expect(os.RemoveAll(layersDir)).To(Succeed())
Expect(os.RemoveAll(cnbDir)).To(Succeed())
Expect(os.RemoveAll(workingDir)).To(Succeed())
})
it("returns a result that provides a sidekiq start command", func() {
result, err := build(packit.BuildContext{
WorkingDir: workingDir,
CNBPath: cnbDir,
Stack: "some-stack",
BuildpackInfo: packit.BuildpackInfo{
Name: "Some Buildpack",
Version: "some-version",
},
Plan: packit.BuildpackPlan{
Entries: []packit.BuildpackPlanEntry{},
},
Layers: packit.Layers{Path: layersDir},
})
Expect(err).NotTo(HaveOccurred())
Expect(result).To(Equal(packit.BuildResult{
Plan: packit.BuildpackPlan{
Entries: nil,
},
Layers: nil,
Launch: packit.LaunchMetadata{
Processes: []packit.Process{
{
Type: "sidekiq",
Command: "bundle exec sidekiq -t ${timeout:-60} -c ${threads:-5} ${additional_args}",
},
},
},
}))
Expect(buffer.String()).To(ContainSubstring("Some Buildpack some-version"))
Expect(buffer.String()).To(ContainSubstring("Assigning launch processes"))
Expect(buffer.String()).To(ContainSubstring("sidekiq: bundle exec sidekiq -t ${timeout:-60} -c ${threads:-5} ${additional_args}"))
})
}