mirror of https://github.com/nektos/act
46 lines
879 B
Go
46 lines
879 B
Go
package cmd
|
|
|
|
import (
|
|
"context"
|
|
"os"
|
|
"testing"
|
|
)
|
|
|
|
// Helper function to test main with different os.Args
|
|
func testMain(args []string) (exitCode int) {
|
|
// Save original os.Args and defer restoring it
|
|
origArgs := os.Args
|
|
defer func() { os.Args = origArgs }()
|
|
|
|
// Save original os.Exit and defer restoring it
|
|
defer func() { exitFunc = os.Exit }()
|
|
|
|
// Mock os.Exit
|
|
fakeExit := func(code int) {
|
|
exitCode = code
|
|
}
|
|
exitFunc = fakeExit
|
|
|
|
// Mock os.Args
|
|
os.Args = args
|
|
|
|
// Run the main function
|
|
Execute(context.Background(), "")
|
|
|
|
return exitCode
|
|
}
|
|
|
|
func TestMainHelp(t *testing.T) {
|
|
exitCode := testMain([]string{"cmd", "--help"})
|
|
if exitCode != 0 {
|
|
t.Errorf("Expected exit code 0, got %d", exitCode)
|
|
}
|
|
}
|
|
|
|
func TestMainNoArgsError(t *testing.T) {
|
|
exitCode := testMain([]string{"cmd"})
|
|
if exitCode != 1 {
|
|
t.Errorf("Expected exit code 1, got %d", exitCode)
|
|
}
|
|
}
|