From 486e7b8f877fed8a5fe5f8a2982baebe8da58024 Mon Sep 17 00:00:00 2001 From: Guillaume Tardif Date: Fri, 13 Nov 2020 14:08:12 +0100 Subject: [PATCH] Also log help commands (no flag) Signed-off-by: Guillaume Tardif --- metrics/commands.go | 1 + metrics/generatecommands/main.go | 1 + metrics/metrics_test.go | 5 +++++ tests/e2e/e2e_test.go | 36 +++++++++++++++++++------------- 4 files changed, 28 insertions(+), 15 deletions(-) diff --git a/metrics/commands.go b/metrics/commands.go index bcf9ee91f..af491a890 100644 --- a/metrics/commands.go +++ b/metrics/commands.go @@ -23,6 +23,7 @@ var commandFlags = []string{ // Generated with generatecommands/main.go var managementCommands = []string{ + "help", "ecs", "scan", "app", diff --git a/metrics/generatecommands/main.go b/metrics/generatecommands/main.go index 9491c4e8a..c24c63058 100644 --- a/metrics/generatecommands/main.go +++ b/metrics/generatecommands/main.go @@ -35,6 +35,7 @@ func main() { fmt.Printf(` var managementCommands = []string{ + "help", "%s", } diff --git a/metrics/metrics_test.go b/metrics/metrics_test.go index 52f35b2fa..f9c24d875 100644 --- a/metrics/metrics_test.go +++ b/metrics/metrics_test.go @@ -174,6 +174,11 @@ func TestKeepHelpCommands(t *testing.T) { args: []string{"--help"}, expected: "--help", }, + { + name: "help commands", + args: []string{"help", "run"}, + expected: "help run", + }, } for _, testCase := range testCases { diff --git a/tests/e2e/e2e_test.go b/tests/e2e/e2e_test.go index f404bded1..d06154904 100644 --- a/tests/e2e/e2e_test.go +++ b/tests/e2e/e2e_test.go @@ -161,15 +161,19 @@ func TestContextMetrics(t *testing.T) { s.Start() defer s.Stop() - t.Run("do not send metrics on help commands", func(t *testing.T) { + t.Run("send metrics on help commands", func(t *testing.T) { s.ResetUsage() + c.RunDockerCmd("help", "run") c.RunDockerCmd("--help") - c.RunDockerCmd("ps", "--help") c.RunDockerCmd("run", "--help") usage := s.GetUsage() - assert.Equal(t, 0, len(usage)) + assert.DeepEqual(t, []string{ + `{"command":"help run","context":"moby","source":"cli","status":"success"}`, + `{"command":"--help","context":"moby","source":"cli","status":"success"}`, + `{"command":"--help run","context":"moby","source":"cli","status":"success"}`, + }, usage) }) t.Run("metrics on default context", func(t *testing.T) { @@ -180,10 +184,11 @@ func TestContextMetrics(t *testing.T) { c.RunDockerOrExitError("version", "--xxx") usage := s.GetUsage() - assert.Equal(t, 3, len(usage)) - assert.Equal(t, `{"command":"ps","context":"moby","source":"cli","status":"success"}`, usage[0]) - assert.Equal(t, `{"command":"version","context":"moby","source":"cli","status":"success"}`, usage[1]) - assert.Equal(t, `{"command":"version","context":"moby","source":"cli","status":"failure"}`, usage[2]) + assert.DeepEqual(t, []string{ + `{"command":"ps","context":"moby","source":"cli","status":"success"}`, + `{"command":"version","context":"moby","source":"cli","status":"success"}`, + `{"command":"version","context":"moby","source":"cli","status":"failure"}`, + }, usage) }) t.Run("metrics on other context type", func(t *testing.T) { @@ -198,14 +203,15 @@ func TestContextMetrics(t *testing.T) { c.RunDockerCmd("--context", "test-example", "ps") usage := s.GetUsage() - assert.Equal(t, 7, len(usage)) - assert.Equal(t, `{"command":"context create","context":"moby","source":"cli","status":"success"}`, usage[0]) - assert.Equal(t, `{"command":"ps","context":"moby","source":"cli","status":"success"}`, usage[1]) - assert.Equal(t, `{"command":"context use","context":"moby","source":"cli","status":"success"}`, usage[2]) - assert.Equal(t, `{"command":"ps","context":"example","source":"cli","status":"success"}`, usage[3]) - assert.Equal(t, `{"command":"stop","context":"example","source":"cli","status":"failure"}`, usage[4]) - assert.Equal(t, `{"command":"context use","context":"example","source":"cli","status":"success"}`, usage[5]) - assert.Equal(t, `{"command":"ps","context":"example","source":"cli","status":"success"}`, usage[6]) + assert.DeepEqual(t, []string{ + `{"command":"context create","context":"moby","source":"cli","status":"success"}`, + `{"command":"ps","context":"moby","source":"cli","status":"success"}`, + `{"command":"context use","context":"moby","source":"cli","status":"success"}`, + `{"command":"ps","context":"example","source":"cli","status":"success"}`, + `{"command":"stop","context":"example","source":"cli","status":"failure"}`, + `{"command":"context use","context":"example","source":"cli","status":"success"}`, + `{"command":"ps","context":"example","source":"cli","status":"success"}`, + }, usage) }) }