Skip to content

Commit 62e0452

Browse files
committed
Use service server parameters in execute and expect actions
1 parent 902044b commit 62e0452

File tree

11 files changed

+286
-84
lines changed

11 files changed

+286
-84
lines changed

mocks/generated/run/actions/action/execute/mock_Maker.go

Lines changed: 100 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

run/actions/action/execute/execute.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ func (m *ActionMaker) Make(
7373
return &Action{
7474
fnd: m.fnd,
7575
service: svc,
76-
parameters: parameters.Parameters{},
76+
parameters: svc.ServerParameters(),
7777
timeout: time.Duration(config.Timeout * 1e6),
7878
when: action.When(config.When),
7979
id: config.Id,

run/actions/action/execute/execute_test.go

Lines changed: 56 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,8 @@ func TestActionMaker_Make(t *testing.T) {
4545
name string
4646
config *types.ExecuteAction
4747
defaultTimeout int
48-
setupMocks func(*testing.T, *servicesMocks.MockServiceLocator) services.Service
49-
getExpectedAction func(*appMocks.MockFoundation, services.Service, output.Maker) *Action
48+
setupMocks func(*testing.T, *servicesMocks.MockServiceLocator) (services.Service, parameters.Parameters)
49+
getExpectedAction func(*appMocks.MockFoundation, services.Service, parameters.Parameters, output.Maker) *Action
5050
expectError bool
5151
expectedErrorMsg string
5252
}{
@@ -58,29 +58,37 @@ func TestActionMaker_Make(t *testing.T) {
5858
Command: &types.ShellCommand{
5959
Command: "echo hello",
6060
},
61-
Timeout: 0,
62-
When: "on_success",
63-
Id: "shell-cmd",
61+
Timeout: 0,
62+
When: "on_success",
63+
Id: "shell-cmd",
64+
RenderTemplate: true,
6465
},
6566
defaultTimeout: 5000,
66-
setupMocks: func(t *testing.T, sl *servicesMocks.MockServiceLocator) services.Service {
67+
setupMocks: func(t *testing.T, sl *servicesMocks.MockServiceLocator) (services.Service, parameters.Parameters) {
6768
svc := servicesMocks.NewMockService(t)
69+
// Create server parameters
70+
serverParams := parameters.Parameters{
71+
"shell_param1": parameterMocks.NewMockParameter(t),
72+
"shell_param2": parameterMocks.NewMockParameter(t),
73+
}
6874
sl.On("Find", "validService").Return(svc, nil)
69-
return svc
75+
svc.On("ServerParameters").Return(serverParams)
76+
return svc, serverParams
7077
},
71-
getExpectedAction: func(fndMock *appMocks.MockFoundation, svc services.Service, outMaker output.Maker) *Action {
78+
getExpectedAction: func(fndMock *appMocks.MockFoundation, svc services.Service, params parameters.Parameters, outMaker output.Maker) *Action {
7279
return &Action{
7380
fnd: fndMock,
7481
service: svc,
75-
parameters: parameters.Parameters{},
82+
parameters: params,
7683
timeout: 5000 * time.Millisecond,
7784
when: action.OnSuccess,
7885
id: "shell-cmd",
7986
command: &environment.Command{
8087
Name: "/bin/bash",
8188
Args: []string{"-c", "echo hello"},
8289
},
83-
outputMaker: outMaker,
90+
renderTemplate: true,
91+
outputMaker: outMaker,
8492
}
8593
},
8694
},
@@ -91,29 +99,37 @@ func TestActionMaker_Make(t *testing.T) {
9199
Command: &types.ArgsCommand{
92100
Args: []string{"ls", "-la"},
93101
},
94-
Timeout: 3000,
95-
When: "on_success",
96-
Id: "args-cmd",
102+
Timeout: 3000,
103+
When: "on_success",
104+
Id: "args-cmd",
105+
RenderTemplate: false,
97106
},
98107
defaultTimeout: 5000,
99-
setupMocks: func(t *testing.T, sl *servicesMocks.MockServiceLocator) services.Service {
108+
setupMocks: func(t *testing.T, sl *servicesMocks.MockServiceLocator) (services.Service, parameters.Parameters) {
100109
svc := servicesMocks.NewMockService(t)
110+
// Create different server parameters for this test
111+
serverParams := parameters.Parameters{
112+
"args_param1": parameterMocks.NewMockParameter(t),
113+
"args_param2": parameterMocks.NewMockParameter(t),
114+
}
101115
sl.On("Find", "validService").Return(svc, nil)
102-
return svc
116+
svc.On("ServerParameters").Return(serverParams)
117+
return svc, serverParams
103118
},
104-
getExpectedAction: func(fndMock *appMocks.MockFoundation, svc services.Service, outMaker output.Maker) *Action {
119+
getExpectedAction: func(fndMock *appMocks.MockFoundation, svc services.Service, params parameters.Parameters, outMaker output.Maker) *Action {
105120
return &Action{
106121
fnd: fndMock,
107122
service: svc,
108-
parameters: parameters.Parameters{},
123+
parameters: params,
109124
timeout: 3000 * time.Millisecond,
110125
when: action.OnSuccess,
111126
id: "args-cmd",
112127
command: &environment.Command{
113128
Name: "ls",
114129
Args: []string{"-la"},
115130
},
116-
outputMaker: outMaker,
131+
renderTemplate: false,
132+
outputMaker: outMaker,
117133
}
118134
},
119135
},
@@ -126,9 +142,9 @@ func TestActionMaker_Make(t *testing.T) {
126142
},
127143
},
128144
defaultTimeout: 5000,
129-
setupMocks: func(t *testing.T, sl *servicesMocks.MockServiceLocator) services.Service {
145+
setupMocks: func(t *testing.T, sl *servicesMocks.MockServiceLocator) (services.Service, parameters.Parameters) {
130146
sl.On("Find", "invalidService").Return(nil, errors.New("service not found"))
131-
return nil
147+
return nil, nil
132148
},
133149
expectError: true,
134150
expectedErrorMsg: "service not found",
@@ -142,10 +158,10 @@ func TestActionMaker_Make(t *testing.T) {
142158
},
143159
},
144160
defaultTimeout: 5000,
145-
setupMocks: func(t *testing.T, sl *servicesMocks.MockServiceLocator) services.Service {
161+
setupMocks: func(t *testing.T, sl *servicesMocks.MockServiceLocator) (services.Service, parameters.Parameters) {
146162
svc := servicesMocks.NewMockService(t)
147163
sl.On("Find", "validService").Return(svc, nil)
148-
return svc
164+
return svc, nil
149165
},
150166
expectError: true,
151167
expectedErrorMsg: "ArgsCommand requires at least one argument",
@@ -157,10 +173,10 @@ func TestActionMaker_Make(t *testing.T) {
157173
Command: &struct{}{}, // some arbitrary struct that doesn't implement known command types
158174
},
159175
defaultTimeout: 5000,
160-
setupMocks: func(t *testing.T, sl *servicesMocks.MockServiceLocator) services.Service {
176+
setupMocks: func(t *testing.T, sl *servicesMocks.MockServiceLocator) (services.Service, parameters.Parameters) {
161177
svc := servicesMocks.NewMockService(t)
162178
sl.On("Find", "validService").Return(svc, nil)
163-
return svc
179+
return svc, nil
164180
},
165181
expectError: true,
166182
expectedErrorMsg: "unsupported command type: *struct {}",
@@ -178,7 +194,7 @@ func TestActionMaker_Make(t *testing.T) {
178194
outputMaker: outMakerMock,
179195
}
180196

181-
svc := tt.setupMocks(t, slMock)
197+
svc, serverParams := tt.setupMocks(t, slMock)
182198

183199
got, err := m.Make(tt.config, slMock, tt.defaultTimeout)
184200

@@ -191,8 +207,21 @@ func TestActionMaker_Make(t *testing.T) {
191207
assert.NotNil(t, got)
192208
actualAction, ok := got.(*Action)
193209
assert.True(t, ok)
194-
expectedAction := tt.getExpectedAction(fndMock, svc, outMakerMock)
195-
assert.Equal(t, expectedAction, actualAction)
210+
expectedAction := tt.getExpectedAction(fndMock, svc, serverParams, outMakerMock)
211+
212+
// Check each field individually to make debugging easier if there's a mismatch
213+
assert.Equal(t, expectedAction.fnd, actualAction.fnd, "Foundation mismatch")
214+
assert.Equal(t, expectedAction.service, actualAction.service, "Service mismatch")
215+
assert.Equal(t, expectedAction.parameters, actualAction.parameters, "Parameters mismatch")
216+
assert.Equal(t, expectedAction.timeout, actualAction.timeout, "Timeout mismatch")
217+
assert.Equal(t, expectedAction.when, actualAction.when, "When mismatch")
218+
assert.Equal(t, expectedAction.id, actualAction.id, "ID mismatch")
219+
assert.Equal(t, expectedAction.command, actualAction.command, "Command mismatch")
220+
assert.Equal(t, expectedAction.renderTemplate, actualAction.renderTemplate, "RenderTemplate mismatch")
221+
assert.Equal(t, expectedAction.outputMaker, actualAction.outputMaker, "OutputMaker mismatch")
222+
223+
// Also do a full comparison
224+
assert.Equal(t, expectedAction, actualAction, "Complete Action struct mismatch")
196225
}
197226
})
198227
}

run/actions/action/expect/custom.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ func (m *ExpectationActionMaker) MakeCustomAction(
5252
CommonExpectation: commonExpectation,
5353
OutputExpectation: expectation.OutputExpectation(),
5454
ResponseExpectation: expectation.ResponseExpectation(),
55-
parameters: configParameters.Inherit(expectation.Parameters()).Inherit(server.Parameters()),
55+
parameters: configParameters.Inherit(expectation.Parameters()).Inherit(commonExpectation.service.ServerParameters()),
5656
}, nil
5757
}
5858

0 commit comments

Comments
 (0)