324f99efdf
阻止图片编辑器将 Data URL 和超限 JSON 写入生成任务,复用 objectKey 等轻量引用 新增外部生成任务摘要投影与分批 payload 压缩回填流程,避免正式列表读取大字段 收紧 SpacetimeDB 发布为永不删数据并移除 Jenkins 普通清库入口,补齐维护窗口门禁 更新生成绑定、运维文档和回归测试,并完成生产数据副本迁移与压缩验证
36 lines
1.2 KiB
TypeScript
36 lines
1.2 KiB
TypeScript
import { describe, expect, it } from 'vitest';
|
|
import {
|
|
buildSpacetimeCallArgs,
|
|
encodeSpacetimeCliOption,
|
|
} from './spacetime-migration-common.mjs';
|
|
|
|
describe('SpacetimeDB CLI SATS option encoding', () => {
|
|
it('keeps absent options null and wraps present values as Some', () => {
|
|
expect(encodeSpacetimeCliOption(null)).toBeNull();
|
|
expect(encodeSpacetimeCliOption(undefined)).toBeNull();
|
|
expect(encodeSpacetimeCliOption('job-2')).toEqual([0, 'job-2']);
|
|
expect(encodeSpacetimeCliOption(123)).toEqual([0, 123]);
|
|
});
|
|
|
|
it('serializes non-empty maintenance cursors in the CLI procedure input', () => {
|
|
const args = buildSpacetimeCallArgs(
|
|
{
|
|
database: 'genarrative-prod',
|
|
passthrough: [],
|
|
serverUrl: 'http://127.0.0.1:3311',
|
|
},
|
|
'compact_external_generation_job_payloads_and_return',
|
|
{
|
|
dry_run: true,
|
|
limit: 1,
|
|
cursor_job_id: encodeSpacetimeCliOption('job-2'),
|
|
completed_before_micros: encodeSpacetimeCliOption(123),
|
|
},
|
|
);
|
|
|
|
const input = JSON.parse(args.at(-2) ?? 'null');
|
|
expect(input.cursor_job_id).toEqual([0, 'job-2']);
|
|
expect(input.completed_before_micros).toEqual([0, 123]);
|
|
});
|
|
});
|