MCPcopy Create free account
hub / github.com/docker/go-plugins-helpers / TestHandler

Function TestHandler

secrets/api_test.go:12–56  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

10)
11
12func TestHandler(t *testing.T) {
13 p := &testPlugin{}
14 h := NewHandler(p)
15 l := sockets.NewInmemSocket("test", 0)
16 go h.Serve(l)
17 defer l.Close()
18
19 client := &http.Client{Transport: &http.Transport{
20 Dial: l.Dial,
21 }}
22
23 resp, err := pluginRequest(client, getPath, Request{SecretName: "my-secret"})
24 if err != nil {
25 t.Fatal(err)
26 }
27 if resp.Err != "" {
28 t.Fatalf("error while getting secret: %v", resp.Err)
29 }
30 if p.get != 1 {
31 t.Fatalf("expected get 1, got %d", p.get)
32 }
33 if !bytes.EqualFold(secret, resp.Value) {
34 t.Fatalf("expecting secret value %s, got %s", secret, resp.Value)
35 }
36 resp, err = pluginRequest(client, getPath, Request{SecretName: ""})
37 if err != nil {
38 t.Fatal(err)
39 }
40 if p.get != 2 {
41 t.Fatalf("expected get 2, got %d", p.get)
42 }
43 if resp.Err == "" {
44 t.Fatalf("expected missing secret")
45 }
46 resp, err = pluginRequest(client, getPath, Request{SecretName: "another-secret", SecretLabels: map[string]string{"prefix": "p-"}})
47 if err != nil {
48 t.Fatal(err)
49 }
50 if resp.Err != "" {
51 t.Fatalf("error while getting secret: %v", resp.Err)
52 }
53 if !bytes.EqualFold(append([]byte("p-"), secret...), resp.Value) {
54 t.Fatalf("expecting secret value %s, got %s", secret, resp.Value)
55 }
56}
57
58func pluginRequest(client *http.Client, method string, req Request) (*Response, error) {
59 b, err := json.Marshal(req)

Callers

nothing calls this directly

Calls 3

ServeMethod · 0.95
NewHandlerFunction · 0.70
pluginRequestFunction · 0.70

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…