From 59661ff929e12f0903985f65ad88a9b1b95dfd4f Mon Sep 17 00:00:00 2001 From: Justin Won Date: Fri, 25 Sep 2026 14:23:58 -0700 Subject: [PATCH] feat(core/errors): add NewCancelled constructor Callers need a way to classify an error as ErrorCancelled directly, matching the existing NewInfra/NewUser/NewInfraRetryable constructors. Co-Authored-By: Claude Sonnet 5 --- core/errors/errors.go | 5 +++++ core/errors/errors_test.go | 5 +++++ 2 files changed, 10 insertions(+) diff --git a/core/errors/errors.go b/core/errors/errors.go index a5d0216d..b7b358ef 100644 --- a/core/errors/errors.go +++ b/core/errors/errors.go @@ -67,6 +67,11 @@ func NewInfraRetryable(err error) error { return newError(err, ErrorInfraRetryable) } +// NewCancelled wraps err as a TangoError classified ErrorCancelled. +func NewCancelled(err error) error { + return newError(err, ErrorCancelled) +} + func newError(err error, code ErrorCode) error { if err == nil { return nil diff --git a/core/errors/errors_test.go b/core/errors/errors_test.go index 5ceb0a43..47be5a22 100644 --- a/core/errors/errors_test.go +++ b/core/errors/errors_test.go @@ -34,6 +34,11 @@ func TestNewError_Constructors(t *testing.T) { newErr: NewInfraRetryable, wantCode: ErrorInfraRetryable, }, + { + name: "cancelled", + newErr: NewCancelled, + wantCode: ErrorCancelled, + }, } for _, tt := range tests {