fix(plugin): simplify version validation error and align test expectations

Remove verbose 'semver range constraints' suffix from the error message.
The 'v' prefix hint is still appended only when the version starts with
'v'. Update test expectations to match the simplified messages.

Signed-off-by: MrJack <36191829+biagiopietro@users.noreply.github.com>
pull/31615/head
MrJack 6 months ago
parent 717f475e76
commit 57827f8599

@ -92,7 +92,7 @@ func (o *pluginUpdateOptions) complete(args []string) error {
} }
if version != "" { if version != "" {
if _, err := semver.StrictNewVersion(version); err != nil { if _, err := semver.StrictNewVersion(version); err != nil {
errMsg := fmt.Sprintf("invalid version %q for plugin %q: must be an exact semver version (e.g. 1.2.3); semver range constraints (e.g. ~1.2, ^1.0.0, >=1.0.0) are not supported", version, name) errMsg := fmt.Sprintf("invalid version %q for plugin %q: must be an exact semver version (e.g. 1.2.3)", version, name)
if strings.HasPrefix(version, "v") { if strings.HasPrefix(version, "v") {
errMsg += `; the "v" prefix is not allowed` errMsg += `; the "v" prefix is not allowed`
} }

@ -106,42 +106,42 @@ func TestPluginUpdateComplete(t *testing.T) {
{ {
name: "v-prefixed version rejected", name: "v-prefixed version rejected",
args: []string{"myplugin@v1.2.3"}, args: []string{"myplugin@v1.2.3"},
wantErr: `invalid version "v1.2.3" for plugin "myplugin": must be an exact semver version (e.g. 1.2.3); semver range constraints (e.g. ~1.2, ^1.0.0, >=1.0.0) are not supported; the "v" prefix is not allowed`, wantErr: `invalid version "v1.2.3" for plugin "myplugin": must be an exact semver version (e.g. 1.2.3); the "v" prefix is not allowed`,
}, },
{ {
name: "tilde range version rejected", name: "tilde range version rejected",
args: []string{"myplugin@~1.2"}, args: []string{"myplugin@~1.2"},
wantErr: `invalid version "~1.2" for plugin "myplugin": must be an exact semver version (e.g. 1.2.3); semver range constraints (e.g. ~1.2, ^1.0.0, >=1.0.0) are not supported`, wantErr: `invalid version "~1.2" for plugin "myplugin": must be an exact semver version (e.g. 1.2.3)`,
}, },
{ {
name: "caret range version rejected", name: "caret range version rejected",
args: []string{"myplugin@^1.2.3"}, args: []string{"myplugin@^1.2.3"},
wantErr: `invalid version "^1.2.3" for plugin "myplugin": must be an exact semver version (e.g. 1.2.3); semver range constraints (e.g. ~1.2, ^1.0.0, >=1.0.0) are not supported`, wantErr: `invalid version "^1.2.3" for plugin "myplugin": must be an exact semver version (e.g. 1.2.3)`,
}, },
{ {
name: "gte constraint rejected", name: "gte constraint rejected",
args: []string{"myplugin@>=1.0.0"}, args: []string{"myplugin@>=1.0.0"},
wantErr: `invalid version ">=1.0.0" for plugin "myplugin": must be an exact semver version (e.g. 1.2.3); semver range constraints (e.g. ~1.2, ^1.0.0, >=1.0.0) are not supported`, wantErr: `invalid version ">=1.0.0" for plugin "myplugin": must be an exact semver version (e.g. 1.2.3)`,
}, },
{ {
name: "wildcard version rejected", name: "wildcard version rejected",
args: []string{"myplugin@1.x"}, args: []string{"myplugin@1.x"},
wantErr: `invalid version "1.x" for plugin "myplugin": must be an exact semver version (e.g. 1.2.3); semver range constraints (e.g. ~1.2, ^1.0.0, >=1.0.0) are not supported`, wantErr: `invalid version "1.x" for plugin "myplugin": must be an exact semver version (e.g. 1.2.3)`,
}, },
{ {
name: "range constraint rejected", name: "range constraint rejected",
args: []string{"myplugin@>=1.0.0, <2.0.0"}, args: []string{"myplugin@>=1.0.0, <2.0.0"},
wantErr: `invalid version ">=1.0.0, <2.0.0" for plugin "myplugin": must be an exact semver version (e.g. 1.2.3); semver range constraints (e.g. ~1.2, ^1.0.0, >=1.0.0) are not supported`, wantErr: `invalid version ">=1.0.0, <2.0.0" for plugin "myplugin": must be an exact semver version (e.g. 1.2.3)`,
}, },
{ {
name: "garbage version rejected", name: "garbage version rejected",
args: []string{"myplugin@notaversion"}, args: []string{"myplugin@notaversion"},
wantErr: `invalid version "notaversion" for plugin "myplugin": must be an exact semver version (e.g. 1.2.3); semver range constraints (e.g. ~1.2, ^1.0.0, >=1.0.0) are not supported`, wantErr: `invalid version "notaversion" for plugin "myplugin": must be an exact semver version (e.g. 1.2.3)`,
}, },
{ {
name: "range rejected among multiple plugins", name: "range rejected among multiple plugins",
args: []string{"plugin-a@1.0.0", "plugin-b@~2.0"}, args: []string{"plugin-a@1.0.0", "plugin-b@~2.0"},
wantErr: `invalid version "~2.0" for plugin "plugin-b": must be an exact semver version (e.g. 1.2.3); semver range constraints (e.g. ~1.2, ^1.0.0, >=1.0.0) are not supported`, wantErr: `invalid version "~2.0" for plugin "plugin-b": must be an exact semver version (e.g. 1.2.3)`,
}, },
} }
for _, tt := range tests { for _, tt := range tests {

Loading…
Cancel
Save