Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions .changeset/vi-mock-inherit-slice5.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
---

Test-infrastructure only: sweep `@object-ui/plugin-form`'s frozen `vi.mock`
factories to the inheriting form across `plugin-view`, `app-shell` and
`plugin-designer` — 31 derived on the merge base plus one more that landed on
`main` mid-slice — and add the specifier to the `check-vi-mock-inherit` gate's
covered set. No published behaviour changes.
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,8 @@ import { MemoryRouter, Routes, Route } from 'react-router-dom';
const { modalSchemas } = vi.hoisted(() => ({ modalSchemas: [] as any[] }));

/** The probe: the global modal's schema is where the filtered field list lands. */
vi.mock('@object-ui/plugin-form', () => ({
vi.mock('@object-ui/plugin-form', async (importOriginal) => ({
...(await importOriginal<Record<string, unknown>>()),
ModalForm: ({ schema }: any) => {
modalSchemas.push(schema);
return <div data-testid="modal-form" />;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,8 @@ vi.mock('@object-ui/auth', async (importOriginal) => ({
* inside its `ExpressionProvider`, so what it reads is what a real descendant
* of that provider reads — no interception, no spy on the provider.
*/
vi.mock('@object-ui/plugin-form', () => ({
vi.mock('@object-ui/plugin-form', async (importOriginal) => ({
...(await importOriginal<Record<string, unknown>>()),
ObjectForm: ({ schema }: any) => {
formSchemas.push(schema);
publishedScopes.push(usePredicateScope());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,8 @@ vi.mock('@object-ui/auth', async (importOriginal) => ({
}),
}));

vi.mock('@object-ui/plugin-form', () => ({
vi.mock('@object-ui/plugin-form', async (importOriginal) => ({
...(await importOriginal<Record<string, unknown>>()),
ObjectForm: ({ schema }: any) => {
formSchemas.push(schema);
return h('div', { 'data-testid': 'object-form' });
Expand Down
3 changes: 2 additions & 1 deletion packages/app-shell/src/views/RecordFormPage.i18n.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,8 @@ vi.mock('@object-ui/auth', async (importOriginal) => ({
// Stand-in for the real form: records the schema the page builds (so the
// `submitText` / `cancelText` it translates are observable) and exposes a
// button that fires `onSuccess`, which is what raises the toast under test.
vi.mock('@object-ui/plugin-form', () => ({
vi.mock('@object-ui/plugin-form', async (importOriginal) => ({
...(await importOriginal<Record<string, unknown>>()),
ObjectForm: ({ schema }: any) => {
formSchemas.push(schema);
return h(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,8 @@ vi.mock('@object-ui/auth', async (importOriginal) => ({
}),
}));

vi.mock('@object-ui/plugin-form', () => ({
vi.mock('@object-ui/plugin-form', async (importOriginal) => ({
...(await importOriginal<Record<string, unknown>>()),
ObjectForm: ({ schema }: any) => {
formSchemas.push(schema);
return h('div', { 'data-testid': 'object-form' });
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,8 @@ import userEvent from '@testing-library/user-event';
let releaseForm: () => void = () => {};
const formLoaded = new Promise<void>((resolve) => { releaseForm = resolve; });

vi.mock('@object-ui/plugin-form', () => ({
vi.mock('@object-ui/plugin-form', async (importOriginal) => ({
...(await importOriginal<Record<string, unknown>>()),
ObjectForm: lazy(async () => {
await formLoaded;
return { default: ({ schema }: any) => <button onClick={() => schema?.onSuccess?.({ id: 'rec_1' })}>Save &amp; Continue</button> };
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@ const { objectFormSpy, adapterRef, objectsRef } = vi.hoisted(() => ({
objectsRef: { current: [] as unknown[] },
}));

vi.mock('@object-ui/plugin-form', () => ({
vi.mock('@object-ui/plugin-form', async (importOriginal) => ({
...(await importOriginal<Record<string, unknown>>()),
ObjectForm: ({ schema }: { schema: unknown }) => {
objectFormSpy(schema);
return <div data-testid="object-form" />;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,10 @@ import type { DashboardComponentSchema } from '@object-ui/types';
import { DashboardEditor } from '../DashboardEditor';

vi.mock('@object-ui/plugin-grid', () => import('./__mocks__/plugin-grid'));
vi.mock('@object-ui/plugin-form', () => import('./__mocks__/plugin-form'));
vi.mock('@object-ui/plugin-form', async (importOriginal) => ({
...(await importOriginal<Record<string, unknown>>()),
...(await import('./__mocks__/plugin-form')),
}));

afterEach(cleanup);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,10 @@ import type { DesignerFieldDefinition } from '@object-ui/types';
import { FieldDesigner } from '../FieldDesigner';

vi.mock('@object-ui/plugin-grid', () => import('./__mocks__/plugin-grid'));
vi.mock('@object-ui/plugin-form', () => import('./__mocks__/plugin-form'));
vi.mock('@object-ui/plugin-form', async (importOriginal) => ({
...(await importOriginal<Record<string, unknown>>()),
...(await import('./__mocks__/plugin-form')),
}));

/**
* A formula field as it exists after this card: a real, authorable field TYPE
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,10 @@ import type { ObjectDefinition } from '@object-ui/types';

// Mock standard components — tested separately in their own packages
vi.mock('@object-ui/plugin-grid', () => import('./__mocks__/plugin-grid'));
vi.mock('@object-ui/plugin-form', () => import('./__mocks__/plugin-form'));
vi.mock('@object-ui/plugin-form', async (importOriginal) => ({
...(await importOriginal<Record<string, unknown>>()),
...(await import('./__mocks__/plugin-form')),
}));

const MOCK_OBJECTS: ObjectDefinition[] = [
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,10 @@ import { DashboardEditor } from '../DashboardEditor';
import { ObjectManager } from '../ObjectManager';

vi.mock('@object-ui/plugin-grid', () => import('./__mocks__/plugin-grid'));
vi.mock('@object-ui/plugin-form', () => import('./__mocks__/plugin-form'));
vi.mock('@object-ui/plugin-form', async (importOriginal) => ({
...(await importOriginal<Record<string, unknown>>()),
...(await import('./__mocks__/plugin-form')),
}));

const DASHBOARD = {
type: 'dashboard',
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,10 @@ vi.mock('@object-ui/react', async (importOriginal) => {
};
});
vi.mock('@object-ui/plugin-grid', () => ({ ObjectGrid: () => <div data-testid="object-grid" /> }));
vi.mock('@object-ui/plugin-form', () => ({ ObjectForm: () => <div data-testid="object-form" /> }));
vi.mock('@object-ui/plugin-form', async (importOriginal) => ({
...(await importOriginal<Record<string, unknown>>()),
ObjectForm: () => <div data-testid="object-form" />,
}));

async function renderCalendarView(view: Record<string, unknown>) {
rendered.length = 0;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -74,7 +74,10 @@ vi.mock('@object-ui/plugin-grid', () => ({
return <div data-testid="object-grid" />;
},
}));
vi.mock('@object-ui/plugin-form', () => ({ ObjectForm: () => <div data-testid="object-form" /> }));
vi.mock('@object-ui/plugin-form', async (importOriginal) => ({
...(await importOriginal<Record<string, unknown>>()),
ObjectForm: () => <div data-testid="object-form" />,
}));

const mockDataSource = () => ({
find: vi.fn().mockResolvedValue({ data: [], total: 0 }),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,10 @@ vi.mock('@object-ui/react', async (importOriginal) => {
};
});
vi.mock('@object-ui/plugin-grid', () => ({ ObjectGrid: () => <div data-testid="object-grid" /> }));
vi.mock('@object-ui/plugin-form', () => ({ ObjectForm: () => <div data-testid="object-form" /> }));
vi.mock('@object-ui/plugin-form', async (importOriginal) => ({
...(await importOriginal<Record<string, unknown>>()),
ObjectForm: () => <div data-testid="object-form" />,
}));

const ROWS = [{ id: 'r1', name: 'Ada' }, { id: 'r2', name: 'Grace' }];

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,10 @@ vi.mock('@object-ui/react', async (importOriginal) => {
};
});
vi.mock('@object-ui/plugin-grid', () => ({ ObjectGrid: () => <div data-testid="object-grid" /> }));
vi.mock('@object-ui/plugin-form', () => ({ ObjectForm: () => <div data-testid="object-form" /> }));
vi.mock('@object-ui/plugin-form', async (importOriginal) => ({
...(await importOriginal<Record<string, unknown>>()),
ObjectForm: () => <div data-testid="object-form" />,
}));

const ROWS = [{ id: 'r1', name: 'Ada' }, { id: 'r2', name: 'Grace' }];

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,8 @@ vi.mock('@object-ui/plugin-grid', () => ({
),
}));

vi.mock('@object-ui/plugin-form', () => ({
vi.mock('@object-ui/plugin-form', async (importOriginal) => ({
...(await importOriginal<Record<string, unknown>>()),
ObjectForm: () => <div data-testid="object-form" />,
}));

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,10 @@ vi.mock('@object-ui/react', async (importOriginal) => {
};
});
vi.mock('@object-ui/plugin-grid', () => ({ ObjectGrid: () => <div data-testid="object-grid" /> }));
vi.mock('@object-ui/plugin-form', () => ({ ObjectForm: () => <div data-testid="object-form" /> }));
vi.mock('@object-ui/plugin-form', async (importOriginal) => ({
...(await importOriginal<Record<string, unknown>>()),
ObjectForm: () => <div data-testid="object-form" />,
}));

import { ObjectView } from '../ObjectView';

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,10 @@ vi.mock('@object-ui/react', async (importOriginal) => {
};
});
vi.mock('@object-ui/plugin-grid', () => ({ ObjectGrid: () => <div data-testid="object-grid" /> }));
vi.mock('@object-ui/plugin-form', () => ({ ObjectForm: () => <div data-testid="object-form" /> }));
vi.mock('@object-ui/plugin-form', async (importOriginal) => ({
...(await importOriginal<Record<string, unknown>>()),
ObjectForm: () => <div data-testid="object-form" />,
}));

/**
* One field of every expandable type, plus non-expandable neighbours. The
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,10 @@ vi.mock('@object-ui/react', async (importOriginal) => {
};
});
vi.mock('@object-ui/plugin-grid', () => ({ ObjectGrid: () => <div data-testid="object-grid" /> }));
vi.mock('@object-ui/plugin-form', () => ({ ObjectForm: () => <div data-testid="object-form" /> }));
vi.mock('@object-ui/plugin-form', async (importOriginal) => ({
...(await importOriginal<Record<string, unknown>>()),
ObjectForm: () => <div data-testid="object-form" />,
}));

function renderCalendar(schema: Partial<ObjectViewSchema>) {
const find = vi.fn().mockResolvedValue({ data: [], total: 0 });
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,8 @@ vi.mock('@object-ui/plugin-grid', () => ({
),
}));

vi.mock('@object-ui/plugin-form', () => ({
vi.mock('@object-ui/plugin-form', async (importOriginal) => ({
...(await importOriginal<Record<string, unknown>>()),
ObjectForm: ({ schema }: any) => (
<div data-testid="object-form" data-mode={schema?.mode}>
Form ({schema?.mode})
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,8 @@ vi.mock('@object-ui/plugin-grid', () => ({
),
}));

vi.mock('@object-ui/plugin-form', () => ({
vi.mock('@object-ui/plugin-form', async (importOriginal) => ({
...(await importOriginal<Record<string, unknown>>()),
ObjectForm: ({ schema }: any) => (
<div data-testid="object-form" data-mode={schema?.mode}>
Form ({schema?.mode})
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,10 @@ vi.mock('@object-ui/react', async (importOriginal) => {
};
});
vi.mock('@object-ui/plugin-grid', () => ({ ObjectGrid: () => <div data-testid="object-grid" /> }));
vi.mock('@object-ui/plugin-form', () => ({ ObjectForm: () => <div data-testid="object-form" /> }));
vi.mock('@object-ui/plugin-form', async (importOriginal) => ({
...(await importOriginal<Record<string, unknown>>()),
ObjectForm: () => <div data-testid="object-form" />,
}));

async function renderGanttView(view: Record<string, unknown>) {
rendered.length = 0;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,10 @@ vi.mock('@object-ui/react', async (importOriginal) => {
};
});
vi.mock('@object-ui/plugin-grid', () => ({ ObjectGrid: () => <div data-testid="object-grid" /> }));
vi.mock('@object-ui/plugin-form', () => ({ ObjectForm: () => <div data-testid="object-form" /> }));
vi.mock('@object-ui/plugin-form', async (importOriginal) => ({
...(await importOriginal<Record<string, unknown>>()),
ObjectForm: () => <div data-testid="object-form" />,
}));
// The switcher is captured rather than rendered: the claim is about the icon
// NAME this component computes, and reading it off the props is the only way to
// see it without going through lucide's rendering.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,10 @@ vi.mock('@object-ui/react', async (importOriginal) => {
};
});
vi.mock('@object-ui/plugin-grid', () => ({ ObjectGrid: () => <div data-testid="object-grid" /> }));
vi.mock('@object-ui/plugin-form', () => ({ ObjectForm: () => <div data-testid="object-form" /> }));
vi.mock('@object-ui/plugin-form', async (importOriginal) => ({
...(await importOriginal<Record<string, unknown>>()),
ObjectForm: () => <div data-testid="object-form" />,
}));

const dataSource = (): any => ({
find: vi.fn().mockResolvedValue({ data: [], total: 0 }),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,10 @@ vi.mock('@object-ui/react', async (importOriginal) => {
};
});
vi.mock('@object-ui/plugin-grid', () => ({ ObjectGrid: () => <div data-testid="object-grid" /> }));
vi.mock('@object-ui/plugin-form', () => ({ ObjectForm: () => <div data-testid="object-form" /> }));
vi.mock('@object-ui/plugin-form', async (importOriginal) => ({
...(await importOriginal<Record<string, unknown>>()),
ObjectForm: () => <div data-testid="object-form" />,
}));

async function renderMapView(mapOptions: Record<string, unknown>) {
rendered.length = 0;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,10 @@ vi.mock('@object-ui/react', async (importOriginal) => {
};
});
vi.mock('@object-ui/plugin-grid', () => ({ ObjectGrid: () => <div data-testid="object-grid" /> }));
vi.mock('@object-ui/plugin-form', () => ({ ObjectForm: () => <div data-testid="object-form" /> }));
vi.mock('@object-ui/plugin-form', async (importOriginal) => ({
...(await importOriginal<Record<string, unknown>>()),
ObjectForm: () => <div data-testid="object-form" />,
}));

/**
* A DataSource whose `onMutation` hands the registered callback back to the
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,10 @@ vi.mock('@object-ui/react', async (importOriginal) => {
};
});
vi.mock('@object-ui/plugin-grid', () => ({ ObjectGrid: () => <div data-testid="object-grid" /> }));
vi.mock('@object-ui/plugin-form', () => ({ ObjectForm: () => <div data-testid="object-form" /> }));
vi.mock('@object-ui/plugin-form', async (importOriginal) => ({
...(await importOriginal<Record<string, unknown>>()),
ObjectForm: () => <div data-testid="object-form" />,
}));

const mockDataSource = () => ({
find: vi.fn().mockResolvedValue({ data: [], total: 0 }),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,10 @@ vi.mock('@object-ui/react', async (importOriginal) => {
};
});
vi.mock('@object-ui/plugin-grid', () => ({ ObjectGrid: () => <div data-testid="object-grid" /> }));
vi.mock('@object-ui/plugin-form', () => ({ ObjectForm: () => <div data-testid="object-form" /> }));
vi.mock('@object-ui/plugin-form', async (importOriginal) => ({
...(await importOriginal<Record<string, unknown>>()),
ObjectForm: () => <div data-testid="object-form" />,
}));

const mockDataSource = () => ({
find: vi.fn().mockResolvedValue({ data: [], total: 0 }),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -96,7 +96,10 @@ vi.mock('@object-ui/plugin-grid', () => ({
return <div data-testid="object-grid" />;
},
}));
vi.mock('@object-ui/plugin-form', () => ({ ObjectForm: () => <div data-testid="object-form" /> }));
vi.mock('@object-ui/plugin-form', async (importOriginal) => ({
...(await importOriginal<Record<string, unknown>>()),
ObjectForm: () => <div data-testid="object-form" />,
}));

const mockDataSource = () => ({
find: vi.fn().mockResolvedValue({ data: [], total: 0 }),
Expand Down
3 changes: 2 additions & 1 deletion packages/plugin-view/src/__tests__/ObjectView.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,8 @@ vi.mock('@object-ui/plugin-grid', () => ({
}));

// Mock @object-ui/plugin-form
vi.mock('@object-ui/plugin-form', () => ({
vi.mock('@object-ui/plugin-form', async (importOriginal) => ({
...(await importOriginal<Record<string, unknown>>()),
ObjectForm: ({ schema }: any) => (
<div data-testid="object-form" data-mode={schema?.mode}>
Form ({schema?.mode})
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,10 @@ vi.mock('@object-ui/react', async (importOriginal) => {
};
});
vi.mock('@object-ui/plugin-grid', () => ({ ObjectGrid: () => <div data-testid="object-grid" /> }));
vi.mock('@object-ui/plugin-form', () => ({ ObjectForm: () => <div data-testid="object-form" /> }));
vi.mock('@object-ui/plugin-form', async (importOriginal) => ({
...(await importOriginal<Record<string, unknown>>()),
ObjectForm: () => <div data-testid="object-form" />,
}));

async function renderTimelineView(view: Record<string, unknown>) {
rendered.length = 0;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,10 @@ vi.mock('@object-ui/react', async (importOriginal) => {
};
});
vi.mock('@object-ui/plugin-grid', () => ({ ObjectGrid: () => <div data-testid="object-grid" /> }));
vi.mock('@object-ui/plugin-form', () => ({ ObjectForm: () => <div data-testid="object-form" /> }));
vi.mock('@object-ui/plugin-form', async (importOriginal) => ({
...(await importOriginal<Record<string, unknown>>()),
ObjectForm: () => <div data-testid="object-form" />,
}));

const TASK_SCHEMA = {
name: 'task',
Expand Down
Loading
Loading