-
-
Notifications
You must be signed in to change notification settings - Fork 910
/
body_test.go
81 lines (71 loc) · 2.03 KB
/
body_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
package release
import (
"flag"
"io/ioutil"
"testing"
"github.com/goreleaser/goreleaser/internal/artifact"
"github.com/goreleaser/goreleaser/pkg/config"
"github.com/goreleaser/goreleaser/pkg/context"
"github.com/stretchr/testify/require"
)
var update = flag.Bool("update", false, "update .golden files")
func TestDescribeBody(t *testing.T) {
var changelog = "feature1: description\nfeature2: other description"
var ctx = context.New(config.Project{})
ctx.ReleaseNotes = changelog
for _, d := range []string{
"goreleaser/goreleaser:0.40.0",
"goreleaser/goreleaser:latest",
"goreleaser/godownloader:v0.1.0",
} {
ctx.Artifacts.Add(&artifact.Artifact{
Name: d,
Type: artifact.DockerManifest,
})
}
for _, d := range []string{
"goreleaser/goreleaser:0.40.0-amd64",
"goreleaser/goreleaser:latest-amd64",
"goreleaser/godownloader:v0.1.0-amd64",
"goreleaser/goreleaser:0.40.0-arm64",
"goreleaser/goreleaser:latest-arm64",
"goreleaser/godownloader:v0.1.0-arm64",
} {
ctx.Artifacts.Add(&artifact.Artifact{
Name: d,
Type: artifact.DockerImage,
})
}
out, err := describeBody(ctx)
require.NoError(t, err)
var golden = "testdata/release1.golden"
if *update {
_ = ioutil.WriteFile(golden, out.Bytes(), 0755)
}
bts, err := ioutil.ReadFile(golden)
require.NoError(t, err)
require.Equal(t, string(bts), out.String())
}
func TestDescribeBodyNoDockerImagesNoBrews(t *testing.T) {
var changelog = "feature1: description\nfeature2: other description"
var ctx = &context.Context{
ReleaseNotes: changelog,
}
out, err := describeBody(ctx)
require.NoError(t, err)
var golden = "testdata/release2.golden"
if *update {
_ = ioutil.WriteFile(golden, out.Bytes(), 0655)
}
bts, err := ioutil.ReadFile(golden)
require.NoError(t, err)
require.Equal(t, string(bts), out.String())
}
func TestDontEscapeHTML(t *testing.T) {
var changelog = "<h1>test</h1>"
var ctx = context.New(config.Project{})
ctx.ReleaseNotes = changelog
out, err := describeBody(ctx)
require.NoError(t, err)
require.Contains(t, out.String(), changelog)
}