@@ -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 }
0 commit comments