github.com/goreleaser/goreleaser@v1.25.1/internal/client/release_notes_test.go (about)

     1  package client
     2  
     3  import (
     4  	"testing"
     5  
     6  	"github.com/goreleaser/goreleaser/pkg/config"
     7  	"github.com/stretchr/testify/require"
     8  )
     9  
    10  func TestGetReleaseNotes(t *testing.T) {
    11  	const existing = "existing rel notes"
    12  	const current = "current rel notes"
    13  
    14  	t.Run("keep and existing empty", func(t *testing.T) {
    15  		require.Equal(t, current, getReleaseNotes("", current, config.ReleaseNotesModeKeepExisting))
    16  	})
    17  
    18  	t.Run("keep", func(t *testing.T) {
    19  		require.Equal(t, existing, getReleaseNotes(existing, current, config.ReleaseNotesModeKeepExisting))
    20  	})
    21  
    22  	t.Run("replace", func(t *testing.T) {
    23  		require.Equal(t, current, getReleaseNotes(existing, current, config.ReleaseNotesModeReplace))
    24  	})
    25  
    26  	t.Run("append", func(t *testing.T) {
    27  		require.Equal(t, "existing rel notes\n\ncurrent rel notes", getReleaseNotes(existing, current, config.ReleaseNotesModeAppend))
    28  	})
    29  
    30  	t.Run("prepend", func(t *testing.T) {
    31  		require.Equal(t, "current rel notes\n\nexisting rel notes", getReleaseNotes(existing, current, config.ReleaseNotesModePrepend))
    32  	})
    33  
    34  	t.Run("invalid", func(t *testing.T) {
    35  		require.Equal(t, existing, getReleaseNotes(existing, current, config.ReleaseNotesMode("invalid")))
    36  	})
    37  }