File tree Expand file tree Collapse file tree 2 files changed +61
-3
lines changed Expand file tree Collapse file tree 2 files changed +61
-3
lines changed Original file line number Diff line number Diff line change
1
+ import { TemplateVersionParameter } from "api/typesGenerated"
2
+ import { selectInitialRichParametersValues } from "./richParameters"
3
+
4
+ test ( "selectInitialRichParametersValues return default value when default build parameter is not valid" , ( ) => {
5
+ const templateParameters : TemplateVersionParameter [ ] = [
6
+ {
7
+ name : "cpu" ,
8
+ display_name : "CPU" ,
9
+ description : "The number of CPU cores" ,
10
+ description_plaintext : "The number of CPU cores" ,
11
+ type : "string" ,
12
+ mutable : true ,
13
+ default_value : "2" ,
14
+ icon : "/icon/memory.svg" ,
15
+ options : [
16
+ {
17
+ name : "2 Cores" ,
18
+ description : "" ,
19
+ value : "2" ,
20
+ icon : "" ,
21
+ } ,
22
+ {
23
+ name : "4 Cores" ,
24
+ description : "" ,
25
+ value : "4" ,
26
+ icon : "" ,
27
+ } ,
28
+ {
29
+ name : "6 Cores" ,
30
+ description : "" ,
31
+ value : "6" ,
32
+ icon : "" ,
33
+ } ,
34
+ {
35
+ name : "8 Cores" ,
36
+ description : "" ,
37
+ value : "8" ,
38
+ icon : "" ,
39
+ } ,
40
+ ] ,
41
+ required : false ,
42
+ ephemeral : false ,
43
+ } ,
44
+ ]
45
+
46
+ const cpuParameter = templateParameters [ 0 ]
47
+ const [ cpuParameterInitialValue ] = selectInitialRichParametersValues (
48
+ templateParameters ,
49
+ [ { name : cpuParameter . name , value : "100" } ] ,
50
+ )
51
+
52
+ expect ( cpuParameterInitialValue . value ) . toBe ( cpuParameter . default_value )
53
+ } )
Original file line number Diff line number Diff line change @@ -19,14 +19,19 @@ export const selectInitialRichParametersValues = (
19
19
20
20
if ( parameter . options . length > 0 ) {
21
21
parameterValue = parameterValue ?? parameter . options [ 0 ] . value
22
+ const validValues = parameter . options . map ( ( option ) => option . value )
22
23
23
24
if ( defaultBuildParameters ) {
24
- const buildParameter = defaultBuildParameters . find (
25
+ const defaultBuildParameter = defaultBuildParameters . find (
25
26
( p ) => p . name === parameter . name ,
26
27
)
27
28
28
- if ( buildParameter ) {
29
- parameterValue = buildParameter ?. value
29
+ // We don't want invalid values from default parameters to be set
30
+ if (
31
+ defaultBuildParameter &&
32
+ validValues . includes ( defaultBuildParameter . value )
33
+ ) {
34
+ parameterValue = defaultBuildParameter ?. value
30
35
}
31
36
}
32
37
You can’t perform that action at this time.
0 commit comments