autobrr/pkg/version/version_test.go

129 lines
2.6 KiB
Go

package version
import (
"testing"
"github.com/stretchr/testify/assert"
)
func TestGitHubReleaseChecker_checkNewVersion(t *testing.T) {
type fields struct {
Repo string
}
type args struct {
version string
release *Release
}
tests := []struct {
name string
fields fields
args args
wantNew bool
wantVersion string
wantErr bool
}{
{
name: "outdated new available",
fields: fields{},
args: args{
version: "v0.2.0",
release: &Release{
TagName: "v0.3.0",
TargetCommitish: nil,
},
},
wantNew: true,
wantVersion: "0.3.0",
wantErr: false,
},
{
name: "same version",
fields: fields{},
args: args{
version: "v0.2.0",
release: &Release{
TagName: "v0.2.0",
TargetCommitish: nil,
},
},
wantNew: false,
wantVersion: "",
wantErr: false,
},
{
name: "no new version",
fields: fields{},
args: args{
version: "v0.3.0",
release: &Release{
TagName: "v0.2.0",
TargetCommitish: nil,
},
},
wantNew: false,
wantVersion: "",
wantErr: false,
},
{
name: "new rc available",
fields: fields{},
args: args{
version: "v0.3.0",
release: &Release{
TagName: "v0.3.0-rc1",
TargetCommitish: nil,
},
},
wantNew: false,
wantVersion: "",
wantErr: false,
},
{
name: "new rc available",
fields: fields{},
args: args{
version: "v0.3.0-RC1",
release: &Release{
TagName: "v0.3.0-RC2",
TargetCommitish: nil,
},
},
wantNew: true,
wantVersion: "0.3.0-RC2",
wantErr: false,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
g := &Checker{
Repo: tt.fields.Repo,
}
got, gotVersion, err := g.checkNewVersion(tt.args.version, tt.args.release)
if tt.wantErr && assert.Error(t, err) {
assert.Equal(t, tt.wantErr, err)
}
assert.Equal(t, tt.wantNew, got)
assert.Equal(t, tt.wantVersion, gotVersion)
})
}
}
func Test_isDevelop(t *testing.T) {
tests := []struct {
name string
version string
want bool
}{
{name: "test_1", version: "dev", want: true},
{name: "test_2", version: "develop", want: true},
{name: "test_3", version: "master", want: true},
{name: "test_4", version: "latest", want: true},
{name: "test_5", version: "v1.0.1", want: false},
{name: "test_6", version: "1.0.1", want: false},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
assert.Equalf(t, tt.want, isDevelop(tt.version), "isDevelop(%v)", tt.version)
})
}
}