tmagic-editor/runtime/tmagic-form/tests/merge-form-options.test.ts

36 lines
1.2 KiB
TypeScript

/**
* formPlugin.install 会 setConfig 整对象替换。
* mergeFormInstallOptions 把宿主 $MAGIC_FORM 与 formOptions 浅合并。
*/
import { describe, expect, it, vi } from 'vitest';
import { mergeFormInstallOptions } from '../src/mergeFormOptions';
describe('mergeFormInstallOptions', () => {
const hostRequest = vi.fn();
const hostFields = { select: { component: { name: 'HostSelect' } } };
const host = { request: hostRequest, flat: true, fields: hostFields };
it('无 formOptions 时原样带回宿主配置,避免二次安装清空', () => {
expect(mergeFormInstallOptions(host)).toEqual(host);
expect(mergeFormInstallOptions(host, {})).toEqual(host);
});
it('formOptions 只覆盖传入的键,保留宿主其余配置', () => {
const request = vi.fn();
expect(mergeFormInstallOptions(host, { request })).toEqual({
request,
flat: true,
fields: hostFields,
});
});
it('没有宿主配置时只使用 formOptions', () => {
const request = vi.fn();
expect(mergeFormInstallOptions(undefined, { request })).toEqual({ request });
expect(mergeFormInstallOptions(undefined)).toEqual({});
});
});