(t *testing.T)
| 75 | } |
| 76 | |
| 77 | func Test_parseCaURL(t *testing.T) { |
| 78 | // This is just to get a simple CLI context |
| 79 | app := &cli.App{} |
| 80 | set := flag.NewFlagSet("contrive", 0) |
| 81 | _ = set.String("ca-url", "", "") |
| 82 | ctx := cli.NewContext(app, set, nil) |
| 83 | |
| 84 | type test struct { |
| 85 | name, caURL, ret string |
| 86 | err error |
| 87 | } |
| 88 | tests := []test{ |
| 89 | {name: "fail/invalidURL", caURL: "#$%@#://&%^&%#$^#$", ret: "", err: errors.New("invalid value '#$%@#://&%^&%#$^#$' for flag '--ca-url'; invalid URL")}, |
| 90 | {name: "fail/invalidScheme-git", caURL: "git://git@github.com", ret: "", err: errors.New("invalid value 'git://git@github.com' for flag '--ca-url'; must have https scheme")}, |
| 91 | {name: "fail/invalidScheme-http", caURL: "http://ca.smallstep.com:8080", ret: "", err: errors.New("invalid value 'http://ca.smallstep.com:8080' for flag '--ca-url'; must have https scheme")}, |
| 92 | {name: "ok", caURL: "https://ca.smallstep.com:8080", ret: "https://ca.smallstep.com:8080"}, |
| 93 | {name: "ok/provide-scheme", caURL: "ca.smallstep.com:8080", ret: "https://ca.smallstep.com:8080"}, |
| 94 | {name: "ok/ipv4", caURL: "https://127.0.0.1:8080", ret: "https://127.0.0.1:8080"}, |
| 95 | {name: "ok/ipv4-no-port", caURL: "https://127.0.0.1", ret: "https://127.0.0.1"}, |
| 96 | {name: "ok/ipv4-no-scheme", caURL: "127.0.0.1:8080", ret: "https://127.0.0.1:8080"}, |
| 97 | {name: "ok/ipv4-no-port-no-scheme", caURL: "127.0.0.1", ret: "https://127.0.0.1"}, |
| 98 | {name: "ok/ipv6-bracketed", caURL: "https://[::1]:8080", ret: "https://[::1]:8080"}, |
| 99 | {name: "ok/ipv6-bracketed-no-port", caURL: "https://[::1]", ret: "https://[::1]"}, |
| 100 | {name: "ok/ipv6-bracketed-no-scheme", caURL: "[::1]:8080", ret: "https://[::1]:8080"}, |
| 101 | {name: "ok/ipv6-bracketed-no-port-no-scheme", caURL: "[::1]", ret: "https://[::1]"}, |
| 102 | {name: "ok/ipv6-non-bracketed", caURL: "https://::1:8080", ret: "https://[::1]:8080"}, |
| 103 | {name: "ok/ipv6-non-bracketed-no-port", caURL: "https://::1", ret: "https://[::1]"}, |
| 104 | {name: "ok/ipv6-non-bracketed-no-scheme", caURL: "::1:8080", ret: "https://[::1]:8080"}, |
| 105 | {name: "ok/ipv6-non-bracketed-no-port-no-scheme", caURL: "::1", ret: "https://[::1]"}, |
| 106 | } |
| 107 | for _, tc := range tests { |
| 108 | t.Run(tc.name, func(t *testing.T) { |
| 109 | ret, err := parseCaURL(ctx, tc.caURL) |
| 110 | if err != nil && assert.NotNil(t, tc.err, fmt.Sprintf("expected no error but got <%s>", err)) { |
| 111 | assert.HasPrefix(t, err.Error(), tc.err.Error()) |
| 112 | } else if assert.Nil(t, tc.err, fmt.Sprintf("expected error <%s> but got nil", tc.err)) { |
| 113 | assert.Equals(t, ret, tc.ret) |
| 114 | } |
| 115 | }) |
| 116 | } |
| 117 | } |
| 118 | |
| 119 | func TestParseTemplateData(t *testing.T) { |
| 120 | tempDir := t.TempDir() |
nothing calls this directly
no test coverage detected
searching dependent graphs…