@@ -183,10 +183,32 @@ func TestAction_SaveState(t *testing.T) {
183183 t .Parallel ()
184184
185185 var b bytes.Buffer
186- a := New (WithWriter (& b ))
186+ file , err := os .CreateTemp ("" , "" )
187+ if err != nil {
188+ t .Fatalf ("unable to create a temp env file: %s" , err )
189+ }
190+ defer os .Remove (file .Name ())
191+
192+ fakeGetenvFunc := newFakeGetenvFunc (t , "GITHUB_STATE" , file .Name ())
193+
194+ a := New (WithWriter (& b ), WithGetenv (fakeGetenvFunc ))
187195 a .SaveState ("key" , "value" )
196+ a .SaveState ("key2" , "value2" )
197+
198+ // expect an empty stdout buffer
199+ if got , want := b .String (), "" ; got != want {
200+ t .Errorf ("expected %q to be %q" , got , want )
201+ }
202+
203+ // expect the command to be written to the file.
204+ data , err := io .ReadAll (file )
205+ if err != nil {
206+ t .Errorf ("unable to read temp env file: %s" , err )
207+ }
188208
189- if got , want := b .String (), "::save-state name=key::value" + EOF ; got != want {
209+ want := "key<<_GitHubActionsFileCommandDelimeter_" + EOF + "value" + EOF + "_GitHubActionsFileCommandDelimeter_" + EOF
210+ want += "key2<<_GitHubActionsFileCommandDelimeter_" + EOF + "value2" + EOF + "_GitHubActionsFileCommandDelimeter_" + EOF
211+ if got := string (data ); got != want {
190212 t .Errorf ("expected %q to be %q" , got , want )
191213 }
192214}
@@ -314,8 +336,8 @@ func TestAction_SetEnv(t *testing.T) {
314336 if err != nil {
315337 t .Fatalf ("unable to create a temp env file: %s" , err )
316338 }
317-
318339 defer os .Remove (file .Name ())
340+
319341 fakeGetenvFunc := newFakeGetenvFunc (t , "GITHUB_ENV" , file .Name ())
320342 a := New (WithWriter (& b ), WithGetenv (fakeGetenvFunc ))
321343 a .SetEnv ("key" , "value" )
@@ -343,10 +365,32 @@ func TestAction_SetOutput(t *testing.T) {
343365 t .Parallel ()
344366
345367 var b bytes.Buffer
346- a := New (WithWriter (& b ))
368+ file , err := os .CreateTemp ("" , "" )
369+ if err != nil {
370+ t .Fatalf ("unable to create a temp env file: %s" , err )
371+ }
372+ defer os .Remove (file .Name ())
373+
374+ fakeGetenvFunc := newFakeGetenvFunc (t , "GITHUB_OUTPUT" , file .Name ())
375+
376+ a := New (WithWriter (& b ), WithGetenv (fakeGetenvFunc ))
347377 a .SetOutput ("key" , "value" )
378+ a .SetOutput ("key2" , "value2" )
379+
380+ // expect an empty stdout buffer
381+ if got , want := b .String (), "" ; got != want {
382+ t .Errorf ("expected %q to be %q" , got , want )
383+ }
384+
385+ // expect the command to be written to the file.
386+ data , err := io .ReadAll (file )
387+ if err != nil {
388+ t .Errorf ("unable to read temp env file: %s" , err )
389+ }
348390
349- if got , want := b .String (), "::set-output name=key::value" + EOF ; got != want {
391+ want := "key<<_GitHubActionsFileCommandDelimeter_" + EOF + "value" + EOF + "_GitHubActionsFileCommandDelimeter_" + EOF
392+ want += "key2<<_GitHubActionsFileCommandDelimeter_" + EOF + "value2" + EOF + "_GitHubActionsFileCommandDelimeter_" + EOF
393+ if got := string (data ); got != want {
350394 t .Errorf ("expected %q to be %q" , got , want )
351395 }
352396}
0 commit comments