gitee.com/mirrors_opencollective/goreleaser@v0.45.0/pipeline/release/body_test.go (about) 1 package release 2 3 import ( 4 "flag" 5 "io/ioutil" 6 "os" 7 "testing" 8 9 "github.com/goreleaser/goreleaser/config" 10 "github.com/goreleaser/goreleaser/context" 11 "github.com/goreleaser/goreleaser/internal/artifact" 12 "github.com/stretchr/testify/assert" 13 ) 14 15 var update = flag.Bool("update", false, "update .golden files") 16 17 func TestDescribeBody(t *testing.T) { 18 var changelog = "\nfeature1: description\nfeature2: other description" 19 var ctx = context.New(config.Project{}) 20 ctx.ReleaseNotes = changelog 21 for _, d := range []string{ 22 "goreleaser/goreleaser:0.40.0", 23 "goreleaser/goreleaser:latest", 24 "goreleaser/godownloader:v0.1.0", 25 } { 26 ctx.Artifacts.Add(artifact.Artifact{ 27 Name: d, 28 Type: artifact.DockerImage, 29 }) 30 } 31 out, err := describeBodyVersion(ctx, "go version go1.9 darwin/amd64") 32 assert.NoError(t, err) 33 34 var golden = "testdata/release1.golden" 35 if *update { 36 ioutil.WriteFile(golden, out.Bytes(), 0755) 37 } 38 bts, err := ioutil.ReadFile(golden) 39 assert.NoError(t, err) 40 assert.Equal(t, string(bts), out.String()) 41 } 42 43 func TestDescribeBodyNoDockerImagesNoBrews(t *testing.T) { 44 var changelog = "\nfeature1: description\nfeature2: other description" 45 var ctx = &context.Context{ 46 ReleaseNotes: changelog, 47 } 48 out, err := describeBodyVersion(ctx, "go version go1.9 darwin/amd64") 49 assert.NoError(t, err) 50 51 var golden = "testdata/release2.golden" 52 if *update { 53 ioutil.WriteFile(golden, out.Bytes(), 0655) 54 } 55 bts, err := ioutil.ReadFile(golden) 56 assert.NoError(t, err) 57 58 assert.Equal(t, string(bts), out.String()) 59 } 60 61 func TestDontEscapeHTML(t *testing.T) { 62 var changelog = "<h1>test</h1>" 63 var ctx = context.New(config.Project{}) 64 ctx.ReleaseNotes = changelog 65 66 out, err := describeBody(ctx) 67 assert.NoError(t, err) 68 assert.Contains(t, out.String(), changelog) 69 } 70 71 func TestGoVersionFails(t *testing.T) { 72 var path = os.Getenv("PATH") 73 defer func() { 74 assert.NoError(t, os.Setenv("PATH", path)) 75 }() 76 assert.NoError(t, os.Setenv("PATH", "")) 77 var ctx = &context.Context{ 78 ReleaseNotes: "changelog", 79 } 80 _, err := describeBody(ctx) 81 assert.Error(t, err) 82 }