Skip to content

Commit 70b5caa

Browse files
authored
feat: do not return hidden variables (#143)
1 parent 66af892 commit 70b5caa

File tree

5 files changed

+81
-0
lines changed

5 files changed

+81
-0
lines changed

internal/orchestrator/bricks/bricks.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,9 @@ func getInstanceBrickConfigVariableDetails(
141141
variableDetails := make([]BrickConfigVariable, 0, len(brick.Variables))
142142

143143
for _, v := range brick.Variables {
144+
if v.Hidden {
145+
continue
146+
}
144147
finalValue := v.DefaultValue
145148

146149
userValue, ok := userVariables[v.Name]
@@ -224,6 +227,9 @@ func getBrickConfigVariableDetails(
224227
variableDetails := make([]BrickConfigVariable, 0, len(brick.Variables))
225228

226229
for _, v := range brick.Variables {
230+
if v.Hidden {
231+
continue
232+
}
227233
variablesMap[v.Name] = BrickVariable{
228234
DefaultValue: v.DefaultValue,
229235
Description: v.Description,

internal/orchestrator/bricks/bricks_test.go

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -313,6 +313,20 @@ func TestGetBrickInstanceVariableDetails(t *testing.T) {
313313
expectedConfigVariables: []BrickConfigVariable{},
314314
expectedVariableMap: map[string]string{},
315315
},
316+
{
317+
name: "hidden variables",
318+
brick: &bricksindex.Brick{Variables: []bricksindex.BrickVariable{
319+
{Name: "HIDDEN_VAR", DefaultValue: "i-am-hidden", Description: "a-hidden-variable", Hidden: true},
320+
{Name: "VISIBLE_VAR", DefaultValue: "i-am-visible", Description: "a-visible-variable", Hidden: false},
321+
{Name: "VISIBLE_VAR_WITH_MISSING", DefaultValue: "i-am-visible-if-missing-hidden", Description: "a-visible-variable"},
322+
}},
323+
userVariables: map[string]string{},
324+
expectedConfigVariables: []BrickConfigVariable{
325+
{Name: "VISIBLE_VAR", Value: "i-am-visible", Description: "a-visible-variable", Required: false},
326+
{Name: "VISIBLE_VAR_WITH_MISSING", Value: "i-am-visible-if-missing-hidden", Description: "a-visible-variable", Required: false},
327+
},
328+
expectedVariableMap: map[string]string{"VISIBLE_VAR": "i-am-visible", "VISIBLE_VAR_WITH_MISSING": "i-am-visible-if-missing-hidden"},
329+
},
316330
}
317331

318332
for _, tt := range tests {
@@ -705,6 +719,15 @@ func TestAppBrickInstancesList(t *testing.T) {
705719
RequireModel: false,
706720
Ports: []string{"7000", "8000"},
707721
},
722+
{
723+
ID: "arduino:with-hidden-vars",
724+
Name: "I have some hidden variables",
725+
Variables: []bricksindex.BrickVariable{
726+
{Name: "HIDDEN_VAR", DefaultValue: "/i/am/hidden", Hidden: true},
727+
{Name: "VISIBLE_VAR", DefaultValue: "/i/am/visible"},
728+
{Name: "VISIBLE_VAR_IF_MISSING", DefaultValue: "/i/am/visible", Hidden: false},
729+
},
730+
},
708731
},
709732
}
710733

@@ -833,6 +856,32 @@ func TestAppBrickInstancesList(t *testing.T) {
833856
require.Equal(t, "/models/ootb/ei/glass-breaking.eim", b2.ConfigVariables[1].Value)
834857
},
835858
},
859+
{
860+
name: "Success - hidden variables are not included",
861+
app: &app.ArduinoApp{
862+
Descriptor: app.AppDescriptor{
863+
Bricks: []app.Brick{
864+
{
865+
ID: "arduino:with-hidden-vars",
866+
Variables: map[string]string{
867+
"HIDDEN_VAR": "/this/is/a/new/hidden/value",
868+
"VISIBLE_VAR": "/this/is/a/new/visible/value",
869+
},
870+
},
871+
},
872+
},
873+
},
874+
validate: func(t *testing.T, res AppBrickInstancesResult) {
875+
require.Len(t, res.BrickInstances, 1)
876+
brick := res.BrickInstances[0]
877+
require.Equal(t, "arduino:with-hidden-vars", brick.ID)
878+
expected := []BrickConfigVariable{
879+
{Name: "VISIBLE_VAR", Value: "/this/is/a/new/visible/value"},
880+
{Name: "VISIBLE_VAR_IF_MISSING", Value: "/i/am/visible"},
881+
}
882+
require.Equal(t, expected, brick.ConfigVariables)
883+
},
884+
},
836885
}
837886

838887
for _, tt := range tests {

internal/orchestrator/bricksindex/bricks_index.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ type BrickVariable struct {
4242
Name string `yaml:"name"`
4343
DefaultValue string `yaml:"default_value"`
4444
Description string `yaml:"description,omitempty"`
45+
Hidden bool `yaml:"hidden"`
4546
}
4647

4748
func (v BrickVariable) IsRequired() bool {

internal/orchestrator/bricksindex/bricks_index_test.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,15 @@ func TestGenerateBricksIndexFromFile(t *testing.T) {
5858
bNoRequireModel, found := index.FindBrickByID("arduino:missing-model-require")
5959
require.True(t, found)
6060
require.False(t, bNoRequireModel.RequireModel)
61+
62+
withHidden, found := index.FindBrickByID("arduino:with-hidden-variables")
63+
require.True(t, found)
64+
require.Equal(t, "HIDDEN_VARIABLE", withHidden.Variables[0].Name)
65+
require.True(t, withHidden.Variables[0].Hidden)
66+
require.Equal(t, "VISIBLE_VARIABLE", withHidden.Variables[1].Name)
67+
require.False(t, withHidden.Variables[1].Hidden)
68+
require.Equal(t, "VISIBLE_VARIABLE_IF_MISSING_HIDDEN", withHidden.Variables[2].Name)
69+
require.False(t, withHidden.Variables[2].Hidden)
6170
}
6271

6372
func TestBricksIndexYAMLFormats(t *testing.T) {

internal/orchestrator/bricksindex/testdata/bricks-list.yaml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,3 +140,19 @@ bricks:
140140
name: Model Required Brick
141141
description: A brick that requires a model
142142
require_model: true
143+
- id: arduino:with-hidden-variables
144+
name: Visual Anomaly Detection
145+
description: "Brick with hidden variables"
146+
variables:
147+
- name: HIDDEN_VARIABLE
148+
default_value: a_hidden_value
149+
description: this variable is hidden
150+
hidden: true
151+
- name: VISIBLE_VARIABLE
152+
default_value: a_visible_value
153+
description: this variable is visible because 'hidden' is set to false
154+
hidden: false
155+
- name: VISIBLE_VARIABLE_IF_MISSING_HIDDEN
156+
default_value: another_visible_value
157+
description: this variable is visiable because 'hidden' field is missing
158+
hidden: false

0 commit comments

Comments
 (0)