feat(batch5): implement jetstream error constructors group11

This commit is contained in:
Joseph Doherty
2026-02-28 09:05:27 -05:00
parent a15c8131cc
commit dc90025a37
4 changed files with 73 additions and 0 deletions

View File

@@ -1200,6 +1200,30 @@ public static partial class JsApiErrors
return Clone(StreamTooManyRequests); return Clone(StreamTooManyRequests);
} }
public static JsApiError NewJSStreamWrongLastSequenceConstantError(params ErrorOption[] opts)
{
if (ParseOpts(opts) is JsApiError overridden)
return Clone(overridden);
return Clone(StreamWrongLastSequenceConstant);
}
public static JsApiError NewJSTempStorageFailedError(params ErrorOption[] opts)
{
if (ParseOpts(opts) is JsApiError overridden)
return Clone(overridden);
return Clone(TempStorageFailed);
}
public static JsApiError NewJSTemplateNameNotMatchSubjectError(params ErrorOption[] opts)
{
if (ParseOpts(opts) is JsApiError overridden)
return Clone(overridden);
return Clone(TemplateNameNotMatchSubject);
}
public static JsApiError NewJSAtomicPublishTooLargeBatchError(object? size, params ErrorOption[] opts) public static JsApiError NewJSAtomicPublishTooLargeBatchError(object? size, params ErrorOption[] opts)
{ {
if (ParseOpts(opts) is JsApiError overridden) if (ParseOpts(opts) is JsApiError overridden)
@@ -1544,6 +1568,30 @@ public static partial class JsApiErrors
return NewWithTags(StreamTransformInvalidSource, "{err}", err); return NewWithTags(StreamTransformInvalidSource, "{err}", err);
} }
public static JsApiError NewJSStreamUpdateError(Exception err, params ErrorOption[] opts)
{
if (ParseOpts(opts) is JsApiError overridden)
return Clone(overridden);
return NewWithTags(StreamUpdate, "{err}", err);
}
public static JsApiError NewJSStreamWrongLastMsgIDError(object? id, params ErrorOption[] opts)
{
if (ParseOpts(opts) is JsApiError overridden)
return Clone(overridden);
return NewWithTags(StreamWrongLastMsgID, "{id}", id);
}
public static JsApiError NewJSStreamWrongLastSequenceError(ulong seq, params ErrorOption[] opts)
{
if (ParseOpts(opts) is JsApiError overridden)
return Clone(overridden);
return NewWithTags(StreamWrongLastSequence, "{seq}", seq);
}
public static JsApiError NewJSStreamExternalApiOverlapError(object? prefix, object? subject, params ErrorOption[] opts) public static JsApiError NewJSStreamExternalApiOverlapError(object? prefix, object? subject, params ErrorOption[] opts)
{ {
if (ParseOpts(opts) is JsApiError overridden) if (ParseOpts(opts) is JsApiError overridden)

View File

@@ -333,4 +333,23 @@ public sealed class JetStreamErrorsGeneratedConstructorsTests
fromOverride.Description.ShouldBe(expected.Description); fromOverride.Description.ShouldBe(expected.Description);
ReferenceEquals(fromOverride, expected).ShouldBeFalse(); ReferenceEquals(fromOverride, expected).ShouldBeFalse();
} }
[Fact]
public void ConstructorSurface_Group11()
{
JsApiErrors.NewJSStreamWrongLastSequenceConstantError().ErrCode.ShouldBe(JsApiErrors.StreamWrongLastSequenceConstant.ErrCode);
JsApiErrors.NewJSTempStorageFailedError().ErrCode.ShouldBe(JsApiErrors.TempStorageFailed.ErrCode);
JsApiErrors.NewJSTemplateNameNotMatchSubjectError().ErrCode.ShouldBe(JsApiErrors.TemplateNameNotMatchSubject.ErrCode);
JsApiErrors.NewJSStreamUpdateError(new InvalidOperationException("update failed")).Description.ShouldBe("update failed");
JsApiErrors.NewJSStreamWrongLastMsgIDError("msg-42").Description.ShouldBe("wrong last msg ID: msg-42");
JsApiErrors.NewJSStreamWrongLastSequenceError(42UL).Description.ShouldBe("wrong last sequence: 42");
var expected = new JsApiError { Code = 489, ErrCode = 9100, Description = "override-11" };
var fromOverride = JsApiErrors.NewJSTempStorageFailedError(JsApiErrors.Unless(expected));
fromOverride.Code.ShouldBe(expected.Code);
fromOverride.ErrCode.ShouldBe(expected.ErrCode);
fromOverride.Description.ShouldBe(expected.Description);
ReferenceEquals(fromOverride, expected).ShouldBeFalse();
}
} }

Binary file not shown.

View File

@@ -154,6 +154,9 @@ simple_methods=(
"NewJSStreamSubjectOverlapError|StreamSubjectOverlap" "NewJSStreamSubjectOverlapError|StreamSubjectOverlap"
"NewJSStreamTemplateNotFoundError|StreamTemplateNotFound" "NewJSStreamTemplateNotFoundError|StreamTemplateNotFound"
"NewJSStreamTooManyRequestsError|StreamTooManyRequests" "NewJSStreamTooManyRequestsError|StreamTooManyRequests"
"NewJSStreamWrongLastSequenceConstantError|StreamWrongLastSequenceConstant"
"NewJSTempStorageFailedError|TempStorageFailed"
"NewJSTemplateNameNotMatchSubjectError|TemplateNameNotMatchSubject"
) )
templated_methods=( templated_methods=(
@@ -200,6 +203,9 @@ templated_methods=(
"NewJSStreamTemplateDeleteError|Exception|err|StreamTemplateDelete|{err}" "NewJSStreamTemplateDeleteError|Exception|err|StreamTemplateDelete|{err}"
"NewJSStreamTransformInvalidDestinationError|Exception|err|StreamTransformInvalidDestination|{err}" "NewJSStreamTransformInvalidDestinationError|Exception|err|StreamTransformInvalidDestination|{err}"
"NewJSStreamTransformInvalidSourceError|Exception|err|StreamTransformInvalidSource|{err}" "NewJSStreamTransformInvalidSourceError|Exception|err|StreamTransformInvalidSource|{err}"
"NewJSStreamUpdateError|Exception|err|StreamUpdate|{err}"
"NewJSStreamWrongLastMsgIDError|object?|id|StreamWrongLastMsgID|{id}"
"NewJSStreamWrongLastSequenceError|ulong|seq|StreamWrongLastSequence|{seq}"
) )
templated_methods_two_args=( templated_methods_two_args=(