@@ -43,17 +43,21 @@
43 43 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
defer m.mu.Unlock()
44 44 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return m.accounts[nick]
45 45 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
46 46 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
47 47 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
var testKey = []byte("test-signing-key-do-not-use-in-production")
48 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
49 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ func cfg(channels, permissions []string) registry.EngagementConfig {
50 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return registry.EngagementConfig{Channels: channels, Permissions: permissions}
51 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
48 52 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
49 53 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
func TestRegister(t *testing.T) {
50 54 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p := newMockProvisioner()
51 55 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
r := registry.New(p, testKey)
52 56 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
53 57 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
creds, payload, err := r.Register("claude-01", registry.AgentTypeWorker,
54 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- []string{"#fleet", "#project.test"}, []string{"task.create"})
58 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ cfg([]string{"#fleet", "#project.test"}, []string{"task.create"}))
55 59 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if err != nil {
56 60 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
t.Fatalf("Register: %v", err)
57 61 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
58 62 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
59 63 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if creds.Nick != "claude-01" {
@@ -69,32 +73,32 @@
69 73 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
t.Errorf("payload Nick: got %q", payload.Payload.Nick)
70 74 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
71 75 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if payload.Signature == "" {
72 76 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
t.Error("payload signature is empty")
73 77 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
78 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if len(payload.Payload.Config.Channels) != 2 {
79 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ t.Errorf("payload channels: got %d, want 2", len(payload.Payload.Config.Channels))
80 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
74 81 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
75 82 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
76 83 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
func TestRegisterDuplicate(t *testing.T) {
77 84 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p := newMockProvisioner()
78 85 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
r := registry.New(p, testKey)
79 86 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
80 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- _, _, err := r.Register("agent-01", registry.AgentTypeWorker, nil, nil)
81 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if err != nil {
87 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if _, _, err := r.Register("agent-01", registry.AgentTypeWorker, registry.EngagementConfig{}); err != nil {
82 88 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
t.Fatalf("first Register: %v", err)
83 89 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
84 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
85 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- _, _, err = r.Register("agent-01", registry.AgentTypeWorker, nil, nil)
86 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if err == nil {
90 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if _, _, err := r.Register("agent-01", registry.AgentTypeWorker, registry.EngagementConfig{}); err == nil {
87 91 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
t.Error("expected error on duplicate registration, got nil")
88 92 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
89 93 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
90 94 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
91 95 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
func TestRotate(t *testing.T) {
92 96 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p := newMockProvisioner()
93 97 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
r := registry.New(p, testKey)
94 98 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
95 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- creds, _, err := r.Register("agent-02", registry.AgentTypeWorker, nil, nil)
99 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ creds, _, err := r.Register("agent-02", registry.AgentTypeWorker, registry.EngagementConfig{})
96 100 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if err != nil {
97 101 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
t.Fatalf("Register: %v", err)
98 102 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
99 103 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
original := creds.Passphrase
100 104 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -112,25 +116,22 @@
112 116 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
113 117 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
func TestRevoke(t *testing.T) {
114 118 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p := newMockProvisioner()
115 119 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
r := registry.New(p, testKey)
116 120 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
117 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- creds, _, err := r.Register("agent-03", registry.AgentTypeWorker, nil, nil)
121 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ creds, _, err := r.Register("agent-03", registry.AgentTypeWorker, registry.EngagementConfig{})
118 122 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if err != nil {
119 123 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
t.Fatalf("Register: %v", err)
120 124 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
121 125 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
122 126 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if err := r.Revoke("agent-03"); err != nil {
123 127 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
t.Fatalf("Revoke: %v", err)
124 128 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
125 129 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
126 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- // Passphrase in Ergo should have changed to lockout value.
127 130 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if p.passphrase("agent-03") == creds.Passphrase {
128 131 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
t.Error("passphrase should change after revocation")
129 132 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
130 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
131 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- // Get should fail for revoked agent.
132 133 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if _, err := r.Get("agent-03"); err == nil {
133 134 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
t.Error("Get should fail for revoked agent")
134 135 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
135 136 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
136 137 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -137,11 +138,11 @@
137 138 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
func TestVerifyPayload(t *testing.T) {
138 139 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p := newMockProvisioner()
139 140 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
r := registry.New(p, testKey)
140 141 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
141 142 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
_, payload, err := r.Register("agent-04", registry.AgentTypeOrchestrator,
142 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- []string{"#fleet"}, []string{"task.create", "task.assign"})
143 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ cfg([]string{"#fleet"}, []string{"task.create", "task.assign"}))
143 144 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if err != nil {
144 145 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
t.Fatalf("Register: %v", err)
145 146 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
146 147 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
147 148 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if err := registry.VerifyPayload(payload, testKey); err != nil {
@@ -158,11 +159,11 @@
158 159 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
func TestList(t *testing.T) {
159 160 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
p := newMockProvisioner()
160 161 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
r := registry.New(p, testKey)
161 162 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
162 163 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for _, nick := range []string{"a", "b", "c"} {
163 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if _, _, err := r.Register(nick, registry.AgentTypeWorker, nil, nil); err != nil {
164 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if _, _, err := r.Register(nick, registry.AgentTypeWorker, registry.EngagementConfig{}); err != nil {
164 165 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
t.Fatalf("Register %q: %v", nick, err)
165 166 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
166 167 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
167 168 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if err := r.Revoke("b"); err != nil {
168 169 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
t.Fatalf("Revoke: %v", err)
@@ -171,5 +172,88 @@
171 172 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
agents := r.List()
172 173 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if len(agents) != 2 {
173 174 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
t.Errorf("List: got %d agents, want 2 (revoked should be excluded)", len(agents))
174 175 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
175 176 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
177 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
178 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ func TestEngagementConfigValidation(t *testing.T) {
179 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ tests := []struct {
180 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ name string
181 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ cfg registry.EngagementConfig
182 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ wantErr bool
183 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }{
184 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {
185 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ name: "valid full config",
186 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ cfg: registry.EngagementConfig{
187 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Channels: []string{"#fleet", "#project.test"},
188 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ OpsChannels: []string{"#fleet"},
189 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Permissions: []string{"task.create"},
190 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ RateLimit: registry.RateLimitConfig{MessagesPerSecond: 10, Burst: 20},
191 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Rules: registry.EngagementRules{
192 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ RespondToTypes: []string{"task.create"},
193 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ IgnoreNicks: []string{"scribe"},
194 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ },
195 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ },
196 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ wantErr: false,
197 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ },
198 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {
199 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ name: "empty config is valid",
200 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ cfg: registry.EngagementConfig{},
201 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ wantErr: false,
202 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ },
203 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {
204 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ name: "channel missing hash",
205 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ cfg: registry.EngagementConfig{Channels: []string{"fleet"}},
206 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ wantErr: true,
207 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ },
208 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {
209 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ name: "channel with space",
210 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ cfg: registry.EngagementConfig{Channels: []string{"#fleet channel"}},
211 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ wantErr: true,
212 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ },
213 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {
214 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ name: "ops_channel not in channels",
215 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ cfg: registry.EngagementConfig{Channels: []string{"#fleet"}, OpsChannels: []string{"#other"}},
216 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ wantErr: true,
217 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ },
218 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {
219 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ name: "negative rate limit",
220 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ cfg: registry.EngagementConfig{RateLimit: registry.RateLimitConfig{MessagesPerSecond: -1}},
221 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ wantErr: true,
222 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ },
223 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {
224 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ name: "negative burst",
225 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ cfg: registry.EngagementConfig{RateLimit: registry.RateLimitConfig{Burst: -5}},
226 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ wantErr: true,
227 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ },
228 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ {
229 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ name: "empty respond_to_type",
230 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ cfg: registry.EngagementConfig{Rules: registry.EngagementRules{RespondToTypes: []string{""}}},
231 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ wantErr: true,
232 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ },
233 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
234 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
235 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for _, tt := range tests {
236 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ t.Run(tt.name, func(t *testing.T) {
237 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ err := tt.cfg.Validate()
238 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if (err != nil) != tt.wantErr {
239 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ t.Errorf("Validate() error = %v, wantErr %v", err, tt.wantErr)
240 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
241 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ })
242 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
243 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
244 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
245 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ func TestRegisterInvalidConfig(t *testing.T) {
246 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ p := newMockProvisioner()
247 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ r := registry.New(p, testKey)
248 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
249 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ _, _, err := r.Register("bad-agent", registry.AgentTypeWorker, registry.EngagementConfig{
250 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Channels: []string{"no-hash-here"},
251 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ })
252 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if err == nil {
253 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ t.Error("expected error for invalid channel name, got nil")
254 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
255 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ // Account should not have been created.
256 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if p.passphrase("bad-agent") != "" {
257 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ t.Error("account should not be created when config is invalid")
258 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
259 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
176 260 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!