MCPcopy
hub / github.com/smallstep/cli / TestProvisionerPromptPrompts

Function TestProvisionerPromptPrompts

utils/cautils/token_flow_test.go:31–163  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

29}
30
31func TestProvisionerPromptPrompts(t *testing.T) {
32 t.Run("single", func(t *testing.T) {
33 clictx := newContext(t)
34 p := &provisioner.OIDC{Name: "oidc", ClientID: "client-id"}
35
36 got, err := provisionerPrompt(clictx, []provisioner.Interface{p})
37 require.NoError(t, err, "cannot create a new token: the CA does not have any provisioner configured")
38 require.Same(t, p, got)
39 })
40
41 t.Run("select-kid-flag", func(t *testing.T) {
42 clictx := newContext(t)
43 require.NoError(t, clictx.Set("kid", "client-id"))
44
45 p1 := &provisioner.OIDC{Name: "oidc", ClientID: "client-id"}
46 p2 := &provisioner.SCEP{Name: "scep"}
47
48 got, err := provisionerPrompt(clictx, []provisioner.Interface{p1, p2})
49 require.NoError(t, err)
50 require.Same(t, p1, got)
51 })
52
53 t.Run("select-admin-provisioner-flag", func(t *testing.T) {
54 clictx := newContext(t)
55 require.NoError(t, clictx.Set("admin-provisioner", "oidc"))
56
57 p1 := &provisioner.OIDC{Name: "oidc", ClientID: "client-id"}
58 p2 := &provisioner.SCEP{Name: "scep"}
59
60 got, err := provisionerPrompt(clictx, []provisioner.Interface{p1, p2})
61 require.NoError(t, err)
62 require.Same(t, p1, got)
63
64 clictx.Set("admin-provisioner", "scep")
65 got, err = provisionerPrompt(clictx, []provisioner.Interface{p1, p2})
66 require.NoError(t, err)
67 require.Same(t, p2, got)
68 })
69
70 t.Run("select-provisioner-flag", func(t *testing.T) {
71 clictx := newContext(t)
72 require.NoError(t, clictx.Set("provisioner", "oidc"))
73
74 p1 := &provisioner.OIDC{Name: "oidc", ClientID: "client-id"}
75 p2 := &provisioner.SCEP{Name: "scep"}
76
77 got, err := provisionerPrompt(clictx, []provisioner.Interface{p1, p2})
78 require.NoError(t, err)
79 require.Same(t, p1, got)
80
81 clictx.Set("provisioner", "scep")
82 got, err = provisionerPrompt(clictx, []provisioner.Interface{p1, p2})
83 require.NoError(t, err)
84 require.Same(t, p2, got)
85 })
86
87 t.Run("ignore-provisioner-flag", func(t *testing.T) {
88 clictx := newContext(t) // provisioner flag is not set; in reality it'll be unset based on policy level

Callers

nothing calls this directly

Calls 5

newContextFunction · 0.85
provisionerPromptFunction · 0.85
SetMethod · 0.80
RunMethod · 0.65
ErrorMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…