Skip to content

Commit c230bcf

Browse files
authored
fix: previous parameter value is not a number (coder#12246)
1 parent b4fb754 commit c230bcf

File tree

2 files changed

+21
-1
lines changed

2 files changed

+21
-1
lines changed

codersdk/richparameters.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ func validateBuildParameter(richParameter TemplateVersionParameter, buildParamet
6060
value = richParameter.DefaultValue
6161
}
6262

63-
if lastBuildParameter != nil && richParameter.Type == "number" && len(richParameter.ValidationMonotonic) > 0 {
63+
if lastBuildParameter != nil && lastBuildParameter.Value != "" && richParameter.Type == "number" && len(richParameter.ValidationMonotonic) > 0 {
6464
prev, err := strconv.Atoi(lastBuildParameter.Value)
6565
if err != nil {
6666
return xerrors.Errorf("previous parameter value is not a number: %s", lastBuildParameter.Value)

codersdk/richparameters_test.go

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -309,6 +309,26 @@ func TestRichParameterValidation(t *testing.T) {
309309
})
310310
}
311311

312+
func TestParameterResolver_ValidateResolve_EmptyString_Monotonic(t *testing.T) {
313+
t.Parallel()
314+
uut := codersdk.ParameterResolver{
315+
Rich: []codersdk.WorkspaceBuildParameter{{Name: "n", Value: ""}},
316+
}
317+
p := codersdk.TemplateVersionParameter{
318+
Name: "n",
319+
Type: "number",
320+
Mutable: true,
321+
DefaultValue: "0",
322+
ValidationMonotonic: codersdk.MonotonicOrderIncreasing,
323+
}
324+
v, err := uut.ValidateResolve(p, &codersdk.WorkspaceBuildParameter{
325+
Name: "n",
326+
Value: "1",
327+
})
328+
require.NoError(t, err)
329+
require.Equal(t, "1", v)
330+
}
331+
312332
func TestParameterResolver_ValidateResolve_Ephemeral_OverridePrevious(t *testing.T) {
313333
t.Parallel()
314334
uut := codersdk.ParameterResolver{

0 commit comments

Comments
 (0)