github.com/kubeshop/testkube@v1.17.23/contrib/executor/zap/pkg/runner/zap_test.go (about) 1 package runner 2 3 import ( 4 "testing" 5 6 "github.com/stretchr/testify/assert" 7 ) 8 9 func TestUnmarshal(t *testing.T) { 10 11 t.Run("Parse Baseline Config YAML", func(t *testing.T) { 12 args := Options{} 13 err := args.UnmarshalYAML("../../examples/zap-baseline.yaml") 14 15 assert.NoError(t, err) 16 assert.Equal(t, "https://www.example.com/", args.Baseline.Target) 17 }) 18 19 t.Run("Parse API Config YAML", func(t *testing.T) { 20 args := Options{} 21 err := args.UnmarshalYAML("../../examples/zap-api.yaml") 22 23 assert.NoError(t, err) 24 assert.Equal(t, "https://www.example.com/openapi.json", args.API.Target) 25 assert.Equal(t, "openapi", args.API.Format) 26 assert.Equal(t, "https://www.example.com", args.API.Hostname) 27 assert.True(t, args.API.Safe) 28 assert.True(t, args.API.Debug) 29 assert.False(t, args.API.Short) 30 assert.Equal(t, 5, args.API.Delay) 31 assert.Equal(t, 60, args.API.Time) 32 assert.Equal(t, "-config aaa=bbb", args.API.ZapOptions) 33 }) 34 35 t.Run("Parse Full Config YAML", func(t *testing.T) { 36 args := Options{} 37 err := args.UnmarshalYAML("../../examples/zap-full.yaml") 38 39 assert.NoError(t, err) 40 assert.Equal(t, "https://www.example.com/", args.Full.Target) 41 assert.Equal(t, -1, args.Full.Minutes) 42 }) 43 } 44 45 func TestArgs(t *testing.T) { 46 t.Run("Baseline Scan Args", func(t *testing.T) { 47 args := Options{ 48 Baseline: BaselineOptions{ 49 Target: "https://www.example.com/", 50 Config: "examples/zap-baseline.conf", 51 Minutes: 3, 52 Delay: -1, 53 Debug: true, 54 FailOnWarn: true, 55 Level: "INFO", 56 Ajax: false, 57 Short: true, 58 }, 59 } 60 61 cmd := args.ToBaselineScanArgs("baseline.html") 62 63 assert.Equal(t, "-t", cmd[0]) 64 assert.Equal(t, "https://www.example.com/", cmd[1]) 65 assert.Equal(t, "-c", cmd[2]) 66 assert.Equal(t, "examples/zap-baseline.conf", cmd[3]) 67 assert.Equal(t, "-m", cmd[4]) 68 assert.Equal(t, "3", cmd[5]) 69 assert.Equal(t, "-d", cmd[6]) 70 assert.Equal(t, "-l", cmd[7]) 71 assert.Equal(t, "INFO", cmd[8]) 72 assert.Equal(t, "-s", cmd[9]) 73 assert.Equal(t, "-r", cmd[10]) 74 assert.Equal(t, "baseline.html", cmd[11]) 75 assert.Equal(t, "--auto", cmd[12]) 76 }) 77 78 t.Run("Full Scan Args", func(t *testing.T) { 79 args := Options{ 80 Full: FullOptions{ 81 Target: "https://www.example.com/", 82 Config: "examples/zap-baseline.conf", 83 Minutes: -1, 84 Debug: false, 85 FailOnWarn: false, 86 Level: "FAIL", 87 Ajax: true, 88 Short: true, 89 }, 90 } 91 92 cmd := args.ToFullScanArgs("full.html") 93 94 assert.Equal(t, "-t", cmd[0]) 95 assert.Equal(t, "https://www.example.com/", cmd[1]) 96 assert.Equal(t, "-c", cmd[2]) 97 assert.Equal(t, "examples/zap-baseline.conf", cmd[3]) 98 assert.Equal(t, "-I", cmd[4]) 99 assert.Equal(t, "-j", cmd[5]) 100 assert.Equal(t, "-l", cmd[6]) 101 assert.Equal(t, "FAIL", cmd[7]) 102 assert.Equal(t, "-s", cmd[8]) 103 assert.Equal(t, "-r", cmd[9]) 104 assert.Equal(t, "full.html", cmd[10]) 105 }) 106 107 t.Run("API Scan Args", func(t *testing.T) { 108 args := Options{ 109 API: ApiOptions{ 110 Target: "https://www.example.com/openapi.json", 111 Format: "openapi", 112 Safe: true, 113 Config: "https://www.example.com/zap-api.conf", 114 Debug: true, 115 Short: false, 116 Level: "PASS", 117 User: "anonymous", 118 Delay: 5, 119 FailOnWarn: true, 120 Time: 60, 121 Hostname: "https://www.example.com", 122 ZapOptions: "-config aaa=bbb", 123 }, 124 } 125 126 cmd := args.ToApiScanArgs("report.html") 127 128 assert.Equal(t, "-t", cmd[0]) 129 assert.Equal(t, "https://www.example.com/openapi.json", cmd[1]) 130 assert.Equal(t, "-f", cmd[2]) 131 assert.Equal(t, "openapi", cmd[3]) 132 assert.Equal(t, "-u", cmd[4]) 133 assert.Equal(t, "https://www.example.com/zap-api.conf", cmd[5]) 134 assert.Equal(t, "-d", cmd[6]) 135 assert.Equal(t, "-D", cmd[7]) 136 assert.Equal(t, "5", cmd[8]) 137 assert.Equal(t, "-l", cmd[9]) 138 assert.Equal(t, "PASS", cmd[10]) 139 assert.Equal(t, "-S", cmd[11]) 140 assert.Equal(t, "-T", cmd[12]) 141 assert.Equal(t, "60", cmd[13]) 142 assert.Equal(t, "-U", cmd[14]) 143 assert.Equal(t, "anonymous", cmd[15]) 144 assert.Equal(t, "-O", cmd[16]) 145 assert.Equal(t, "https://www.example.com", cmd[17]) 146 assert.Equal(t, "-z", cmd[18]) 147 assert.Equal(t, "-config aaa=bbb", cmd[19]) 148 }) 149 }