fix: keep submission previews user-readable
This commit is contained in:
@@ -368,6 +368,9 @@ test("Xft submission discovers live templates and derives protected create field
|
||||
assert.equal(schema.fields[0]?.fieldNumber, "C1");
|
||||
assert.equal(schema.fields.length, 1);
|
||||
const standardFields = (schema.inputContract.values as Record<string, unknown>).standardFields as Array<Record<string, unknown>>;
|
||||
const minimalExample = (schema.inputContract.values as Record<string, unknown>).minimalExample as Record<string, unknown>;
|
||||
assert.deepEqual(Object.keys(minimalExample), ["reimAmount", "reimAmountCurrencyCode", "expenseList"]);
|
||||
assert.match(JSON.stringify(minimalExample), /报销总金额.*费用类型选项.*本笔费用金额/);
|
||||
const expenseList = standardFields.find((field) => field.key === "expenseList");
|
||||
const expenseItemFields = expenseList?.itemFields as Array<Record<string, unknown>>;
|
||||
assert.deepEqual(expenseItemFields.filter((field) => field.required).map((field) => field.key), [
|
||||
@@ -509,6 +512,11 @@ test("all formal Xft city and enum choices expose readable labels while unresolv
|
||||
const templates = await client.listSubmissionTemplates({ userId: "ding-u1" }, 20);
|
||||
const schemas = await Promise.all(templates.map((template) => client.getSubmissionSchema({ userId: "ding-u1" }, template)));
|
||||
const combined = schemas.map((schema) => schema.inputContract);
|
||||
for (const schema of schemas) {
|
||||
const values = schema.inputContract.values as Record<string, unknown>;
|
||||
assert.ok(values.minimalExample && typeof values.minimalExample === "object");
|
||||
assert.match(JSON.stringify(values.minimalExample), /</);
|
||||
}
|
||||
for (const key of ["payCityCode", "entertainmentCityCode", "departCityCode", "destinationCityCode", "departureCode", "destinationCode"]) {
|
||||
const matches = findRecordsByKey(combined, key);
|
||||
assert.ok(matches.length > 0, `${key} should exist`);
|
||||
|
||||
Reference in New Issue
Block a user