autobrr/pkg/version/version_test.go
soup 0391629862
chore(license): update copyright year in headers (#1929)
* chore: update copyright year in license headers

* Revert "chore: update copyright year in license headers"

This reverts commit 3e58129c431b9a491089ce36b908f9bb6ba38ed3.

* chore: update copyright year in license headers

* fix: sort go imports

* fix: add missing license headers
2025-01-06 22:23:19 +01:00

134 lines
2.7 KiB
Go

// Copyright (c) 2021 - 2025, Ludvig Lundgren and the autobrr contributors.
// SPDX-License-Identifier: GPL-2.0-or-later
package version
import (
"testing"
"github.com/stretchr/testify/assert"
)
func TestGitHubReleaseChecker_checkNewVersion(t *testing.T) {
t.Parallel()
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: "",
},
},
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: "",
},
},
wantNew: false,
wantVersion: "",
wantErr: false,
},
{
name: "no new version",
fields: fields{},
args: args{
version: "v0.3.0",
release: &Release{
TagName: "v0.2.0",
TargetCommitish: "",
},
},
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: "",
},
},
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: "",
},
},
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) {
t.Parallel()
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)
})
}
}