PMM-7 Fix testifylint linter warnings (p2)#5381
Conversation
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## v3 #5381 +/- ##
==========================================
- Coverage 43.18% 42.61% -0.57%
==========================================
Files 413 413
Lines 42303 42302 -1
==========================================
- Hits 18268 18029 -239
- Misses 22170 22437 +267
+ Partials 1865 1836 -29
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Pull request overview
This PR is a wide-scope test cleanup aimed at addressing testifylint warnings across the codebase by switching many test assertions from assert.* to require.* (and adjusting a few numeric/error-type assertions accordingly).
Changes:
- Replaced non-fatal
assert.*checks withrequire.*in many tests (and in a few helper assertions). - Updated some float comparisons (
InEpsilon→InDelta) and error-type checks (IsType→ErrorAs) to satisfy linting and improve correctness. - Removed a few test-time global log-level mutations that can cause cross-test interference.
Reviewed changes
Copilot reviewed 111 out of 111 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| qan-api2/utils/templatefs/templatefs_test.go | Switch error assertions to require.*. |
| qan-api2/services/analytics/profile_test.go | Import require and use require.NoError for fatal checks. |
| qan-api2/services/analytics/object_details_test.go | Switch to require.* for fatal error expectations. |
| managed/utils/validators/alerting_rules_test.go | Use require.NoError for validation success. |
| managed/utils/tests/asserts.go | Replace assert.Error gate with require.Error. |
| managed/utils/signatures/signatures_test.go | Switch to require.* assertions. |
| managed/utils/pprof/pprof_test.go | Use require.NoError for gzip/profile handling. |
| managed/utils/encryption/encryption_test.go | Use require.NoError for base64/file operations. |
| managed/utils/distribution/distribution_util_test.go | Switch temp file / cleanup checks to require.*. |
| managed/utils/dir/dir_test.go | Use require.* for error checks in helper flows. |
| managed/utils/clean/clean_test.go | Use require.* for cleaner/setup expectations. |
| managed/services/victoriametrics/victoriametrics_test.go | Switch to require.* for config/marshal errors. |
| managed/services/versioncache/versioncache_test.go | Use require.* in cleanup and error assertions. |
| managed/services/telemetry/transform_test.go | Use require.* for error assertion funcs and simplify error-check flow. |
| managed/services/telemetry/telemetry_test.go | Switch to require.NoError for registry creation. |
| managed/services/supervisord/devcontainer_test.go | Switch teardown assert.NoError to require.NoError. |
| managed/services/server/server_test.go | Switch validation assert.NoError to require.NoError. |
| managed/services/server/logs_test.go | Switch file/zip error checks to require.*. |
| managed/services/scheduler/task_test.go | Remove assert import; use require.EqualError. |
| managed/services/scheduler/scheduler_test.go | Use require.ErrorIs for not-found checks. |
| managed/services/qan/client_test.go | Switch DB close checks to require.NoError. |
| managed/services/preconditions_test.go | Remove assert import; use require.* for error outcomes. |
| managed/services/management/service_test.go | Switch service removal success checks to require.NoError. |
| managed/services/management/node_test.go | Switch node mgmt success checks to require.NoError. |
| managed/services/management/checks_test.go | Use require.EqualError for exact error strings. |
| managed/services/management/backup/restore_service_test.go | Use require.NoError for log insert/list flows. |
| managed/services/management/backup/locations_service_test.go | Use require.* for remove/list and validation paths. |
| managed/services/management/backup/backup_service_test.go | Use require.NoError for scheduled backup operations. |
| managed/services/management/accesscontrol_test.go | Use require.Error for negative case. |
| managed/services/inventory/services_test.go | Switch multiple RPC success checks to require.NoError. |
| managed/services/grafana/client_test.go | Remove global log level mutation; use require.NoError. |
| managed/services/converters_test.go | Use require.ErrorIs for error expectations. |
| managed/services/checks/funcs_test.go | Update assertions around expected errors and float checks. |
| managed/services/checks/checks_test.go | Use require.* for error equality/containment checks. |
| managed/services/backup/retention_service_test.go | Use require.NoError in retention enforcement expectations. |
| managed/services/backup/removal_service_test.go | Use require.* for error checks; avoid require inside goroutines in a couple spots. |
| managed/services/backup/pitr_timerange_service_test.go | Switch to require.* for expected error/no-error paths. |
| managed/services/backup/compatibility_service_test.go | Use require.* for error matching and “no error” cases. |
| managed/services/backup/compatibility_helpers_test.go | Import require; use require.* for error checks. |
| managed/services/backup/backup_service_test.go | Use require.* for error matching and “no error” cases. |
| managed/services/alerting/service_test.go | Use require.EqualError for exact RPC error strings. |
| managed/services/agents/postgresql_test.go | Import require; use suite Require().NoError in setup-heavy tests. |
| managed/services/agents/channel/channel_test.go | Use require.* for send/recv and stream lifecycle checks. |
| managed/models/software_version_helpers_test.go | Use require.* for parameter validation errors. |
| managed/models/settings_helpers_test.go | Use require.EqualError for invalid-argument expectations. |
| managed/models/service_helpers_test.go | Switch query/remove expectations to require.*. |
| managed/models/scheduled_tasks_helpers_test.go | Use require.* for change/remove/find expectations. |
| managed/models/restore_history_helpers_test.go | Use require.EqualError for validation errors. |
| managed/models/postgresql_version_test.go | Use require.Error/NoError and adjust float comparison to InDelta. |
| managed/models/node_helpers_test.go | Use require.* for create/remove/query expectations. |
| managed/models/models_test.go | Import require; use require.NoError for JSON label helpers. |
| managed/models/location_helpers_test.go | Use require.* for validation branches. |
| managed/models/job_helpers_test.go | Use require.EqualError and require.NoError where fatal. |
| managed/models/database_test.go | Use require.ErrorAs for *pq.Error extraction; switch to require.NoError in DB checks. |
| managed/models/artifact_helpers_test.go | Use require.EqualError for validation errors. |
| managed/models/agentversion_test.go | Use require.* for version-support expectations. |
| managed/models/agent_helpers_test.go | Switch success check to require.NoError. |
| managed/models/action_helpers_test.go | Use require.NoError for cleanup expectations. |
| api-tests/server/settings/settings_test.go | Use require.NoError for response body reads. |
| api-tests/server/logs_test.go | Use require.NoError for zip reader creation. |
| api-tests/management/valkey_test.go | Use require.NoError in API success flows. |
| api-tests/management/proxysql_test.go | Use require.NoError in API success flows. |
| api-tests/management/postgresql_test.go | Use require.NoError in API success flows. |
| api-tests/management/nodes_test.go | Use require.NoError in node register flows. |
| api-tests/management/mysql_test.go | Use require.NoError in API success flows. |
| api-tests/management/mongodb_test.go | Use require.NoError in API success flows. |
| api-tests/management/helpers.go | Use require.NoError in helper assertions. |
| api-tests/management/haproxy_test.go | Use require.NoError in API success flows. |
| api-tests/management/external_test.go | Use require.NoError in API success flows. |
| api-tests/management/annotation_test.go | Remove assert import; use require.NoError for setup calls. |
| api-tests/management/action/explain_test.go | Use require.NoError for JSON unmarshal. |
| api-tests/inventory/services_test.go | Replace meaningless len(...) >= 0 assertions with assert.Empty/NotEmpty where appropriate. |
| api-tests/helpers.go | Use require.NoError when constructing Grafana client. |
| api-tests/alerting/alerting_test.go | Replace float assert.Equal with assert.InDelta and rename min/max locals. |
| agent/versioner/versioner_test.go | Import require; use require.NoError for version parsing calls. |
| agent/utils/version/mysql_test.go | Import require; use require.NoError. |
| agent/utils/templates/template_test.go | Import require; use require.NoError for FS operations. |
| agent/utils/mongo_fix/mongo_fix_test.go | Import require; use require.NoError. |
| agent/utils/filereader/continuous_file_reader_test.go | Use require.NoError for reader close. |
| agent/runner/jobs/pbm_helpers_test.go | Switch error checks to require.*. |
| agent/runner/jobs/mongodb_backup_job_test.go | Import require; use require.* for error/no-error cases. |
| agent/runner/actions/pt_mysql_summary_action_test.go | Use require.Error for cancellation expectation. |
| agent/runner/actions/process_action_test.go | Use require.Error for cancellation expectation. |
| agent/runner/actions/postgresql_show_create_table_action_test.go | Use require.EqualError for exact error string. |
| agent/runner/actions/postgresql_query_select_action_test.go | Use require.EqualError for exact error string. |
| agent/runner/actions/mysql_show_table_status_action_test.go | Use require.* and adjust float comparison to InDelta. |
| agent/runner/actions/mysql_show_index_action_test.go | Switch to require.* for error/no-error paths. |
| agent/runner/actions/mysql_show_create_table_action_test.go | Use require.EqualError for exact error string. |
| agent/runner/actions/mysql_explain_action_test.go | Use require.NoError for JSON unmarshal; use require.ErrorContains for expected failures; adjust float comparisons. |
| agent/runner/actions/mongodb_query_admincommand_action_test.go | Remove unused errors import; adjust float comparisons and use require.ErrorAs. |
| agent/runner/actions/mongodb_explain_action_test.go | Use require.* for fatal error checks and file reads. |
| agent/config/config_test.go | Replace IsType with ErrorAs for typed errors. |
| agent/client/client_test.go | Use require.EqualError/require.NoError for fatal checks. |
| agent/client/channel/channel_test.go | Use require.* for send/recv lifecycle checks. |
| agent/agents/supervisor/ports_registry_test.go | Use require.* for reserve/release errors. |
| agent/agents/postgres/pgstatstatements/pgstatstatements_test.go | Use require.NoError in extension teardown; adjust float comparisons. |
| agent/agents/postgres/pgstatmonitor/stat_monitor_cache_test.go | Remove assert import; use require.* for extension/setup/settings. |
| agent/agents/postgres/pgstatmonitor/pgstatmonitor_test.go | Use require.* and replace manual WaitGroup goroutines with waitGroup.Go. |
| agent/agents/mysql/slowlog/parser/parser_test.go | Use require.NoError for reader close. |
| agent/agents/mysql/slowlog/parser/parser_bench_test.go | Use require.NoError for benchmark setup/close. |
| agent/agents/mongodb/shared/fingerprinter/fingerprinter_test.go | Use require.NoError for inserts. |
| agent/agents/mongodb/shared/aggregator/aggregator_test.go | Use require.EqualError for exact error string. |
| agent/agents/mongodb/profiler/internal/profiler_test.go | Remove global log level mutation; use require.NoError; adjust numeric comparisons to InDelta. |
| agent/agents/mongodb/profiler/internal/parser/parser_test.go | Adjust numeric comparisons to InDelta. |
| agent/agents/mongodb/profiler/internal/collector/collector_test.go | Remove global log level mutation. |
| agent/agents/mongodb/mongolog/internal/monitor_test.go | Remove global log level mutation. |
| agent/agents/cache/cache_test.go | Use require.Error for negative cases. |
| admin/commands/summary_test.go | Use require.NoError for file close/zip open. |
| admin/commands/management/add_mysql_test.go | Import require and simplify error expectation. |
| admin/commands/list_test.go | Import require; use require.NoError for JSON marshal. |
| admin/commands/base_test.go | Import require; use require.NoError in cleanup and file read tests. |
Comments suppressed due to low confidence (2)
managed/services/checks/funcs_test.go:80
- Same issue here:
require.Error(t, err, expectedErr)does not verify the error text equalsexpectedErr, it only checks thaterr != nil. Userequire.EqualError/require.ErrorContainsto keep the assertion meaningful.
managed/services/checks/funcs_test.go:281 require.Error(t, err, tc.err)does not assert that the error message matchestc.err; it only assertserris non-nil and usestc.erras a failure message. If the test intends to validate the exact error string fromenv.Run, switch torequire.EqualError(orrequire.ErrorContainsif appropriate).
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
PMM-7