mirror of
https://github.com/wahyd4/jabba.git
synced 2026-08-10 21:36:46 +10:00
33 lines
880 B
Go
33 lines
880 B
Go
package semver
|
|
|
|
import (
|
|
"testing"
|
|
)
|
|
|
|
func TestContains(t *testing.T) {
|
|
assertWithinRange(t, "1.8", "1.8.0", true)
|
|
assertWithinRange(t, "1.7", "1.8.0", false)
|
|
assertWithinRange(t, "1.8.0-0", "1.8.0-0", true)
|
|
assertWithinRange(t, "1.8.0-0", "1.8.0-1", false)
|
|
assertWithinRange(t, "~1.8", "1.8.99", true)
|
|
assertWithinRange(t, "~1.8", "1.9.0", false)
|
|
assertWithinRange(t, "a@1.8", "a@1.8.72", true)
|
|
assertWithinRange(t, "1.8", "a@1.8.72", false)
|
|
assertWithinRange(t, "a@1.8", "b@1.8.72", false)
|
|
assertWithinRange(t, "a@1.8", "1.8.72", false)
|
|
}
|
|
|
|
func assertWithinRange(t *testing.T, rng string, ver string, value bool) {
|
|
r, err := ParseRange(rng)
|
|
if err != nil {
|
|
t.Fatalf("err: %v", err)
|
|
}
|
|
v, err := ParseVersion(ver)
|
|
if err != nil {
|
|
t.Fatalf("err: %v", err)
|
|
}
|
|
if r.Contains(v) != value {
|
|
t.Fatalf("expected range %v to contain %v (%v)", rng, ver, value)
|
|
}
|
|
}
|