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  }