mirror of
https://github.com/coder/coder.git
synced 2026-09-24 15:04:27 +08:00
refactor: deduplicate utility helpers across the codebase (#23338)
Audited exported helpers in `coderd/util/*`, `testutil`, `cryptorand`, and friends, then replaced duplicated implementations with canonical versions. - **fix: `maps.SortedKeys` generic signature** — value type was hardcoded to `any`, making it impossible to actually call. Added second type parameter `V any`. Added table-driven tests with `cmp.Diff`. - **refactor: replace ad-hoc ptr helpers with `ptr.Ref`** — removed `int64Ptr`, `stringPtr`, `boolPtr`, `i64ptr`, `strPtr`, `PtrInt32` across 6 files. - **refactor: replace local `sortedKeys`/`sortKeys` with `maps.SortedKeys`** — now that the signature is fixed, scripts can use it. - **refactor: replace hand-rolled `capitalize` with `strings.Capitalize`** — the typegen version was also not UTF-8 safe. > 🤖 This PR was created with the help of Coder Agents, and was reviewed by my human. 🧑💻
This commit is contained in:
@@ -33,6 +33,7 @@ import (
|
||||
"github.com/coder/coder/v2/coderd/database/dbtime"
|
||||
"github.com/coder/coder/v2/coderd/externalauth"
|
||||
codermcp "github.com/coder/coder/v2/coderd/mcp"
|
||||
"github.com/coder/coder/v2/coderd/util/ptr"
|
||||
"github.com/coder/coder/v2/codersdk"
|
||||
"github.com/coder/coder/v2/cryptorand"
|
||||
"github.com/coder/coder/v2/enterprise/aibridged"
|
||||
@@ -421,7 +422,7 @@ func TestRecordInterception(t *testing.T) {
|
||||
Model: "claude-4-opus",
|
||||
Metadata: metadataProto,
|
||||
StartedAt: timestamppb.Now(),
|
||||
ClientSessionId: strPtr("session-abc-123"),
|
||||
ClientSessionId: ptr.Ref("session-abc-123"),
|
||||
},
|
||||
setupMocks: func(t *testing.T, db *dbmock.MockStore, req *proto.RecordInterceptionRequest) {
|
||||
interceptionID, err := uuid.Parse(req.GetId())
|
||||
@@ -459,7 +460,7 @@ func TestRecordInterception(t *testing.T) {
|
||||
Model: "claude-4-opus",
|
||||
Metadata: metadataProto,
|
||||
StartedAt: timestamppb.Now(),
|
||||
ClientSessionId: strPtr(""),
|
||||
ClientSessionId: ptr.Ref(""),
|
||||
},
|
||||
setupMocks: func(t *testing.T, db *dbmock.MockStore, req *proto.RecordInterceptionRequest) {
|
||||
interceptionID, err := uuid.Parse(req.GetId())
|
||||
@@ -546,7 +547,7 @@ func TestRecordInterception(t *testing.T) {
|
||||
Provider: "anthropic",
|
||||
Model: "claude-4-opus",
|
||||
StartedAt: timestamppb.Now(),
|
||||
CorrelatingToolCallId: strPtr("call_abc"),
|
||||
CorrelatingToolCallId: ptr.Ref("call_abc"),
|
||||
},
|
||||
setupMocks: func(t *testing.T, db *dbmock.MockStore, req *proto.RecordInterceptionRequest) {
|
||||
selfID, err := uuid.Parse(req.GetId())
|
||||
@@ -580,7 +581,7 @@ func TestRecordInterception(t *testing.T) {
|
||||
Provider: "anthropic",
|
||||
Model: "claude-4-opus",
|
||||
StartedAt: timestamppb.Now(),
|
||||
CorrelatingToolCallId: strPtr("call_abc"),
|
||||
CorrelatingToolCallId: ptr.Ref("call_abc"),
|
||||
},
|
||||
setupMocks: func(t *testing.T, db *dbmock.MockStore, req *proto.RecordInterceptionRequest) {
|
||||
selfID, err := uuid.Parse(req.GetId())
|
||||
@@ -609,7 +610,7 @@ func TestRecordInterception(t *testing.T) {
|
||||
Provider: "anthropic",
|
||||
Model: "claude-4-opus",
|
||||
StartedAt: timestamppb.Now(),
|
||||
CorrelatingToolCallId: strPtr("call_abc"),
|
||||
CorrelatingToolCallId: ptr.Ref("call_abc"),
|
||||
},
|
||||
setupMocks: func(t *testing.T, db *dbmock.MockStore, req *proto.RecordInterceptionRequest) {
|
||||
selfID, err := uuid.Parse(req.GetId())
|
||||
@@ -641,7 +642,7 @@ func TestRecordInterception(t *testing.T) {
|
||||
Provider: "anthropic",
|
||||
Model: "claude-4-opus",
|
||||
StartedAt: timestamppb.Now(),
|
||||
CorrelatingToolCallId: strPtr("call_orphan"),
|
||||
CorrelatingToolCallId: ptr.Ref("call_orphan"),
|
||||
},
|
||||
setupMocks: func(t *testing.T, db *dbmock.MockStore, req *proto.RecordInterceptionRequest) {
|
||||
selfID, err := uuid.Parse(req.GetId())
|
||||
@@ -901,11 +902,11 @@ func TestRecordToolUsage(t *testing.T) {
|
||||
InterceptionId: uuid.NewString(),
|
||||
MsgId: "msg_123",
|
||||
ToolCallId: "call_xyz",
|
||||
ServerUrl: strPtr("https://api.example.com"),
|
||||
ServerUrl: ptr.Ref("https://api.example.com"),
|
||||
Tool: "read_file",
|
||||
Input: `{"path": "/etc/hosts"}`,
|
||||
Injected: false,
|
||||
InvocationError: strPtr("permission denied"),
|
||||
InvocationError: ptr.Ref("permission denied"),
|
||||
Metadata: metadataProto,
|
||||
CreatedAt: timestamppb.Now(),
|
||||
},
|
||||
@@ -1107,10 +1108,6 @@ func mustMarshalAny(t *testing.T, msg protobufproto.Message) *anypb.Any {
|
||||
return v
|
||||
}
|
||||
|
||||
func strPtr(s string) *string {
|
||||
return &s
|
||||
}
|
||||
|
||||
// logLine represents a parsed JSON log entry.
|
||||
type logLine struct {
|
||||
Msg string `json:"msg"`
|
||||
@@ -1192,8 +1189,8 @@ func TestStructuredLogging(t *testing.T) {
|
||||
Model: "claude-4-opus",
|
||||
Metadata: metadataProto,
|
||||
StartedAt: timestamppb.Now(),
|
||||
CorrelatingToolCallId: strPtr(toolCallID),
|
||||
ClientSessionId: strPtr(sessionID),
|
||||
CorrelatingToolCallId: ptr.Ref(toolCallID),
|
||||
ClientSessionId: ptr.Ref(sessionID),
|
||||
})
|
||||
|
||||
return err
|
||||
@@ -1344,11 +1341,11 @@ func TestStructuredLogging(t *testing.T) {
|
||||
_, err := srv.RecordToolUsage(ctx, &proto.RecordToolUsageRequest{
|
||||
InterceptionId: intcID.String(),
|
||||
MsgId: "msg_123",
|
||||
ServerUrl: strPtr("https://api.example.com"),
|
||||
ServerUrl: ptr.Ref("https://api.example.com"),
|
||||
Tool: "read_file",
|
||||
Input: `{"path": "/etc/hosts"}`,
|
||||
Injected: true,
|
||||
InvocationError: strPtr("permission denied"),
|
||||
InvocationError: ptr.Ref("permission denied"),
|
||||
Metadata: metadataProto,
|
||||
CreatedAt: timestamppb.Now(),
|
||||
})
|
||||
@@ -1487,7 +1484,7 @@ func TestInferredThreadsByToolCalls(t *testing.T) {
|
||||
Provider: "anthropic",
|
||||
Model: "claude-4-opus",
|
||||
StartedAt: timestamppb.Now(),
|
||||
CorrelatingToolCallId: strPtr("call_a"),
|
||||
CorrelatingToolCallId: ptr.Ref("call_a"),
|
||||
})
|
||||
require.NoError(t, err)
|
||||
|
||||
@@ -1515,7 +1512,7 @@ func TestInferredThreadsByToolCalls(t *testing.T) {
|
||||
Provider: "anthropic",
|
||||
Model: "claude-4-opus",
|
||||
StartedAt: timestamppb.Now(),
|
||||
CorrelatingToolCallId: strPtr("call_b"),
|
||||
CorrelatingToolCallId: ptr.Ref("call_b"),
|
||||
})
|
||||
require.NoError(t, err)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user