退役模型版本在报价与提交路径上一起回落默认版本
- src/components/image-editor/model3d-generation/Model3dGenerationFormModel.ts:resolveModel3dModelVersion 改为走 normalizeModel3dModelVersion,老快照里契约中已不存在的版本不再直接进 MODEL3D_MODEL_TABLE 查表(原来会抛异常),报价与提交体也不会分裂成两个版本;此前该归一化函数只有测试在用 - src/components/image-editor/model3d-generation/Model3dGenerationFormModel.test.ts:补 resolveModel3dModelVersion 收到退役版本的用例
This commit is contained in:
@@ -1,6 +1,9 @@
|
||||
import { describe, expect, it } from 'vitest';
|
||||
|
||||
import type { Model3dTextureQuality } from '../../../../packages/shared/src/contracts/model3d';
|
||||
import type {
|
||||
Model3dModelVersion,
|
||||
Model3dTextureQuality,
|
||||
} from '../../../../packages/shared/src/contracts/model3d';
|
||||
import type {
|
||||
Model3dAddOnPriceKey,
|
||||
Model3dPricingConfig,
|
||||
@@ -257,6 +260,10 @@ describe('模型版本', () => {
|
||||
expect(resolveModel3dModelVersion(undefined)).toBe(
|
||||
DEFAULT_MODEL3D_MODEL_VERSION,
|
||||
);
|
||||
// 老快照里存着已退役版本时,报价与提交也必须一起回落到默认版本,而不是查表抛异常。
|
||||
expect(
|
||||
resolveModel3dModelVersion('v1.0-20190101' as Model3dModelVersion),
|
||||
).toBe(DEFAULT_MODEL3D_MODEL_VERSION);
|
||||
expect(normalizeModel3dModelVersion(' P2-20260801 ')).toBe('P2-20260801');
|
||||
// 老快照里的退役版本不发给服务端。
|
||||
expect(normalizeModel3dModelVersion('v1.0-20190101')).toBe(
|
||||
|
||||
@@ -202,11 +202,16 @@ export function resolveModel3dGenerationParams({
|
||||
return { ok: true, params };
|
||||
}
|
||||
|
||||
/** 提交与报价共用的模型版本:缺字段(老快照)时回落到默认版本。 */
|
||||
/**
|
||||
* 提交与报价共用的模型版本:缺字段(老快照)或存的是已退役版本时回落到默认版本。
|
||||
*
|
||||
* 收敛必须发生在读表之前:`resolveModel3dModelFamily` 直接按版本查表,契约里没有的版本会抛异常,
|
||||
* 面板、报价与提交体因此都得走同一个入口。
|
||||
*/
|
||||
export function resolveModel3dModelVersion(
|
||||
model: Model3dModelVersion | null | undefined,
|
||||
): Model3dModelVersion {
|
||||
return model ?? DEFAULT_MODEL3D_MODEL_VERSION;
|
||||
return normalizeModel3dModelVersion(model);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user