mirror of
https://github.com/rclone/rclone.git
synced 2026-05-12 01:57:56 -04:00
56 lines
1.6 KiB
Go
56 lines
1.6 KiB
Go
package protondrive
|
|
|
|
import (
|
|
"regexp"
|
|
"testing"
|
|
)
|
|
|
|
var protonDriveAppVersionPattern = regexp.MustCompile(`(?i)^external-drive(-[a-z_]+)+@[0-9]+\.[0-9]+\.[0-9]+(\.[0-9]+)?-((stable|beta|RC|alpha)(([.-]?\d+)*)?)?([.-]?dev)?(\+.*)?$`)
|
|
|
|
func TestProtonDriveAppVersionFromRcloneVersion(t *testing.T) {
|
|
testCases := []struct {
|
|
name string
|
|
rcloneVersion string
|
|
want string
|
|
}{
|
|
{
|
|
name: "release",
|
|
rcloneVersion: "v1.73.5",
|
|
want: "external-drive-rclone@1.73.5-stable",
|
|
},
|
|
{
|
|
name: "dev build",
|
|
rcloneVersion: "v1.74.0-DEV",
|
|
want: "external-drive-rclone@1.74.0-dev",
|
|
},
|
|
{
|
|
name: "beta build with extra metadata",
|
|
rcloneVersion: "v1.74.0-beta.9519.990f33f2a.fix-protondrive-sdk-2026",
|
|
want: "external-drive-rclone@1.74.0-beta.9519+990f33f2a.fix-protondrive-sdk-2026",
|
|
},
|
|
{
|
|
name: "beta build with unsanitized branch name",
|
|
rcloneVersion: "v1.74.0-beta.9519.990f33f2a.fix/protondrive-sdk-2026",
|
|
want: "external-drive-rclone@1.74.0-beta.9519+990f33f2a.fix-protondrive-sdk-2026",
|
|
},
|
|
{
|
|
name: "invalid version falls back to stable",
|
|
rcloneVersion: "not-a-version",
|
|
want: "external-drive-rclone@1.0.0-stable",
|
|
},
|
|
}
|
|
|
|
for _, testCase := range testCases {
|
|
t.Run(testCase.name, func(t *testing.T) {
|
|
got := protonDriveAppVersionFromRcloneVersion(testCase.rcloneVersion)
|
|
|
|
if got != testCase.want {
|
|
t.Fatalf("unexpected app version: got %q, want %q", got, testCase.want)
|
|
}
|
|
if !protonDriveAppVersionPattern.MatchString(got) {
|
|
t.Fatalf("app version %q does not match Proton pattern", got)
|
|
}
|
|
})
|
|
}
|
|
}
|