MCPcopy Index your code
hub / github.com/docker/cli / TestNodeContextWriteJSON

Function TestNodeContextWriteJSON

cli/command/node/formatter_test.go:225–277  ·  view source on GitHub ↗
(t *testing.T)

Source from the content-addressed store, hash-verified

223}
224
225func TestNodeContextWriteJSON(t *testing.T) {
226 cases := []struct {
227 expected []map[string]any
228 info client.SystemInfoResult
229 }{
230 {
231 expected: []map[string]any{
232 {"Availability": "", "Hostname": "foobar_baz", "ID": "nodeID1", "ManagerStatus": "", "Status": "", "Self": false, "TLSStatus": "Unknown", "EngineVersion": "1.2.3"},
233 {"Availability": "", "Hostname": "foobar_bar", "ID": "nodeID2", "ManagerStatus": "", "Status": "", "Self": false, "TLSStatus": "Unknown", "EngineVersion": ""},
234 {"Availability": "", "Hostname": "foobar_boo", "ID": "nodeID3", "ManagerStatus": "", "Status": "", "Self": false, "TLSStatus": "Unknown", "EngineVersion": "18.03.0-ce"},
235 },
236 },
237 {
238 expected: []map[string]any{
239 {"Availability": "", "Hostname": "foobar_baz", "ID": "nodeID1", "ManagerStatus": "", "Status": "", "Self": false, "TLSStatus": "Ready", "EngineVersion": "1.2.3"},
240 {"Availability": "", "Hostname": "foobar_bar", "ID": "nodeID2", "ManagerStatus": "", "Status": "", "Self": false, "TLSStatus": "Needs Rotation", "EngineVersion": ""},
241 {"Availability": "", "Hostname": "foobar_boo", "ID": "nodeID3", "ManagerStatus": "", "Status": "", "Self": false, "TLSStatus": "Unknown", "EngineVersion": "18.03.0-ce"},
242 },
243 info: client.SystemInfoResult{
244 Info: system.Info{
245 Swarm: swarm.Info{
246 Cluster: &swarm.ClusterInfo{
247 TLSInfo: swarm.TLSInfo{TrustRoot: "hi"},
248 RootRotationInProgress: true,
249 },
250 },
251 },
252 },
253 },
254 }
255
256 for _, testcase := range cases {
257 nodes := client.NodeListResult{
258 Items: []swarm.Node{
259 {ID: "nodeID1", Description: swarm.NodeDescription{Hostname: "foobar_baz", TLSInfo: swarm.TLSInfo{TrustRoot: "hi"}, Engine: swarm.EngineDescription{EngineVersion: "1.2.3"}}},
260 {ID: "nodeID2", Description: swarm.NodeDescription{Hostname: "foobar_bar", TLSInfo: swarm.TLSInfo{TrustRoot: "no"}}},
261 {ID: "nodeID3", Description: swarm.NodeDescription{Hostname: "foobar_boo", Engine: swarm.EngineDescription{EngineVersion: "18.03.0-ce"}}},
262 },
263 }
264 out := bytes.NewBufferString("")
265 err := formatWrite(formatter.Context{Format: "{{json .}}", Output: out}, nodes, testcase.info)
266 if err != nil {
267 t.Fatal(err)
268 }
269 for i, line := range strings.Split(strings.TrimSpace(out.String()), "\n") {
270 msg := fmt.Sprintf("Output: line %d: %s", i, line)
271 var m map[string]any
272 err := json.Unmarshal([]byte(line), &m)
273 assert.NilError(t, err, msg)
274 assert.Check(t, is.DeepEqual(testcase.expected[i], m), msg)
275 }
276 }
277}
278
279func TestNodeContextWriteJSONField(t *testing.T) {
280 nodes := client.NodeListResult{

Callers

nothing calls this directly

Calls 2

formatWriteFunction · 0.70
StringMethod · 0.65

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…