From bef67bb7f9f6a113df82a93762c2fdfc375870dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Henrique=20Guard=C3=A3o=20Gandarez?= Date: Tue, 19 Mar 2024 10:37:18 -0300 Subject: [PATCH 1/2] Add guess-language to USAGE doc --- USAGE.md | 2 ++ go.sum | 4 ---- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/USAGE.md b/USAGE.md index a6c9651a..c4e4fa85 100644 --- a/USAGE.md +++ b/USAGE.md @@ -64,6 +64,7 @@ hostname = machinename log_file = import_cfg = /path/to/another/wakatime.cfg metrics = true +guess_language = true [projectmap] projects/foo = new project name @@ -110,6 +111,7 @@ some/submodule/name = new project name | log_file | Optional log file path. | _filepath_ | `~/.wakatime/wakatime.log` | | import_cfg | Optional path to another wakatime.cfg file to import. If set it will overwrite values loaded from $WAKATIME_HOME/.wakatime.cfg file. | _filepath_ | | | metrics | When set, collects metrics usage in '~/.wakatime/metrics' folder. For further reference visit . | _bool_ | `false` | +| guess_language | When `true`, enables detecting programming language from file contents. | _bool_ | `false` | ### Project Map Section diff --git a/go.sum b/go.sum index 3aab83a3..379cef0a 100644 --- a/go.sum +++ b/go.sum @@ -277,8 +277,6 @@ github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -go.etcd.io/bbolt v1.3.7 h1:j+zJOnnEjF/kyHlDDgGnVL/AIqIJPq8UoB2GSNfkUfQ= -go.etcd.io/bbolt v1.3.7/go.mod h1:N9Mkw9X8x5fupy0IKsmuqVtoGDyxsaDlbk4Rd05IAQw= go.etcd.io/bbolt v1.3.8 h1:xs88BrvEv273UsB79e0hcVrlUWmS0a8upikMFhSyAtA= go.etcd.io/bbolt v1.3.8/go.mod h1:N9Mkw9X8x5fupy0IKsmuqVtoGDyxsaDlbk4Rd05IAQw= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= @@ -433,8 +431,6 @@ golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220908164124-27713097b956/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.15.0 h1:h48lPFYpsTvQJZF4EKyI4aLHaev3CxivZmv7yZig9pc= -golang.org/x/sys v0.15.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/sys v0.16.0 h1:xWw16ngr6ZMtmxDyKyIgsE93KNKz5HKmMa3b8ALHidU= golang.org/x/sys v0.16.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= From c3ed652569a0576bfd3ebb532bef3d2b0edb7c99 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Henrique=20Guard=C3=A3o=20Gandarez?= Date: Tue, 19 Mar 2024 11:20:51 -0300 Subject: [PATCH 2/2] Fix lint issues --- cmd/fileexperts/fileexperts_test.go | 9 ++++++--- cmd/heartbeat/heartbeat_test.go | 13 +++++-------- cmd/params/params_test.go | 2 +- cmd/root.go | 2 +- cmd/run_internal_test.go | 6 +++--- cmd/run_test.go | 18 +++++++++--------- cmd/today/today_test.go | 9 ++++++--- cmd/todaygoal/todaygoal_test.go | 9 ++++++--- main_test.go | 8 ++++---- pkg/api/fileexperts_test.go | 9 ++++++--- pkg/api/goal_test.go | 11 +++++++---- pkg/api/heartbeat_test.go | 9 ++++++--- pkg/api/option_test.go | 19 ++++++++++++------- pkg/api/statusbar_test.go | 11 +++++++---- pkg/backoff/backoff_test.go | 24 ++++++++++++------------ pkg/filter/filter_test.go | 2 +- pkg/heartbeat/category_test.go | 1 + pkg/heartbeat/entity_test.go | 1 + pkg/heartbeat/language_test.go | 1 + pkg/lexer/brainfuck.go | 7 +++++-- pkg/lexer/ecl.go | 2 +- pkg/lexer/matlab.go | 1 + pkg/lexer/modula2.go | 2 +- pkg/lexer/perl6.go | 2 ++ pkg/project/subversion_test.go | 1 + pkg/remote/remote_test.go | 6 +++--- 26 files changed, 109 insertions(+), 76 deletions(-) diff --git a/cmd/fileexperts/fileexperts_test.go b/cmd/fileexperts/fileexperts_test.go index 45370b46..a18e05d9 100644 --- a/cmd/fileexperts/fileexperts_test.go +++ b/cmd/fileexperts/fileexperts_test.go @@ -138,8 +138,9 @@ func TestFileExperts_ErrApi(t *testing.T) { var numCalls int - router.HandleFunc("/users/current/file_experts", func(w http.ResponseWriter, req *http.Request) { + router.HandleFunc("/users/current/file_experts", func(w http.ResponseWriter, _ *http.Request) { numCalls++ + w.WriteHeader(http.StatusInternalServerError) }) @@ -172,8 +173,9 @@ func TestFileExperts_ErrAuth(t *testing.T) { var numCalls int - router.HandleFunc("/users/current/file_experts", func(w http.ResponseWriter, req *http.Request) { + router.HandleFunc("/users/current/file_experts", func(w http.ResponseWriter, _ *http.Request) { numCalls++ + w.WriteHeader(http.StatusUnauthorized) }) @@ -205,8 +207,9 @@ func TestFileExperts_ErrBadRequest(t *testing.T) { var numCalls int - router.HandleFunc("/users/current/file_experts", func(w http.ResponseWriter, req *http.Request) { + router.HandleFunc("/users/current/file_experts", func(w http.ResponseWriter, _ *http.Request) { numCalls++ + w.WriteHeader(http.StatusBadRequest) }) diff --git a/cmd/heartbeat/heartbeat_test.go b/cmd/heartbeat/heartbeat_test.go index 807f9cde..3843fcd5 100644 --- a/cmd/heartbeat/heartbeat_test.go +++ b/cmd/heartbeat/heartbeat_test.go @@ -123,7 +123,7 @@ func TestSendHeartbeats_WithFiltering_Exclude(t *testing.T) { var numCalls int - router.HandleFunc("/users/current/heartbeats.bulk", func(w http.ResponseWriter, req *http.Request) { + router.HandleFunc("/users/current/heartbeats.bulk", func(w http.ResponseWriter, _ *http.Request) { w.WriteHeader(http.StatusInternalServerError) numCalls++ @@ -300,7 +300,7 @@ func TestSendHeartbeats_ExtraHeartbeats_Sanitize(t *testing.T) { numCalls int ) - router.HandleFunc("/users/current/heartbeats.bulk", func(w http.ResponseWriter, req *http.Request) { + router.HandleFunc("/users/current/heartbeats.bulk", func(w http.ResponseWriter, _ *http.Request) { // send response w.WriteHeader(http.StatusCreated) @@ -724,10 +724,9 @@ func TestSendHeartbeats_ErrAuth_UnsetAPIKey(t *testing.T) { var numCalls int - router.HandleFunc("/users/current/heartbeats.bulk", func(w http.ResponseWriter, req *http.Request) { + router.HandleFunc("/users/current/heartbeats.bulk", func(w http.ResponseWriter, _ *http.Request) { numCalls++ - // send response w.WriteHeader(http.StatusCreated) }) @@ -760,10 +759,9 @@ func TestSendHeartbeats_ErrBackoff(t *testing.T) { var numCalls int - router.HandleFunc("/users/current/heartbeats.bulk", func(w http.ResponseWriter, req *http.Request) { + router.HandleFunc("/users/current/heartbeats.bulk", func(w http.ResponseWriter, _ *http.Request) { numCalls++ - // send response w.WriteHeader(http.StatusInternalServerError) }) @@ -824,10 +822,9 @@ func TestSendHeartbeats_ErrBackoff_Verbose(t *testing.T) { var numCalls int - router.HandleFunc("/users/current/heartbeats.bulk", func(w http.ResponseWriter, req *http.Request) { + router.HandleFunc("/users/current/heartbeats.bulk", func(w http.ResponseWriter, _ *http.Request) { numCalls++ - // send response w.WriteHeader(http.StatusInternalServerError) }) diff --git a/cmd/params/params_test.go b/cmd/params/params_test.go index 0eac4073..f9289180 100644 --- a/cmd/params/params_test.go +++ b/cmd/params/params_test.go @@ -1812,8 +1812,8 @@ func TestLoad_API_APIKeyInvalid(t *testing.T) { require.Error(t, err) var errauth api.ErrAuth - assert.ErrorAs(t, err, &errauth) + assert.ErrorAs(t, err, &errauth) assert.EqualError(t, errauth, "invalid api key format") }) } diff --git a/cmd/root.go b/cmd/root.go index 1be235e3..1f5b5765 100644 --- a/cmd/root.go +++ b/cmd/root.go @@ -25,7 +25,7 @@ func NewRootCMD() *cobra.Command { cmd := &cobra.Command{ Use: "wakatime-cli", Short: "Command line interface used by all WakaTime text editor plugins.", - Run: func(cmd *cobra.Command, args []string) { + Run: func(cmd *cobra.Command, _ []string) { Run(cmd, v) }, } diff --git a/cmd/run_internal_test.go b/cmd/run_internal_test.go index 5cb269c9..78c19e28 100644 --- a/cmd/run_internal_test.go +++ b/cmd/run_internal_test.go @@ -25,7 +25,7 @@ import ( func TestRunCmd(t *testing.T) { v := viper.New() - ret := runCmd(v, false, false, func(v *viper.Viper) (int, error) { + ret := runCmd(v, false, false, func(_ *viper.Viper) (int, error) { return exitcode.Success, nil }) @@ -35,7 +35,7 @@ func TestRunCmd(t *testing.T) { func TestRunCmd_Err(t *testing.T) { v := viper.New() - ret := runCmd(v, false, false, func(v *viper.Viper) (int, error) { + ret := runCmd(v, false, false, func(_ *viper.Viper) (int, error) { return exitcode.ErrGeneric, errors.New("fail") }) @@ -95,7 +95,7 @@ func TestRunCmd_ErrOfflineEnqueue(t *testing.T) { v.Set("key", "00000000-0000-4000-8000-000000000000") v.Set("plugin", "vim") - ret := runCmd(v, true, false, func(v *viper.Viper) (int, error) { + ret := runCmd(v, true, false, func(_ *viper.Viper) (int, error) { return exitcode.ErrGeneric, errors.New("fail") }) diff --git a/cmd/run_test.go b/cmd/run_test.go index 4cc74a35..78754e01 100644 --- a/cmd/run_test.go +++ b/cmd/run_test.go @@ -52,7 +52,7 @@ func TestRunCmd_Err(t *testing.T) { var cmdNumCalls int - cmdFn := func(v *viper.Viper) (int, error) { + cmdFn := func(_ *viper.Viper) (int, error) { cmdNumCalls++ return 42, errors.New("fail") } @@ -76,7 +76,7 @@ func TestRunCmd_Err(t *testing.T) { var numCalls int - router.HandleFunc("/plugins/errors", func(w http.ResponseWriter, req *http.Request) { + router.HandleFunc("/plugins/errors", func(_ http.ResponseWriter, _ *http.Request) { numCalls++ }) @@ -125,7 +125,7 @@ func TestRunCmd_Verbose_Err(t *testing.T) { var cmdNumCalls int - cmdFn := func(v *viper.Viper) (int, error) { + cmdFn := func(_ *viper.Viper) (int, error) { cmdNumCalls++ return 42, errors.New("fail") } @@ -149,7 +149,7 @@ func TestRunCmd_Verbose_Err(t *testing.T) { var numCalls int - router.HandleFunc("/plugins/errors", func(w http.ResponseWriter, req *http.Request) { + router.HandleFunc("/plugins/errors", func(_ http.ResponseWriter, _ *http.Request) { numCalls++ }) @@ -198,7 +198,7 @@ func TestRunCmd_SendDiagnostics_Err(t *testing.T) { var cmdNumCalls int - cmdFn := func(v *viper.Viper) (int, error) { + cmdFn := func(_ *viper.Viper) (int, error) { cmdNumCalls++ return 42, errors.New("fail") } @@ -307,7 +307,7 @@ func TestRunCmd_SendDiagnostics_Panic(t *testing.T) { var cmdNumCalls int - cmdFn := func(v *viper.Viper) (int, error) { + cmdFn := func(_ *viper.Viper) (int, error) { cmdNumCalls++ panic("fail") @@ -418,7 +418,7 @@ func TestRunCmd_SendDiagnostics_NoLogs_Panic(t *testing.T) { var cmdNumCalls int - cmdFn := func(v *viper.Viper) (int, error) { + cmdFn := func(_ *viper.Viper) (int, error) { cmdNumCalls++ panic("fail") @@ -527,7 +527,7 @@ func TestRunCmd_SendDiagnostics_WakaError(t *testing.T) { var cmdNumCalls int - cmdFn := func(v *viper.Viper) (int, error) { + cmdFn := func(_ *viper.Viper) (int, error) { cmdNumCalls++ return 42, offline.ErrOpenDB{Err: errors.New("fail")} } @@ -630,7 +630,7 @@ func TestRunCmdWithOfflineSync(t *testing.T) { var cmdNumCalls int - cmdFn := func(v *viper.Viper) (int, error) { + cmdFn := func(_ *viper.Viper) (int, error) { cmdNumCalls++ return 0, nil } diff --git a/cmd/today/today_test.go b/cmd/today/today_test.go index 19c46d30..c6ab76f3 100644 --- a/cmd/today/today_test.go +++ b/cmd/today/today_test.go @@ -72,8 +72,9 @@ func TestToday_ErrApi(t *testing.T) { var numCalls int - router.HandleFunc("/users/current/statusbar/today", func(w http.ResponseWriter, req *http.Request) { + router.HandleFunc("/users/current/statusbar/today", func(w http.ResponseWriter, _ *http.Request) { numCalls++ + w.WriteHeader(http.StatusInternalServerError) }) @@ -104,8 +105,9 @@ func TestToday_ErrAuth(t *testing.T) { var numCalls int - router.HandleFunc("/users/current/statusbar/today", func(w http.ResponseWriter, req *http.Request) { + router.HandleFunc("/users/current/statusbar/today", func(w http.ResponseWriter, _ *http.Request) { numCalls++ + w.WriteHeader(http.StatusUnauthorized) }) @@ -137,8 +139,9 @@ func TestToday_ErrBadRequest(t *testing.T) { var numCalls int - router.HandleFunc("/users/current/statusbar/today", func(w http.ResponseWriter, req *http.Request) { + router.HandleFunc("/users/current/statusbar/today", func(w http.ResponseWriter, _ *http.Request) { numCalls++ + w.WriteHeader(http.StatusBadRequest) }) diff --git a/cmd/todaygoal/todaygoal_test.go b/cmd/todaygoal/todaygoal_test.go index 4d7c3f97..98403190 100644 --- a/cmd/todaygoal/todaygoal_test.go +++ b/cmd/todaygoal/todaygoal_test.go @@ -76,8 +76,9 @@ func TestGoal_ErrApi(t *testing.T) { var numCalls int router.HandleFunc( - "/users/current/goals/00000000-0000-4000-8000-000000000000", func(w http.ResponseWriter, req *http.Request) { + "/users/current/goals/00000000-0000-4000-8000-000000000000", func(w http.ResponseWriter, _ *http.Request) { numCalls++ + w.WriteHeader(http.StatusInternalServerError) }) @@ -111,8 +112,9 @@ func TestGoal_ErrAuth(t *testing.T) { var numCalls int router.HandleFunc( - "/users/current/goals/00000000-0000-4000-8000-000000000000", func(w http.ResponseWriter, req *http.Request) { + "/users/current/goals/00000000-0000-4000-8000-000000000000", func(w http.ResponseWriter, _ *http.Request) { numCalls++ + w.WriteHeader(http.StatusUnauthorized) }) @@ -146,8 +148,9 @@ func TestGoal_ErrBadRequest(t *testing.T) { var numCalls int router.HandleFunc( - "/users/current/goals/00000000-0000-4000-8000-000000000000", func(w http.ResponseWriter, req *http.Request) { + "/users/current/goals/00000000-0000-4000-8000-000000000000", func(w http.ResponseWriter, _ *http.Request) { numCalls++ + w.WriteHeader(http.StatusBadRequest) }) diff --git a/main_test.go b/main_test.go index 2fd3ad9b..d7272753 100644 --- a/main_test.go +++ b/main_test.go @@ -399,7 +399,7 @@ func TestSendHeartbeats_ErrAuth_InvalidAPIKEY(t *testing.T) { var numCalls int - router.HandleFunc("/users/current/heartbeats.bulk", func(w http.ResponseWriter, req *http.Request) { + router.HandleFunc("/users/current/heartbeats.bulk", func(_ http.ResponseWriter, _ *http.Request) { numCalls++ }) @@ -702,7 +702,7 @@ func TestOfflineCount(t *testing.T) { apiURL, router, close := setupTestServer() defer close() - router.HandleFunc("/users/current/heartbeats.bulk", func(w http.ResponseWriter, req *http.Request) { + router.HandleFunc("/users/current/heartbeats.bulk", func(w http.ResponseWriter, _ *http.Request) { w.WriteHeader(http.StatusInternalServerError) _, err := io.Copy(w, strings.NewReader("500 error test")) require.NoError(t, err) @@ -781,7 +781,7 @@ func TestPrintOfflineHeartbeats(t *testing.T) { apiURL, router, close := setupTestServer() defer close() - router.HandleFunc("/users/current/heartbeats.bulk", func(w http.ResponseWriter, req *http.Request) { + router.HandleFunc("/users/current/heartbeats.bulk", func(w http.ResponseWriter, _ *http.Request) { w.WriteHeader(http.StatusInternalServerError) _, err := io.Copy(w, strings.NewReader("500 error test")) require.NoError(t, err) @@ -1021,7 +1021,7 @@ func setupTestServer() (string, *http.ServeMux, func()) { router := http.NewServeMux() srv := httptest.NewServer(router) - router.HandleFunc("/plugins/errors", func(w http.ResponseWriter, req *http.Request) { + router.HandleFunc("/plugins/errors", func(w http.ResponseWriter, _ *http.Request) { w.WriteHeader(http.StatusCreated) }) diff --git a/pkg/api/fileexperts_test.go b/pkg/api/fileexperts_test.go index ed477861..60acb785 100644 --- a/pkg/api/fileexperts_test.go +++ b/pkg/api/fileexperts_test.go @@ -124,8 +124,9 @@ func TestClient_FileExperts_Err(t *testing.T) { var numCalls int - router.HandleFunc("/users/current/file_experts", func(w http.ResponseWriter, req *http.Request) { + router.HandleFunc("/users/current/file_experts", func(w http.ResponseWriter, _ *http.Request) { numCalls++ + w.WriteHeader(http.StatusInternalServerError) }) @@ -152,8 +153,9 @@ func TestClient_FileExperts_ErrAuth(t *testing.T) { var numCalls int - router.HandleFunc("/users/current/file_experts", func(w http.ResponseWriter, req *http.Request) { + router.HandleFunc("/users/current/file_experts", func(w http.ResponseWriter, _ *http.Request) { numCalls++ + w.WriteHeader(http.StatusUnauthorized) }) @@ -180,8 +182,9 @@ func TestClient_FileExperts_ErrBadRequest(t *testing.T) { var numCalls int - router.HandleFunc("/users/current/file_experts", func(w http.ResponseWriter, req *http.Request) { + router.HandleFunc("/users/current/file_experts", func(w http.ResponseWriter, _ *http.Request) { numCalls++ + w.WriteHeader(http.StatusBadRequest) }) diff --git a/pkg/api/goal_test.go b/pkg/api/goal_test.go index 44e804b4..01359681 100644 --- a/pkg/api/goal_test.go +++ b/pkg/api/goal_test.go @@ -59,7 +59,7 @@ func TestClient_GoalWithTimeout(t *testing.T) { defer close(called) router.HandleFunc( - "/users/current/goals/00000000-0000-4000-8000-000000000000", func(w http.ResponseWriter, req *http.Request) { + "/users/current/goals/00000000-0000-4000-8000-000000000000", func(_ http.ResponseWriter, _ *http.Request) { <-block called <- struct{}{} }) @@ -88,8 +88,9 @@ func TestClient_Goal_Err(t *testing.T) { var numCalls int router.HandleFunc( - "/users/current/goals/00000000-0000-4000-8000-000000000000", func(w http.ResponseWriter, req *http.Request) { + "/users/current/goals/00000000-0000-4000-8000-000000000000", func(w http.ResponseWriter, _ *http.Request) { numCalls++ + w.WriteHeader(http.StatusInternalServerError) }) @@ -109,8 +110,9 @@ func TestClient_Goal_ErrAuth(t *testing.T) { var numCalls int router.HandleFunc( - "/users/current/goals/00000000-0000-4000-8000-000000000000", func(w http.ResponseWriter, req *http.Request) { + "/users/current/goals/00000000-0000-4000-8000-000000000000", func(w http.ResponseWriter, _ *http.Request) { numCalls++ + w.WriteHeader(http.StatusUnauthorized) }) @@ -131,8 +133,9 @@ func TestClient_Goal_ErrBadRequest(t *testing.T) { var numCalls int router.HandleFunc( - "/users/current/goals/00000000-0000-4000-8000-000000000000", func(w http.ResponseWriter, req *http.Request) { + "/users/current/goals/00000000-0000-4000-8000-000000000000", func(w http.ResponseWriter, _ *http.Request) { numCalls++ + w.WriteHeader(http.StatusBadRequest) }) diff --git a/pkg/api/heartbeat_test.go b/pkg/api/heartbeat_test.go index 3f89a9c9..5bdfcc15 100644 --- a/pkg/api/heartbeat_test.go +++ b/pkg/api/heartbeat_test.go @@ -139,8 +139,9 @@ func TestClient_SendHeartbeats_Err(t *testing.T) { var numCalls int - router.HandleFunc("/users/current/heartbeats.bulk", func(w http.ResponseWriter, req *http.Request) { + router.HandleFunc("/users/current/heartbeats.bulk", func(w http.ResponseWriter, _ *http.Request) { numCalls++ + w.WriteHeader(http.StatusInternalServerError) }) @@ -160,8 +161,9 @@ func TestClient_SendHeartbeats_ErrAuth(t *testing.T) { var numCalls int - router.HandleFunc("/users/current/heartbeats.bulk", func(w http.ResponseWriter, req *http.Request) { + router.HandleFunc("/users/current/heartbeats.bulk", func(w http.ResponseWriter, _ *http.Request) { numCalls++ + w.WriteHeader(http.StatusUnauthorized) }) @@ -181,8 +183,9 @@ func TestClient_SendHeartbeats_ErrBadRequest(t *testing.T) { var numCalls int - router.HandleFunc("/users/current/heartbeats.bulk", func(w http.ResponseWriter, req *http.Request) { + router.HandleFunc("/users/current/heartbeats.bulk", func(w http.ResponseWriter, _ *http.Request) { numCalls++ + w.WriteHeader(http.StatusBadRequest) }) diff --git a/pkg/api/option_test.go b/pkg/api/option_test.go index e31fd01e..e33ea658 100644 --- a/pkg/api/option_test.go +++ b/pkg/api/option_test.go @@ -39,8 +39,9 @@ func TestOption_WithAuth(t *testing.T) { var numCalls int - router.HandleFunc("/", func(w http.ResponseWriter, req *http.Request) { + router.HandleFunc("/", func(_ http.ResponseWriter, req *http.Request) { assert.Equal(t, []string{test.AuthHeaderValue}, req.Header["Authorization"]) + numCalls++ }) @@ -70,7 +71,7 @@ func TestOption_WithHostname(t *testing.T) { var numCalls int - router.HandleFunc("/", func(w http.ResponseWriter, req *http.Request) { + router.HandleFunc("/", func(_ http.ResponseWriter, req *http.Request) { assert.Equal(t, []string{"my-computer"}, req.Header["X-Machine-Name"]) numCalls++ @@ -96,7 +97,7 @@ func TestOption_WithInvalidHostname(t *testing.T) { var numCalls int - router.HandleFunc("/", func(w http.ResponseWriter, req *http.Request) { + router.HandleFunc("/", func(_ http.ResponseWriter, req *http.Request) { assert.Equal(t, []string{"my%2Bcomputer%0A"}, req.Header["X-Machine-Name"]) numCalls++ @@ -139,6 +140,7 @@ func TestOption_WithNTLM(t *testing.T) { if strings.HasPrefix(authHeader[0], "Basic ") { w.Header().Set("WWW-Authenticate", "NTLM xyxyxyx") w.WriteHeader(http.StatusUnauthorized) + return } @@ -146,6 +148,7 @@ func TestOption_WithNTLM(t *testing.T) { require.NoError(t, err) numCalls++ + assert.Equal(t, []string{"NTLM " + base64.StdEncoding.EncodeToString(msg)}, authHeader) }) @@ -196,6 +199,7 @@ func TestOption_WithNTLMRequestRetry(t *testing.T) { if strings.HasPrefix(authHeader[0], "Basic ") { w.Header().Set("WWW-Authenticate", "NTLM xyxyxyx") w.WriteHeader(http.StatusUnauthorized) + return } @@ -203,6 +207,7 @@ func TestOption_WithNTLMRequestRetry(t *testing.T) { require.NoError(t, err) numCalls++ + assert.Equal(t, []string{"NTLM " + base64.StdEncoding.EncodeToString(msg)}, authHeader) }) @@ -227,7 +232,7 @@ func TestOption_WithProxy(t *testing.T) { var numCalls int - router.HandleFunc("/", func(w http.ResponseWriter, req *http.Request) { + router.HandleFunc("/", func(_ http.ResponseWriter, _ *http.Request) { numCalls++ }) @@ -254,7 +259,7 @@ func TestOption_WithUserAgent(t *testing.T) { var numCalls int - router.HandleFunc("/", func(w http.ResponseWriter, req *http.Request) { + router.HandleFunc("/", func(_ http.ResponseWriter, req *http.Request) { info, err := goInfo.GetInfo() require.NoError(t, err) @@ -291,7 +296,7 @@ func TestOption_WithUserAgentUnknownPlugin(t *testing.T) { var numCalls int - router.HandleFunc("/", func(w http.ResponseWriter, req *http.Request) { + router.HandleFunc("/", func(_ http.ResponseWriter, req *http.Request) { info, err := goInfo.GetInfo() require.NoError(t, err) @@ -328,7 +333,7 @@ func TestOption_WithTimezone(t *testing.T) { var numCalls int - router.HandleFunc("/", func(w http.ResponseWriter, req *http.Request) { + router.HandleFunc("/", func(_ http.ResponseWriter, req *http.Request) { assert.Equal(t, []string{"America/Sao_Paulo"}, req.Header["Timezone"]) numCalls++ diff --git a/pkg/api/statusbar_test.go b/pkg/api/statusbar_test.go index 6362f328..5f497999 100644 --- a/pkg/api/statusbar_test.go +++ b/pkg/api/statusbar_test.go @@ -58,7 +58,7 @@ func TestClient_StatusBarWithTimeout(t *testing.T) { called := make(chan struct{}) defer close(called) - router.HandleFunc("/users/current/statusbar/today", func(w http.ResponseWriter, req *http.Request) { + router.HandleFunc("/users/current/statusbar/today", func(_ http.ResponseWriter, _ *http.Request) { <-block called <- struct{}{} }) @@ -86,8 +86,9 @@ func TestClient_StatusBar_Err(t *testing.T) { var numCalls int - router.HandleFunc("/users/current/statusbar/today", func(w http.ResponseWriter, req *http.Request) { + router.HandleFunc("/users/current/statusbar/today", func(w http.ResponseWriter, _ *http.Request) { numCalls++ + w.WriteHeader(http.StatusInternalServerError) }) @@ -106,8 +107,9 @@ func TestClient_StatusBar_ErrAuth(t *testing.T) { var numCalls int - router.HandleFunc("/users/current/statusbar/today", func(w http.ResponseWriter, req *http.Request) { + router.HandleFunc("/users/current/statusbar/today", func(w http.ResponseWriter, _ *http.Request) { numCalls++ + w.WriteHeader(http.StatusUnauthorized) }) @@ -127,8 +129,9 @@ func TestClient_StatusBar_ErrBadRequest(t *testing.T) { var numCalls int - router.HandleFunc("/users/current/statusbar/today", func(w http.ResponseWriter, req *http.Request) { + router.HandleFunc("/users/current/statusbar/today", func(w http.ResponseWriter, _ *http.Request) { numCalls++ + w.WriteHeader(http.StatusBadRequest) }) diff --git a/pkg/backoff/backoff_test.go b/pkg/backoff/backoff_test.go index 8c60dbf7..9dad7f4a 100644 --- a/pkg/backoff/backoff_test.go +++ b/pkg/backoff/backoff_test.go @@ -30,7 +30,7 @@ func TestWithBackoff(t *testing.T) { V: v, }) - handle := opt(func(hh []heartbeat.Heartbeat) ([]heartbeat.Result, error) { + handle := opt(func(_ []heartbeat.Heartbeat) ([]heartbeat.Result, error) { return []heartbeat.Result{ { Status: 201, @@ -68,7 +68,7 @@ func TestWithBackoff_BeforeNextBackoff(t *testing.T) { At: at, }) - handle := opt(func(hh []heartbeat.Heartbeat) ([]heartbeat.Result, error) { + handle := opt(func(_ []heartbeat.Heartbeat) ([]heartbeat.Result, error) { return []heartbeat.Result{}, errors.New("error") }) @@ -91,7 +91,7 @@ func TestWithBackoff_BeforeNextBackoff(t *testing.T) { At: at.Add(time.Second * 15), }) - handle = opt(func(hh []heartbeat.Heartbeat) ([]heartbeat.Result, error) { + handle = opt(func(_ []heartbeat.Heartbeat) ([]heartbeat.Result, error) { return []heartbeat.Result{ { Status: 201, @@ -121,7 +121,7 @@ func TestWithBackoff_BeforeNextBackoffWithProxy(t *testing.T) { HasProxy: true, }) - handle := opt(func(hh []heartbeat.Heartbeat) ([]heartbeat.Result, error) { + handle := opt(func(_ []heartbeat.Heartbeat) ([]heartbeat.Result, error) { return []heartbeat.Result{ { Status: 201, @@ -149,7 +149,7 @@ func TestWithBackoff_ApiError(t *testing.T) { V: v, }) - handle := opt(func(hh []heartbeat.Heartbeat) ([]heartbeat.Result, error) { + handle := opt(func(_ []heartbeat.Heartbeat) ([]heartbeat.Result, error) { return []heartbeat.Result{}, errors.New("error") }) @@ -182,7 +182,7 @@ func TestWithBackoff_BackoffAndNotReset(t *testing.T) { At: time.Now().Add(time.Second * -1), }) - handle := opt(func(hh []heartbeat.Heartbeat) ([]heartbeat.Result, error) { + handle := opt(func(_ []heartbeat.Heartbeat) ([]heartbeat.Result, error) { return []heartbeat.Result{ { Status: 201, @@ -220,7 +220,7 @@ func TestWithBackoff_BackoffMaxReached(t *testing.T) { V: v, }) - handle := opt(func(hh []heartbeat.Heartbeat) ([]heartbeat.Result, error) { + handle := opt(func(_ []heartbeat.Heartbeat) ([]heartbeat.Result, error) { return []heartbeat.Result{}, errors.New("error") }) @@ -241,7 +241,7 @@ func TestWithBackoff_BackoffMaxReached(t *testing.T) { At: time.Now().Add(time.Second * -1), }) - handle = opt(func(hh []heartbeat.Heartbeat) ([]heartbeat.Result, error) { + handle = opt(func(_ []heartbeat.Heartbeat) ([]heartbeat.Result, error) { return []heartbeat.Result{ { Status: 201, @@ -275,7 +275,7 @@ func TestWithBackoff_BackoffMaxReachedWithZeroRetries(t *testing.T) { V: v, }) - handle := opt(func(hh []heartbeat.Heartbeat) ([]heartbeat.Result, error) { + handle := opt(func(_ []heartbeat.Heartbeat) ([]heartbeat.Result, error) { return []heartbeat.Result{}, errors.New("error") }) @@ -296,7 +296,7 @@ func TestWithBackoff_BackoffMaxReachedWithZeroRetries(t *testing.T) { At: time.Now().Add(time.Hour + 1*time.Second), }) - handle = opt(func(hh []heartbeat.Heartbeat) ([]heartbeat.Result, error) { + handle = opt(func(_ []heartbeat.Heartbeat) ([]heartbeat.Result, error) { return []heartbeat.Result{ { Status: 201, @@ -329,7 +329,7 @@ func TestWithBackoff_ShouldRetry(t *testing.T) { V: v, }) - handle := opt(func(hh []heartbeat.Heartbeat) ([]heartbeat.Result, error) { + handle := opt(func(_ []heartbeat.Heartbeat) ([]heartbeat.Result, error) { return []heartbeat.Result{}, errors.New("error") }) @@ -354,7 +354,7 @@ func TestWithBackoff_ShouldRetry(t *testing.T) { At: at.Add(time.Second * -60), }) - handle = opt(func(hh []heartbeat.Heartbeat) ([]heartbeat.Result, error) { + handle = opt(func(_ []heartbeat.Heartbeat) ([]heartbeat.Result, error) { return []heartbeat.Result{ { Status: 201, diff --git a/pkg/filter/filter_test.go b/pkg/filter/filter_test.go index e921e035..49154f8e 100644 --- a/pkg/filter/filter_test.go +++ b/pkg/filter/filter_test.go @@ -65,7 +65,7 @@ func TestWithFiltering(t *testing.T) { func TestWithLengthValidator(t *testing.T) { opt := filter.WithLengthValidator() - h := opt(func(hh []heartbeat.Heartbeat) ([]heartbeat.Result, error) { + h := opt(func(_ []heartbeat.Heartbeat) ([]heartbeat.Result, error) { return []heartbeat.Result{}, errors.New("this will should never be called") }) diff --git a/pkg/heartbeat/category_test.go b/pkg/heartbeat/category_test.go index 0d2703cd..f5f93e7a 100644 --- a/pkg/heartbeat/category_test.go +++ b/pkg/heartbeat/category_test.go @@ -52,6 +52,7 @@ func TestCategory_UnmarshalJSON(t *testing.T) { for value, category := range categoryTests() { t.Run(value, func(t *testing.T) { var c heartbeat.Category + require.NoError(t, json.Unmarshal([]byte(`"`+value+`"`), &c)) assert.Equal(t, category, c) diff --git a/pkg/heartbeat/entity_test.go b/pkg/heartbeat/entity_test.go index 04560608..7922c279 100644 --- a/pkg/heartbeat/entity_test.go +++ b/pkg/heartbeat/entity_test.go @@ -38,6 +38,7 @@ func TestEntityType_UnmarshalJSON(t *testing.T) { for value, entityType := range typeTests() { t.Run(value, func(t *testing.T) { var et heartbeat.EntityType + require.NoError(t, json.Unmarshal([]byte(`"`+value+`"`), &et)) assert.Equal(t, entityType, et) diff --git a/pkg/heartbeat/language_test.go b/pkg/heartbeat/language_test.go index 40eb6914..226f2314 100644 --- a/pkg/heartbeat/language_test.go +++ b/pkg/heartbeat/language_test.go @@ -989,6 +989,7 @@ func TestLanguage_UnmarshalJSON(t *testing.T) { for value, language := range languageTests() { t.Run(value, func(t *testing.T) { var l heartbeat.Language + require.NoError(t, json.Unmarshal([]byte(`"`+value+`"`), &l)) assert.Equal(t, language, l) diff --git a/pkg/lexer/brainfuck.go b/pkg/lexer/brainfuck.go index a6570794..1b7e0369 100644 --- a/pkg/lexer/brainfuck.go +++ b/pkg/lexer/brainfuck.go @@ -31,8 +31,10 @@ func (l Brainfuck) Lexer() chroma.Lexer { rgxlexer.SetAnalyser(func(text string) float32 { // it's safe to assume that a program which mostly consists of + - // and < > is brainfuck. - var plusMinusCount float64 - var greaterLessCount float64 + var ( + plusMinusCount float64 + greaterLessCount float64 + ) rangeToCheck := len(text) @@ -44,6 +46,7 @@ func (l Brainfuck) Lexer() chroma.Lexer { if c == '+' || c == '-' { plusMinusCount++ } + if c == '<' || c == '>' { greaterLessCount++ } diff --git a/pkg/lexer/ecl.go b/pkg/lexer/ecl.go index 64fab649..22599f2f 100644 --- a/pkg/lexer/ecl.go +++ b/pkg/lexer/ecl.go @@ -27,7 +27,7 @@ func (l ECL) Lexer() chroma.Lexer { }, ) - lexer.SetAnalyser(func(text string) float32 { + lexer.SetAnalyser(func(text string) float32 { // nolint:wsl // This is very difficult to guess relative to other business languages. // -> in conjunction with BEGIN/END seems relatively rare though. diff --git a/pkg/lexer/matlab.go b/pkg/lexer/matlab.go index 5f96fc0f..7f303878 100644 --- a/pkg/lexer/matlab.go +++ b/pkg/lexer/matlab.go @@ -30,6 +30,7 @@ func (l Matlab) Lexer() chroma.Lexer { lines := strings.Split(strings.ReplaceAll(text, "\r\n", "\n"), "\n") var firstNonComment string + for _, line := range lines { if !matlabAnalyserCommentRe.MatchString(line) { firstNonComment = strings.TrimSpace(line) diff --git a/pkg/lexer/modula2.go b/pkg/lexer/modula2.go index 6a2dc589..b9cdc1c6 100644 --- a/pkg/lexer/modula2.go +++ b/pkg/lexer/modula2.go @@ -26,7 +26,7 @@ func (l Modula2) Lexer() chroma.Lexer { } if lexer, ok := lexer.(*chroma.RegexLexer); ok { - lexer.SetAnalyser(func(text string) float32 { + lexer.SetAnalyser(func(text string) float32 { // nolint:wsl // It's Pascal-like, but does not use FUNCTION -- uses PROCEDURE // instead. diff --git a/pkg/lexer/perl6.go b/pkg/lexer/perl6.go index 9c8f0bd9..ef5a1af0 100644 --- a/pkg/lexer/perl6.go +++ b/pkg/lexer/perl6.go @@ -79,8 +79,10 @@ func (l Perl6) Lexer() chroma.Lexer { } result = 0.05 + continue } + break } diff --git a/pkg/project/subversion_test.go b/pkg/project/subversion_test.go index bd96634e..5af76e2a 100644 --- a/pkg/project/subversion_test.go +++ b/pkg/project/subversion_test.go @@ -126,6 +126,7 @@ func copyDir(t *testing.T, src string, dst string) { // Skip symlinks. info, err := entry.Info() require.NoError(t, err) + if info.Mode()&os.ModeSymlink != 0 { continue } diff --git a/pkg/remote/remote_test.go b/pkg/remote/remote_test.go index 6541957e..2215e4ee 100644 --- a/pkg/remote/remote_test.go +++ b/pkg/remote/remote_test.go @@ -361,7 +361,7 @@ func TestWithCleanup_NotTemporary(t *testing.T) { } sender := mockSender{ - SendHeartbeatsFn: func(hh []heartbeat.Heartbeat) ([]heartbeat.Result, error) { + SendHeartbeatsFn: func(_ []heartbeat.Heartbeat) ([]heartbeat.Result, error) { return []heartbeat.Result{ { Status: 201, @@ -397,7 +397,7 @@ func TestWithCleanup(t *testing.T) { } sender := mockSender{ - SendHeartbeatsFn: func(hh []heartbeat.Heartbeat) ([]heartbeat.Result, error) { + SendHeartbeatsFn: func(_ []heartbeat.Heartbeat) ([]heartbeat.Result, error) { return []heartbeat.Result{ { Status: 201, @@ -433,7 +433,7 @@ func TestWithCleanup_NotRemoteFile(t *testing.T) { } sender := mockSender{ - SendHeartbeatsFn: func(hh []heartbeat.Heartbeat) ([]heartbeat.Result, error) { + SendHeartbeatsFn: func(_ []heartbeat.Heartbeat) ([]heartbeat.Result, error) { return []heartbeat.Result{ { Status: 201,