From c650aabbef3ec14eb547890a35065ae1bf5552ec Mon Sep 17 00:00:00 2001 From: Ethan Date: Fri, 22 May 2026 20:24:38 +1000 Subject: [PATCH] chore: standardize on *_internal_test.go for white-box tests (#25601) My agent added `//nolint:testpackage` to a test file on one of my PRs. Again. This PR cleans it up across the entire repo and updates the in-repo conventions so future agents stop doing it. The repo already has a precedent for white-box tests that need to touch unexported symbols: `*_internal_test.go` (145+ existing files). The `testpackage` linter's default `skip-regexp` exempts that filename suffix, so the `//nolint:testpackage` directive is unnecessary in every case where someone reached for it. This PR renames 51 such files to `*_internal_test.go` via `git mv` so blame and history follow, and strips the dead directive from 2 files that were already correctly named (`coderd/oauth2provider/authorize_internal_test.go`, `coderd/x/chatd/advisor_internal_test.go`). `.claude/docs/TESTING.md` now documents the rule explicitly under *Test Package Naming*, which is imported into the root `AGENTS.md` via `@.claude/docs/TESTING.md`. The rule: prefer `package foo_test`; if you need internal access, rename the file to `*_internal_test.go` rather than adding a nolint directive. --- .claude/docs/TESTING.md | 36 ++++++++++++------- ...st.go => reconnectingpty_internal_test.go} | 1 - ...go => write_secret_files_internal_test.go} | 2 +- ...idump_test.go => apidump_internal_test.go} | 2 +- ...aders_test.go => headers_internal_test.go} | 2 +- ...ing_test.go => streaming_internal_test.go} | 2 +- .../{base_test.go => base_internal_test.go} | 2 +- ...king_test.go => blocking_internal_test.go} | 2 +- ...ap_test.go => paramswrap_internal_test.go} | 2 +- ...ing_test.go => streaming_internal_test.go} | 2 +- .../{base_test.go => base_internal_test.go} | 2 +- ...king_test.go => blocking_internal_test.go} | 2 +- ...ad_test.go => reqpayload_internal_test.go} | 2 +- ...ing_test.go => streaming_internal_test.go} | 2 +- .../{base_test.go => base_internal_test.go} | 2 +- ...king_test.go => blocking_internal_test.go} | 2 +- ...ad_test.go => reqpayload_internal_test.go} | 2 +- ...ing_test.go => streaming_internal_test.go} | 2 +- ...idump_test.go => apidump_internal_test.go} | 2 +- ...bridge_test.go => bridge_internal_test.go} | 2 +- ...st.go => circuit_breaker_internal_test.go} | 2 +- ...t.go => keypool_failover_internal_test.go} | 2 +- ...trics_test.go => metrics_internal_test.go} | 2 +- ...ses_test.go => responses_internal_test.go} | 2 +- .../{trace_test.go => trace_internal_test.go} | 2 +- ...h_test.go => passthrough_internal_test.go} | 2 +- ...pic_test.go => anthropic_internal_test.go} | 2 +- ...pilot_test.go => copilot_internal_test.go} | 2 +- ...openai_test.go => openai_internal_test.go} | 2 +- .../oauth2provider/authorize_internal_test.go | 1 - coderd/templates_meta_update_internal_test.go | 2 +- coderd/x/chatd/advisor_internal_test.go | 2 +- ...s_test.go => attachments_internal_test.go} | 2 +- ...est.go => model_coverage_internal_test.go} | 2 +- ...o => model_normalization_internal_test.go} | 2 +- ...rder_test.go => recorder_internal_test.go} | 2 +- ...ep_test.go => reuse_step_internal_test.go} | 2 +- ...ort_test.go => transport_internal_test.go} | 2 +- ..._test.go => chatloop_run_internal_test.go} | 2 +- ...on_test.go => compaction_internal_test.go} | 2 +- ...st.go => askuserquestion_internal_test.go} | 2 +- ...st.go => createworkspace_internal_test.go} | 2 +- ...e_test.go => configcache_internal_test.go} | 2 +- ...est.go => dialvalidation_internal_test.go} | 2 +- ...n_test.go => instruction_internal_test.go} | 2 +- ...kgen_test.go => quickgen_internal_test.go} | 2 +- ...=> store_chat_attachment_internal_test.go} | 2 +- ...est.go => title_override_internal_test.go} | 2 +- ...it_test.go => usagelimit_internal_test.go} | 2 +- ...on_test.go => pagination_internal_test.go} | 1 - ...onn_test.go => agentconn_internal_test.go} | 1 - ...runner_test.go => runner_internal_test.go} | 2 +- 52 files changed, 70 insertions(+), 64 deletions(-) rename agent/reconnectingpty/{reconnectingpty_test.go => reconnectingpty_internal_test.go} (97%) rename agent/{write_secret_files_test.go => write_secret_files_internal_test.go} (98%) rename aibridge/intercept/apidump/{apidump_test.go => apidump_internal_test.go} (99%) rename aibridge/intercept/apidump/{headers_test.go => headers_internal_test.go} (97%) rename aibridge/intercept/apidump/{streaming_test.go => streaming_internal_test.go} (97%) rename aibridge/intercept/chatcompletions/{base_test.go => base_internal_test.go} (99%) rename aibridge/intercept/chatcompletions/{blocking_test.go => blocking_internal_test.go} (99%) rename aibridge/intercept/chatcompletions/{paramswrap_test.go => paramswrap_internal_test.go} (98%) rename aibridge/intercept/chatcompletions/{streaming_test.go => streaming_internal_test.go} (99%) rename aibridge/intercept/messages/{base_test.go => base_internal_test.go} (99%) rename aibridge/intercept/messages/{blocking_test.go => blocking_internal_test.go} (99%) rename aibridge/intercept/messages/{reqpayload_test.go => reqpayload_internal_test.go} (99%) rename aibridge/intercept/messages/{streaming_test.go => streaming_internal_test.go} (99%) rename aibridge/intercept/responses/{base_test.go => base_internal_test.go} (99%) rename aibridge/intercept/responses/{blocking_test.go => blocking_internal_test.go} (99%) rename aibridge/intercept/responses/{reqpayload_test.go => reqpayload_internal_test.go} (99%) rename aibridge/intercept/responses/{streaming_test.go => streaming_internal_test.go} (99%) rename aibridge/internal/integrationtest/{apidump_test.go => apidump_internal_test.go} (99%) rename aibridge/internal/integrationtest/{bridge_test.go => bridge_internal_test.go} (99%) rename aibridge/internal/integrationtest/{circuit_breaker_test.go => circuit_breaker_internal_test.go} (99%) rename aibridge/internal/integrationtest/{keypool_failover_test.go => keypool_failover_internal_test.go} (99%) rename aibridge/internal/integrationtest/{metrics_test.go => metrics_internal_test.go} (99%) rename aibridge/internal/integrationtest/{responses_test.go => responses_internal_test.go} (99%) rename aibridge/internal/integrationtest/{trace_test.go => trace_internal_test.go} (99%) rename aibridge/{passthrough_test.go => passthrough_internal_test.go} (99%) rename aibridge/provider/{anthropic_test.go => anthropic_internal_test.go} (99%) rename aibridge/provider/{copilot_test.go => copilot_internal_test.go} (99%) rename aibridge/provider/{openai_test.go => openai_internal_test.go} (99%) rename coderd/x/chatd/{attachments_test.go => attachments_internal_test.go} (99%) rename coderd/x/chatd/chatdebug/{model_coverage_test.go => model_coverage_internal_test.go} (99%) rename coderd/x/chatd/chatdebug/{model_normalization_test.go => model_normalization_internal_test.go} (99%) rename coderd/x/chatd/chatdebug/{recorder_test.go => recorder_internal_test.go} (98%) rename coderd/x/chatd/chatdebug/{reuse_step_test.go => reuse_step_internal_test.go} (97%) rename coderd/x/chatd/chatdebug/{transport_test.go => transport_internal_test.go} (99%) rename coderd/x/chatd/chatloop/{chatloop_test.go => chatloop_run_internal_test.go} (99%) rename coderd/x/chatd/chatloop/{compaction_test.go => compaction_internal_test.go} (99%) rename coderd/x/chatd/chattool/{askuserquestion_test.go => askuserquestion_internal_test.go} (98%) rename coderd/x/chatd/chattool/{createworkspace_test.go => createworkspace_internal_test.go} (99%) rename coderd/x/chatd/{configcache_test.go => configcache_internal_test.go} (99%) rename coderd/x/chatd/{dialvalidation_test.go => dialvalidation_internal_test.go} (99%) rename coderd/x/chatd/{instruction_test.go => instruction_internal_test.go} (99%) rename coderd/x/chatd/{quickgen_test.go => quickgen_internal_test.go} (99%) rename coderd/x/chatd/{store_chat_attachment_test.go => store_chat_attachment_internal_test.go} (99%) rename coderd/x/chatd/{title_override_test.go => title_override_internal_test.go} (99%) rename coderd/x/chatd/{usagelimit_test.go => usagelimit_internal_test.go} (98%) rename codersdk/{pagination_test.go => pagination_internal_test.go} (98%) rename codersdk/workspacesdk/{agentconn_test.go => agentconn_internal_test.go} (91%) rename provisionerd/runner/{runner_test.go => runner_internal_test.go} (81%) diff --git a/.claude/docs/TESTING.md b/.claude/docs/TESTING.md index 21aff372bb..fc87f95726 100644 --- a/.claude/docs/TESTING.md +++ b/.claude/docs/TESTING.md @@ -30,7 +30,16 @@ issues. ### Test Package Naming -- **Test packages**: Use `package_test` naming (e.g., `identityprovider_test`) for black-box testing +- **Black-box tests**: Default to a `package foo_test` test file (e.g., + `identityprovider_test`). This is what the `testpackage` linter enforces. +- **White-box / internal tests**: When a test needs to touch unexported + symbols, put it in a file named `*_internal_test.go` with `package foo`. + The `testpackage` linter's `skip-regexp` already exempts that filename + suffix, so no `//nolint:testpackage` directive is needed. +- **Do not add `//nolint:testpackage`.** If a test needs internal access, + rename the file to `*_internal_test.go` instead. A directive plus a + justification comment is strictly worse than the established naming + convention, and the repo standardizes on the latter. ## RFC Protocol Testing @@ -50,7 +59,7 @@ issues. ### Test File Structure -``` +```text coderd/ ├── oauth2.go # Implementation ├── oauth2_test.go # Main tests @@ -69,20 +78,20 @@ coderd/ ### Running Tests -| Command | Purpose | -|---------|---------| -| `make test` | Run all Go tests | -| `make test RUN=TestFunctionName` | Run specific test | -| `go test -v ./path/to/package -run TestFunctionName` | Run test with verbose output | -| `make test-race` | Run tests with Go race detector | -| `make test-e2e` | Run end-to-end tests | +| Command | Purpose | +|------------------------------------------------------|---------------------------------| +| `make test` | Run all Go tests | +| `make test RUN=TestFunctionName` | Run specific test | +| `go test -v ./path/to/package -run TestFunctionName` | Run test with verbose output | +| `make test-race` | Run tests with Go race detector | +| `make test-e2e` | Run end-to-end tests | ### Frontend Testing -| Command | Purpose | -|---------|---------| -| `pnpm test` | Run frontend tests | -| `pnpm check` | Run code checks | +| Command | Purpose | +|--------------|--------------------| +| `pnpm test` | Run frontend tests | +| `pnpm check` | Run code checks | ## Common Testing Issues @@ -218,6 +227,7 @@ func BenchmarkFunction(b *testing.B) { ``` Run benchmarks with: + ```bash go test -bench=. -benchmem ./package/path ``` diff --git a/agent/reconnectingpty/reconnectingpty_test.go b/agent/reconnectingpty/reconnectingpty_internal_test.go similarity index 97% rename from agent/reconnectingpty/reconnectingpty_test.go rename to agent/reconnectingpty/reconnectingpty_internal_test.go index 23f8cd26b1..1377f9bd80 100644 --- a/agent/reconnectingpty/reconnectingpty_test.go +++ b/agent/reconnectingpty/reconnectingpty_internal_test.go @@ -1,4 +1,3 @@ -//nolint:testpackage // Tests private env helpers directly. package reconnectingpty import ( diff --git a/agent/write_secret_files_test.go b/agent/write_secret_files_internal_test.go similarity index 98% rename from agent/write_secret_files_test.go rename to agent/write_secret_files_internal_test.go index 935d1ba736..8668c3dfd1 100644 --- a/agent/write_secret_files_test.go +++ b/agent/write_secret_files_internal_test.go @@ -1,4 +1,4 @@ -package agent //nolint:testpackage // Exercises internal agent secrets handling. +package agent import ( "testing" diff --git a/aibridge/intercept/apidump/apidump_test.go b/aibridge/intercept/apidump/apidump_internal_test.go similarity index 99% rename from aibridge/intercept/apidump/apidump_test.go rename to aibridge/intercept/apidump/apidump_internal_test.go index f3fb30e60c..fe54e50cc5 100644 --- a/aibridge/intercept/apidump/apidump_test.go +++ b/aibridge/intercept/apidump/apidump_internal_test.go @@ -1,4 +1,4 @@ -package apidump //nolint:testpackage // tests unexported internals +package apidump import ( "bytes" diff --git a/aibridge/intercept/apidump/headers_test.go b/aibridge/intercept/apidump/headers_internal_test.go similarity index 97% rename from aibridge/intercept/apidump/headers_test.go rename to aibridge/intercept/apidump/headers_internal_test.go index 832b6fd95d..5eea529a56 100644 --- a/aibridge/intercept/apidump/headers_test.go +++ b/aibridge/intercept/apidump/headers_internal_test.go @@ -1,4 +1,4 @@ -package apidump //nolint:testpackage // tests unexported internals +package apidump import ( "bytes" diff --git a/aibridge/intercept/apidump/streaming_test.go b/aibridge/intercept/apidump/streaming_internal_test.go similarity index 97% rename from aibridge/intercept/apidump/streaming_test.go rename to aibridge/intercept/apidump/streaming_internal_test.go index 7bdac2a96c..87223df6a0 100644 --- a/aibridge/intercept/apidump/streaming_test.go +++ b/aibridge/intercept/apidump/streaming_internal_test.go @@ -1,4 +1,4 @@ -package apidump //nolint:testpackage // shares test helpers with apidump_test.go +package apidump import ( "bytes" diff --git a/aibridge/intercept/chatcompletions/base_test.go b/aibridge/intercept/chatcompletions/base_internal_test.go similarity index 99% rename from aibridge/intercept/chatcompletions/base_test.go rename to aibridge/intercept/chatcompletions/base_internal_test.go index 85b3cf5c23..d673ec1fe4 100644 --- a/aibridge/intercept/chatcompletions/base_test.go +++ b/aibridge/intercept/chatcompletions/base_internal_test.go @@ -1,4 +1,4 @@ -package chatcompletions //nolint:testpackage // tests unexported internals +package chatcompletions import ( "context" diff --git a/aibridge/intercept/chatcompletions/blocking_test.go b/aibridge/intercept/chatcompletions/blocking_internal_test.go similarity index 99% rename from aibridge/intercept/chatcompletions/blocking_test.go rename to aibridge/intercept/chatcompletions/blocking_internal_test.go index 2a6fdb92c7..3b3a917a54 100644 --- a/aibridge/intercept/chatcompletions/blocking_test.go +++ b/aibridge/intercept/chatcompletions/blocking_internal_test.go @@ -1,4 +1,4 @@ -package chatcompletions //nolint:testpackage // tests unexported internals +package chatcompletions import ( "context" diff --git a/aibridge/intercept/chatcompletions/paramswrap_test.go b/aibridge/intercept/chatcompletions/paramswrap_internal_test.go similarity index 98% rename from aibridge/intercept/chatcompletions/paramswrap_test.go rename to aibridge/intercept/chatcompletions/paramswrap_internal_test.go index 1e7c61f3b8..7397e220ef 100644 --- a/aibridge/intercept/chatcompletions/paramswrap_test.go +++ b/aibridge/intercept/chatcompletions/paramswrap_internal_test.go @@ -1,4 +1,4 @@ -package chatcompletions //nolint:testpackage // tests unexported internals +package chatcompletions import ( "fmt" diff --git a/aibridge/intercept/chatcompletions/streaming_test.go b/aibridge/intercept/chatcompletions/streaming_internal_test.go similarity index 99% rename from aibridge/intercept/chatcompletions/streaming_test.go rename to aibridge/intercept/chatcompletions/streaming_internal_test.go index 162624375b..82c58f9bc1 100644 --- a/aibridge/intercept/chatcompletions/streaming_test.go +++ b/aibridge/intercept/chatcompletions/streaming_internal_test.go @@ -1,4 +1,4 @@ -package chatcompletions //nolint:testpackage // tests unexported internals +package chatcompletions import ( "io" diff --git a/aibridge/intercept/messages/base_test.go b/aibridge/intercept/messages/base_internal_test.go similarity index 99% rename from aibridge/intercept/messages/base_test.go rename to aibridge/intercept/messages/base_internal_test.go index 5696ca2e99..9605d97966 100644 --- a/aibridge/intercept/messages/base_test.go +++ b/aibridge/intercept/messages/base_internal_test.go @@ -1,4 +1,4 @@ -package messages //nolint:testpackage // tests unexported internals +package messages import ( "context" diff --git a/aibridge/intercept/messages/blocking_test.go b/aibridge/intercept/messages/blocking_internal_test.go similarity index 99% rename from aibridge/intercept/messages/blocking_test.go rename to aibridge/intercept/messages/blocking_internal_test.go index 475ad607f4..857d425fe3 100644 --- a/aibridge/intercept/messages/blocking_test.go +++ b/aibridge/intercept/messages/blocking_internal_test.go @@ -1,4 +1,4 @@ -package messages //nolint:testpackage // tests unexported internals +package messages import ( "io" diff --git a/aibridge/intercept/messages/reqpayload_test.go b/aibridge/intercept/messages/reqpayload_internal_test.go similarity index 99% rename from aibridge/intercept/messages/reqpayload_test.go rename to aibridge/intercept/messages/reqpayload_internal_test.go index 29bffaa734..1ef50223c5 100644 --- a/aibridge/intercept/messages/reqpayload_test.go +++ b/aibridge/intercept/messages/reqpayload_internal_test.go @@ -1,4 +1,4 @@ -package messages //nolint:testpackage // tests unexported internals +package messages import ( "testing" diff --git a/aibridge/intercept/messages/streaming_test.go b/aibridge/intercept/messages/streaming_internal_test.go similarity index 99% rename from aibridge/intercept/messages/streaming_test.go rename to aibridge/intercept/messages/streaming_internal_test.go index 6f573b3808..075a15264e 100644 --- a/aibridge/intercept/messages/streaming_test.go +++ b/aibridge/intercept/messages/streaming_internal_test.go @@ -1,4 +1,4 @@ -package messages //nolint:testpackage // tests unexported internals +package messages import ( "context" diff --git a/aibridge/intercept/responses/base_test.go b/aibridge/intercept/responses/base_internal_test.go similarity index 99% rename from aibridge/intercept/responses/base_test.go rename to aibridge/intercept/responses/base_internal_test.go index f071441729..d836646708 100644 --- a/aibridge/intercept/responses/base_test.go +++ b/aibridge/intercept/responses/base_internal_test.go @@ -1,4 +1,4 @@ -package responses //nolint:testpackage // tests unexported internals +package responses import ( "context" diff --git a/aibridge/intercept/responses/blocking_test.go b/aibridge/intercept/responses/blocking_internal_test.go similarity index 99% rename from aibridge/intercept/responses/blocking_test.go rename to aibridge/intercept/responses/blocking_internal_test.go index 8e1e67e0b6..678c2ce0f3 100644 --- a/aibridge/intercept/responses/blocking_test.go +++ b/aibridge/intercept/responses/blocking_internal_test.go @@ -1,4 +1,4 @@ -package responses //nolint:testpackage // tests unexported internals +package responses import ( "context" diff --git a/aibridge/intercept/responses/reqpayload_test.go b/aibridge/intercept/responses/reqpayload_internal_test.go similarity index 99% rename from aibridge/intercept/responses/reqpayload_test.go rename to aibridge/intercept/responses/reqpayload_internal_test.go index 15f84183d3..4c2f589a69 100644 --- a/aibridge/intercept/responses/reqpayload_test.go +++ b/aibridge/intercept/responses/reqpayload_internal_test.go @@ -1,4 +1,4 @@ -package responses //nolint:testpackage // tests unexported internals +package responses import ( "encoding/json" diff --git a/aibridge/intercept/responses/streaming_test.go b/aibridge/intercept/responses/streaming_internal_test.go similarity index 99% rename from aibridge/intercept/responses/streaming_test.go rename to aibridge/intercept/responses/streaming_internal_test.go index 88e3b85495..3226147cbd 100644 --- a/aibridge/intercept/responses/streaming_test.go +++ b/aibridge/intercept/responses/streaming_internal_test.go @@ -1,4 +1,4 @@ -package responses //nolint:testpackage // tests unexported internals +package responses import ( "io" diff --git a/aibridge/internal/integrationtest/apidump_test.go b/aibridge/internal/integrationtest/apidump_internal_test.go similarity index 99% rename from aibridge/internal/integrationtest/apidump_test.go rename to aibridge/internal/integrationtest/apidump_internal_test.go index c64eded197..738c245569 100644 --- a/aibridge/internal/integrationtest/apidump_test.go +++ b/aibridge/internal/integrationtest/apidump_internal_test.go @@ -1,4 +1,4 @@ -package integrationtest //nolint:testpackage // tests unexported internals +package integrationtest import ( "bufio" diff --git a/aibridge/internal/integrationtest/bridge_test.go b/aibridge/internal/integrationtest/bridge_internal_test.go similarity index 99% rename from aibridge/internal/integrationtest/bridge_test.go rename to aibridge/internal/integrationtest/bridge_internal_test.go index 80ebf49915..cfb40599d3 100644 --- a/aibridge/internal/integrationtest/bridge_test.go +++ b/aibridge/internal/integrationtest/bridge_internal_test.go @@ -1,4 +1,4 @@ -package integrationtest //nolint:testpackage // tests unexported internals +package integrationtest import ( "bytes" diff --git a/aibridge/internal/integrationtest/circuit_breaker_test.go b/aibridge/internal/integrationtest/circuit_breaker_internal_test.go similarity index 99% rename from aibridge/internal/integrationtest/circuit_breaker_test.go rename to aibridge/internal/integrationtest/circuit_breaker_internal_test.go index c2619ec920..afa6091e2a 100644 --- a/aibridge/internal/integrationtest/circuit_breaker_test.go +++ b/aibridge/internal/integrationtest/circuit_breaker_internal_test.go @@ -1,4 +1,4 @@ -package integrationtest //nolint:testpackage // tests unexported internals +package integrationtest import ( "fmt" diff --git a/aibridge/internal/integrationtest/keypool_failover_test.go b/aibridge/internal/integrationtest/keypool_failover_internal_test.go similarity index 99% rename from aibridge/internal/integrationtest/keypool_failover_test.go rename to aibridge/internal/integrationtest/keypool_failover_internal_test.go index a96b870cd6..5e11fba35c 100644 --- a/aibridge/internal/integrationtest/keypool_failover_test.go +++ b/aibridge/internal/integrationtest/keypool_failover_internal_test.go @@ -1,4 +1,4 @@ -package integrationtest //nolint:testpackage // tests unexported internals +package integrationtest import ( "fmt" diff --git a/aibridge/internal/integrationtest/metrics_test.go b/aibridge/internal/integrationtest/metrics_internal_test.go similarity index 99% rename from aibridge/internal/integrationtest/metrics_test.go rename to aibridge/internal/integrationtest/metrics_internal_test.go index a9a82aa25a..dd3c010607 100644 --- a/aibridge/internal/integrationtest/metrics_test.go +++ b/aibridge/internal/integrationtest/metrics_internal_test.go @@ -1,4 +1,4 @@ -package integrationtest //nolint:testpackage // tests unexported internals +package integrationtest import ( "bytes" diff --git a/aibridge/internal/integrationtest/responses_test.go b/aibridge/internal/integrationtest/responses_internal_test.go similarity index 99% rename from aibridge/internal/integrationtest/responses_test.go rename to aibridge/internal/integrationtest/responses_internal_test.go index aa764188af..073483c8e8 100644 --- a/aibridge/internal/integrationtest/responses_test.go +++ b/aibridge/internal/integrationtest/responses_internal_test.go @@ -1,4 +1,4 @@ -package integrationtest //nolint:testpackage // tests unexported internals +package integrationtest import ( "context" diff --git a/aibridge/internal/integrationtest/trace_test.go b/aibridge/internal/integrationtest/trace_internal_test.go similarity index 99% rename from aibridge/internal/integrationtest/trace_test.go rename to aibridge/internal/integrationtest/trace_internal_test.go index d70b1ffccf..c22635e9a9 100644 --- a/aibridge/internal/integrationtest/trace_test.go +++ b/aibridge/internal/integrationtest/trace_internal_test.go @@ -1,4 +1,4 @@ -package integrationtest //nolint:testpackage // tests unexported internals +package integrationtest import ( "context" diff --git a/aibridge/passthrough_test.go b/aibridge/passthrough_internal_test.go similarity index 99% rename from aibridge/passthrough_test.go rename to aibridge/passthrough_internal_test.go index 6679feb932..79290e05a1 100644 --- a/aibridge/passthrough_test.go +++ b/aibridge/passthrough_internal_test.go @@ -1,4 +1,4 @@ -package aibridge //nolint:testpackage // tests unexported newPassthroughRouter +package aibridge import ( "crypto/tls" diff --git a/aibridge/provider/anthropic_test.go b/aibridge/provider/anthropic_internal_test.go similarity index 99% rename from aibridge/provider/anthropic_test.go rename to aibridge/provider/anthropic_internal_test.go index 7ebf4495d9..fe375d4617 100644 --- a/aibridge/provider/anthropic_test.go +++ b/aibridge/provider/anthropic_internal_test.go @@ -1,4 +1,4 @@ -package provider //nolint:testpackage // tests unexported internals +package provider import ( "bytes" diff --git a/aibridge/provider/copilot_test.go b/aibridge/provider/copilot_internal_test.go similarity index 99% rename from aibridge/provider/copilot_test.go rename to aibridge/provider/copilot_internal_test.go index cd30a83350..836dde5b7b 100644 --- a/aibridge/provider/copilot_test.go +++ b/aibridge/provider/copilot_internal_test.go @@ -1,4 +1,4 @@ -package provider //nolint:testpackage // tests unexported internals +package provider import ( "bytes" diff --git a/aibridge/provider/openai_test.go b/aibridge/provider/openai_internal_test.go similarity index 99% rename from aibridge/provider/openai_test.go rename to aibridge/provider/openai_internal_test.go index d739a2dc20..96695a2c2f 100644 --- a/aibridge/provider/openai_test.go +++ b/aibridge/provider/openai_internal_test.go @@ -1,4 +1,4 @@ -package provider //nolint:testpackage // tests unexported internals +package provider import ( "bytes" diff --git a/coderd/oauth2provider/authorize_internal_test.go b/coderd/oauth2provider/authorize_internal_test.go index 2e23b96188..4f2d3fc993 100644 --- a/coderd/oauth2provider/authorize_internal_test.go +++ b/coderd/oauth2provider/authorize_internal_test.go @@ -1,4 +1,3 @@ -//nolint:testpackage // Internal test for unexported hashOAuth2State helper. package oauth2provider import ( diff --git a/coderd/templates_meta_update_internal_test.go b/coderd/templates_meta_update_internal_test.go index e7b00afa3e..3ef2a462d3 100644 --- a/coderd/templates_meta_update_internal_test.go +++ b/coderd/templates_meta_update_internal_test.go @@ -1,4 +1,4 @@ -package coderd //nolint:testpackage // Tests the unexported resolveTemplateMetaUpdate helper. +package coderd import ( "reflect" diff --git a/coderd/x/chatd/advisor_internal_test.go b/coderd/x/chatd/advisor_internal_test.go index 48a937b3d8..90a6b00bf3 100644 --- a/coderd/x/chatd/advisor_internal_test.go +++ b/coderd/x/chatd/advisor_internal_test.go @@ -1,4 +1,4 @@ -package chatd //nolint:testpackage // Accesses unexported advisor helpers. +package chatd import ( "context" diff --git a/coderd/x/chatd/attachments_test.go b/coderd/x/chatd/attachments_internal_test.go similarity index 99% rename from coderd/x/chatd/attachments_test.go rename to coderd/x/chatd/attachments_internal_test.go index c9a6cfb339..83eb4c3819 100644 --- a/coderd/x/chatd/attachments_test.go +++ b/coderd/x/chatd/attachments_internal_test.go @@ -1,4 +1,4 @@ -package chatd //nolint:testpackage +package chatd import ( "context" diff --git a/coderd/x/chatd/chatdebug/model_coverage_test.go b/coderd/x/chatd/chatdebug/model_coverage_internal_test.go similarity index 99% rename from coderd/x/chatd/chatdebug/model_coverage_test.go rename to coderd/x/chatd/chatdebug/model_coverage_internal_test.go index 8ce87ca40f..1586d49322 100644 --- a/coderd/x/chatd/chatdebug/model_coverage_test.go +++ b/coderd/x/chatd/chatdebug/model_coverage_internal_test.go @@ -1,4 +1,4 @@ -package chatdebug //nolint:testpackage // Checks unexported normalized structs against fantasy source types. +package chatdebug import ( "reflect" diff --git a/coderd/x/chatd/chatdebug/model_normalization_test.go b/coderd/x/chatd/chatdebug/model_normalization_internal_test.go similarity index 99% rename from coderd/x/chatd/chatdebug/model_normalization_test.go rename to coderd/x/chatd/chatdebug/model_normalization_internal_test.go index 395fa056f7..0f80806d36 100644 --- a/coderd/x/chatd/chatdebug/model_normalization_test.go +++ b/coderd/x/chatd/chatdebug/model_normalization_internal_test.go @@ -1,4 +1,4 @@ -package chatdebug //nolint:testpackage // Uses unexported normalization helpers. +package chatdebug import ( "context" diff --git a/coderd/x/chatd/chatdebug/recorder_test.go b/coderd/x/chatd/chatdebug/recorder_internal_test.go similarity index 98% rename from coderd/x/chatd/chatdebug/recorder_test.go rename to coderd/x/chatd/chatdebug/recorder_internal_test.go index ca85573ac9..a9ed5e9bd8 100644 --- a/coderd/x/chatd/chatdebug/recorder_test.go +++ b/coderd/x/chatd/chatdebug/recorder_internal_test.go @@ -1,4 +1,4 @@ -package chatdebug //nolint:testpackage // Uses unexported recorder helpers. +package chatdebug import ( "context" diff --git a/coderd/x/chatd/chatdebug/reuse_step_test.go b/coderd/x/chatd/chatdebug/reuse_step_internal_test.go similarity index 97% rename from coderd/x/chatd/chatdebug/reuse_step_test.go rename to coderd/x/chatd/chatdebug/reuse_step_internal_test.go index d878d86599..466ec3b117 100644 --- a/coderd/x/chatd/chatdebug/reuse_step_test.go +++ b/coderd/x/chatd/chatdebug/reuse_step_internal_test.go @@ -1,4 +1,4 @@ -package chatdebug //nolint:testpackage // Uses unexported recorder helpers. +package chatdebug import ( "context" diff --git a/coderd/x/chatd/chatdebug/transport_test.go b/coderd/x/chatd/chatdebug/transport_internal_test.go similarity index 99% rename from coderd/x/chatd/chatdebug/transport_test.go rename to coderd/x/chatd/chatdebug/transport_internal_test.go index 369eacd7a2..abe2ff616c 100644 --- a/coderd/x/chatd/chatdebug/transport_test.go +++ b/coderd/x/chatd/chatdebug/transport_internal_test.go @@ -1,4 +1,4 @@ -package chatdebug //nolint:testpackage // Uses unexported recorder helpers. +package chatdebug import ( "bytes" diff --git a/coderd/x/chatd/chatloop/chatloop_test.go b/coderd/x/chatd/chatloop/chatloop_run_internal_test.go similarity index 99% rename from coderd/x/chatd/chatloop/chatloop_test.go rename to coderd/x/chatd/chatloop/chatloop_run_internal_test.go index 1eb54cb958..a7a2079d79 100644 --- a/coderd/x/chatd/chatloop/chatloop_test.go +++ b/coderd/x/chatd/chatloop/chatloop_run_internal_test.go @@ -1,4 +1,4 @@ -package chatloop //nolint:testpackage // Uses internal symbols. +package chatloop import ( "context" diff --git a/coderd/x/chatd/chatloop/compaction_test.go b/coderd/x/chatd/chatloop/compaction_internal_test.go similarity index 99% rename from coderd/x/chatd/chatloop/compaction_test.go rename to coderd/x/chatd/chatloop/compaction_internal_test.go index 9aabd876c8..ae26ed8cf0 100644 --- a/coderd/x/chatd/chatloop/compaction_test.go +++ b/coderd/x/chatd/chatloop/compaction_internal_test.go @@ -1,4 +1,4 @@ -package chatloop //nolint:testpackage // Uses internal symbols. +package chatloop import ( "context" diff --git a/coderd/x/chatd/chattool/askuserquestion_test.go b/coderd/x/chatd/chattool/askuserquestion_internal_test.go similarity index 98% rename from coderd/x/chatd/chattool/askuserquestion_test.go rename to coderd/x/chatd/chattool/askuserquestion_internal_test.go index a5d270c1d9..96c4ac246f 100644 --- a/coderd/x/chatd/chattool/askuserquestion_test.go +++ b/coderd/x/chatd/chattool/askuserquestion_internal_test.go @@ -1,4 +1,4 @@ -package chattool //nolint:testpackage // Uses internal symbols. +package chattool import ( "testing" diff --git a/coderd/x/chatd/chattool/createworkspace_test.go b/coderd/x/chatd/chattool/createworkspace_internal_test.go similarity index 99% rename from coderd/x/chatd/chattool/createworkspace_test.go rename to coderd/x/chatd/chattool/createworkspace_internal_test.go index 224ed3c753..ca87428200 100644 --- a/coderd/x/chatd/chattool/createworkspace_test.go +++ b/coderd/x/chatd/chattool/createworkspace_internal_test.go @@ -1,4 +1,4 @@ -package chattool //nolint:testpackage // Uses internal symbols. +package chattool import ( "context" diff --git a/coderd/x/chatd/configcache_test.go b/coderd/x/chatd/configcache_internal_test.go similarity index 99% rename from coderd/x/chatd/configcache_test.go rename to coderd/x/chatd/configcache_internal_test.go index ee0855f2f8..4686254241 100644 --- a/coderd/x/chatd/configcache_test.go +++ b/coderd/x/chatd/configcache_internal_test.go @@ -1,4 +1,4 @@ -package chatd //nolint:testpackage // Uses internal cache state. +package chatd import ( "context" diff --git a/coderd/x/chatd/dialvalidation_test.go b/coderd/x/chatd/dialvalidation_internal_test.go similarity index 99% rename from coderd/x/chatd/dialvalidation_test.go rename to coderd/x/chatd/dialvalidation_internal_test.go index da2b639d98..de8723ee40 100644 --- a/coderd/x/chatd/dialvalidation_test.go +++ b/coderd/x/chatd/dialvalidation_internal_test.go @@ -1,4 +1,4 @@ -package chatd //nolint:testpackage // Uses internal symbols. +package chatd import ( "context" diff --git a/coderd/x/chatd/instruction_test.go b/coderd/x/chatd/instruction_internal_test.go similarity index 99% rename from coderd/x/chatd/instruction_test.go rename to coderd/x/chatd/instruction_internal_test.go index 9b4dbf45f5..b897d711c0 100644 --- a/coderd/x/chatd/instruction_test.go +++ b/coderd/x/chatd/instruction_internal_test.go @@ -1,4 +1,4 @@ -package chatd //nolint:testpackage // Uses internal symbols. +package chatd import ( "encoding/json" diff --git a/coderd/x/chatd/quickgen_test.go b/coderd/x/chatd/quickgen_internal_test.go similarity index 99% rename from coderd/x/chatd/quickgen_test.go rename to coderd/x/chatd/quickgen_internal_test.go index 8371d0bc0f..6be464980b 100644 --- a/coderd/x/chatd/quickgen_test.go +++ b/coderd/x/chatd/quickgen_internal_test.go @@ -1,4 +1,4 @@ -package chatd //nolint:testpackage // Keeps internal helper tests in-package. +package chatd import ( "context" diff --git a/coderd/x/chatd/store_chat_attachment_test.go b/coderd/x/chatd/store_chat_attachment_internal_test.go similarity index 99% rename from coderd/x/chatd/store_chat_attachment_test.go rename to coderd/x/chatd/store_chat_attachment_internal_test.go index 70325bd945..657aaad942 100644 --- a/coderd/x/chatd/store_chat_attachment_test.go +++ b/coderd/x/chatd/store_chat_attachment_internal_test.go @@ -1,4 +1,4 @@ -package chatd //nolint:testpackage +package chatd import ( "context" diff --git a/coderd/x/chatd/title_override_test.go b/coderd/x/chatd/title_override_internal_test.go similarity index 99% rename from coderd/x/chatd/title_override_test.go rename to coderd/x/chatd/title_override_internal_test.go index 942bea6ac8..7352198474 100644 --- a/coderd/x/chatd/title_override_test.go +++ b/coderd/x/chatd/title_override_internal_test.go @@ -1,4 +1,4 @@ -package chatd //nolint:testpackage // Tests internal title override helpers. +package chatd import ( "context" diff --git a/coderd/x/chatd/usagelimit_test.go b/coderd/x/chatd/usagelimit_internal_test.go similarity index 98% rename from coderd/x/chatd/usagelimit_test.go rename to coderd/x/chatd/usagelimit_internal_test.go index d618f8e44b..0f0dba1461 100644 --- a/coderd/x/chatd/usagelimit_test.go +++ b/coderd/x/chatd/usagelimit_internal_test.go @@ -1,4 +1,4 @@ -package chatd //nolint:testpackage // Keeps chatd unit tests in the package. +package chatd import ( "testing" diff --git a/codersdk/pagination_test.go b/codersdk/pagination_internal_test.go similarity index 98% rename from codersdk/pagination_test.go rename to codersdk/pagination_internal_test.go index e5bb800274..88b1d93a09 100644 --- a/codersdk/pagination_test.go +++ b/codersdk/pagination_internal_test.go @@ -1,4 +1,3 @@ -//nolint:testpackage package codersdk import ( diff --git a/codersdk/workspacesdk/agentconn_test.go b/codersdk/workspacesdk/agentconn_internal_test.go similarity index 91% rename from codersdk/workspacesdk/agentconn_test.go rename to codersdk/workspacesdk/agentconn_internal_test.go index 617c3d7b79..1721a3ff26 100644 --- a/codersdk/workspacesdk/agentconn_test.go +++ b/codersdk/workspacesdk/agentconn_internal_test.go @@ -1,4 +1,3 @@ -//nolint:testpackage // This test exercises the internal query builder directly because agent requests need a live tailnet connection. package workspacesdk import ( diff --git a/provisionerd/runner/runner_test.go b/provisionerd/runner/runner_internal_test.go similarity index 81% rename from provisionerd/runner/runner_test.go rename to provisionerd/runner/runner_internal_test.go index 18804d23f2..925a4a4459 100644 --- a/provisionerd/runner/runner_test.go +++ b/provisionerd/runner/runner_internal_test.go @@ -1,4 +1,4 @@ -package runner //nolint:testpackage // Tests unexported failure classification helpers. +package runner import ( "testing"