(t *testing.T)
| 134 | } |
| 135 | |
| 136 | func TestVersionIsNewer(t *testing.T) { |
| 137 | tests := []struct { |
| 138 | name string |
| 139 | version string |
| 140 | other string |
| 141 | want bool |
| 142 | }{ |
| 143 | {"newer major", "v2.0.0", "v1.0.0", true}, |
| 144 | {"older major", "v1.0.0", "v2.0.0", false}, |
| 145 | {"newer minor", "v1.2.0", "v1.1.0", true}, |
| 146 | {"older minor", "v1.1.0", "v1.2.0", false}, |
| 147 | {"newer patch", "v1.0.2", "v1.0.1", true}, |
| 148 | {"older patch", "v1.0.1", "v1.0.2", false}, |
| 149 | {"same version", "v1.0.0", "v1.0.0", false}, |
| 150 | {"release vs prerelease", "v1.0.0", "v1.0.0-beta", true}, |
| 151 | {"prerelease vs release", "v1.0.0-beta", "v1.0.0", false}, |
| 152 | {"same with prerelease", "v1.0.0-beta", "v1.0.0-beta", false}, |
| 153 | } |
| 154 | |
| 155 | for _, tt := range tests { |
| 156 | t.Run(tt.name, func(t *testing.T) { |
| 157 | v := parseVersion(tt.version) |
| 158 | other := parseVersion(tt.other) |
| 159 | |
| 160 | if v == nil || other == nil { |
| 161 | t.Fatalf("failed to parse versions: %q or %q", tt.version, tt.other) |
| 162 | } |
| 163 | |
| 164 | got := v.IsNewer(other) |
| 165 | if got != tt.want { |
| 166 | t.Errorf("(%q).IsNewer(%q) = %v, want %v", tt.version, tt.other, got, tt.want) |
| 167 | } |
| 168 | }) |
| 169 | } |
| 170 | } |
nothing calls this directly
no test coverage detected