mirror of
https://github.com/thegeeklab/git-sv.git
synced 2024-11-25 07:30:38 +00:00
test: unit tests for releasenotes.go
This commit is contained in:
parent
ad7a5286b9
commit
729cfb5f49
35
sv/helpers_test.go
Normal file
35
sv/helpers_test.go
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
package sv
|
||||||
|
|
||||||
|
import (
|
||||||
|
"time"
|
||||||
|
|
||||||
|
"github.com/Masterminds/semver"
|
||||||
|
)
|
||||||
|
|
||||||
|
func version(v string) semver.Version {
|
||||||
|
r, _ := semver.NewVersion(v)
|
||||||
|
return *r
|
||||||
|
}
|
||||||
|
|
||||||
|
func commitlog(t string, metadata map[string]string) GitCommitLog {
|
||||||
|
return GitCommitLog{
|
||||||
|
Type: t,
|
||||||
|
Subject: "subject text",
|
||||||
|
Metadata: metadata,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func releaseNote(sections map[string]ReleaseNoteSection, breakingChanges []string) ReleaseNote {
|
||||||
|
return ReleaseNote{
|
||||||
|
Date: time.Now().Truncate(time.Minute),
|
||||||
|
Sections: sections,
|
||||||
|
BreakingChanges: breakingChanges,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func rnSection(name string, items []GitCommitLog) ReleaseNoteSection {
|
||||||
|
return ReleaseNoteSection{
|
||||||
|
Name: name,
|
||||||
|
Items: items,
|
||||||
|
}
|
||||||
|
}
|
38
sv/releasenotes_test.go
Normal file
38
sv/releasenotes_test.go
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
package sv
|
||||||
|
|
||||||
|
import (
|
||||||
|
"reflect"
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestReleaseNoteProcessorImpl_Get(t *testing.T) {
|
||||||
|
tests := []struct {
|
||||||
|
name string
|
||||||
|
commits []GitCommitLog
|
||||||
|
want ReleaseNote
|
||||||
|
}{
|
||||||
|
{
|
||||||
|
name: "mapped tag",
|
||||||
|
commits: []GitCommitLog{commitlog("t1", map[string]string{})},
|
||||||
|
want: releaseNote(map[string]ReleaseNoteSection{"t1": rnSection("Tag 1", []GitCommitLog{commitlog("t1", map[string]string{})})}, nil),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "unmapped tag",
|
||||||
|
commits: []GitCommitLog{commitlog("t1", map[string]string{}), commitlog("unmapped", map[string]string{})},
|
||||||
|
want: releaseNote(map[string]ReleaseNoteSection{"t1": rnSection("Tag 1", []GitCommitLog{commitlog("t1", map[string]string{})})}, nil),
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "breaking changes tag",
|
||||||
|
commits: []GitCommitLog{commitlog("t1", map[string]string{}), commitlog("unmapped", map[string]string{"breakingchange": "breaks"})},
|
||||||
|
want: releaseNote(map[string]ReleaseNoteSection{"t1": rnSection("Tag 1", []GitCommitLog{commitlog("t1", map[string]string{})})}, []string{"breaks"}),
|
||||||
|
},
|
||||||
|
}
|
||||||
|
for _, tt := range tests {
|
||||||
|
t.Run(tt.name, func(t *testing.T) {
|
||||||
|
p := NewReleaseNoteProcessor(map[string]string{"t1": "Tag 1", "t2": "Tag 2"})
|
||||||
|
if got := p.Get(tt.commits); !reflect.DeepEqual(got, tt.want) {
|
||||||
|
t.Errorf("ReleaseNoteProcessorImpl.Get() = %v, want %v", got, tt.want)
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
@ -57,17 +57,3 @@ func TestToVersion(t *testing.T) {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// helpers
|
|
||||||
|
|
||||||
func version(v string) semver.Version {
|
|
||||||
r, _ := semver.NewVersion(v)
|
|
||||||
return *r
|
|
||||||
}
|
|
||||||
|
|
||||||
func commitlog(t string, metadata map[string]string) GitCommitLog {
|
|
||||||
return GitCommitLog{
|
|
||||||
Type: t,
|
|
||||||
Metadata: metadata,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
Loading…
Reference in New Issue
Block a user