feat(api): 搭建 API 与 Worker 骨架及契约基线
NestJS 11 + Fastify 统一错误体与 trace_id,/health 真实探活 DB/Redis,OpenAPI 3.1 契约含 20 个错误码;shared 包提供错误码、权限点、ULID、分页与通用 schema;worker 完成队列进程骨架。
This commit is contained in:
1 parent
09dbb27b66
commit
23067edb8f
70 files changed
+2445
No files matched your search
@@ -0,0 +1,27 @@
|
||||
import { describe, expect, it } from 'vitest';
|
||||
|
||||
import { ulid } from '../ulid.js';
|
||||
import { idempotencyKeySchema, isoDateTimeSchema, traceIdSchema, ulidSchema } from './common.js';
|
||||
|
||||
describe('common schemas', () => {
|
||||
it('ulidSchema 接受应用侧生成的 ULID', () => {
|
||||
expect(ulidSchema.parse(ulid())).toHaveLength(26);
|
||||
expect(() => ulidSchema.parse('not-a-ulid')).toThrow();
|
||||
});
|
||||
|
||||
it('isoDateTimeSchema 要求带时区', () => {
|
||||
expect(isoDateTimeSchema.parse('2026-11-02T08:00:00.000Z')).toBeTruthy();
|
||||
expect(() => isoDateTimeSchema.parse('2026-11-02 08:00:00')).toThrow();
|
||||
});
|
||||
|
||||
it('traceIdSchema 限制长度', () => {
|
||||
expect(traceIdSchema.parse('trace-12345678')).toBe('trace-12345678');
|
||||
expect(() => traceIdSchema.parse('short')).toThrow();
|
||||
});
|
||||
|
||||
it('idempotencyKeySchema 只接受可见 ASCII', () => {
|
||||
expect(idempotencyKeySchema.parse('idem-key-0001')).toBe('idem-key-0001');
|
||||
expect(() => idempotencyKeySchema.parse('幂等键-0001')).toThrow();
|
||||
expect(() => idempotencyKeySchema.parse('short')).toThrow();
|
||||
});
|
||||
});
|
||||
Reference in new issue
Block a user