fix: API 입력 이벤트의 원자적 재실행을 보장한다
This commit is contained in:
@@ -1,6 +1,7 @@
|
||||
import { describe, expect, it } from 'vitest';
|
||||
|
||||
import { scopeHttpIdempotencyKey } from '../src/requestId.js';
|
||||
import { scopeApiInputEventRequestId } from '../src/trpc.js';
|
||||
|
||||
describe('HTTP idempotency request IDs', () => {
|
||||
it('is stable for one principal and isolated across users and profiles', () => {
|
||||
@@ -24,4 +25,12 @@ describe('HTTP idempotency request IDs', () => {
|
||||
expect(scoped).toMatch(/^http:[0-9a-f]{64}$/u);
|
||||
expect(scoped).toHaveLength(69);
|
||||
});
|
||||
|
||||
it('keeps the first call compatible and isolates later calls in a same-path batch', () => {
|
||||
expect(scopeApiInputEventRequestId('http:base', 'messages.send', 0)).toBe('http:base:messages.send');
|
||||
expect(scopeApiInputEventRequestId('http:base', 'messages.send', 1)).toBe('http:base:messages.send:batch:1');
|
||||
expect(scopeApiInputEventRequestId('http:base', 'messages.send', 2)).not.toBe(
|
||||
scopeApiInputEventRequestId('http:base', 'messages.send', 1)
|
||||
);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user