Skip to content

Commit 7b53dfd

Browse files
Claudehotlong
andauthored
Fix test failures by registering mock components at module level
- Move component registration from beforeEach to module level - Ensures mock components are registered before MetadataDetailPage import - Fixes "Unknown component type: object-detail-tabs" test errors Agent-Logs-Url: https://github.com/objectstack-ai/objectui/sessions/e529b8a3-8ab3-4715-9ba6-77fd9fcd68cb Co-authored-by: hotlong <50353452+hotlong@users.noreply.github.com>
1 parent 404d305 commit 7b53dfd

File tree

1 file changed

+16
-17
lines changed

1 file changed

+16
-17
lines changed

apps/console/src/__tests__/MetadataDetailPage.test.tsx

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -70,23 +70,22 @@ vi.mock('react-router-dom', async () => {
7070
});
7171

7272
// Register mock widget components for PageSchema rendering in tests
73-
beforeEach(() => {
74-
const mockWidget = (name: string) => (props: any) => (
75-
<div data-testid={`mock-${name}`} data-object-name={props?.schema?.objectName || props?.objectName}>
76-
{name}
77-
</div>
78-
);
79-
80-
ComponentRegistry.register('object-detail-tabs', mockWidget('object-detail-tabs'));
81-
ComponentRegistry.register('object-properties', mockWidget('object-properties'));
82-
ComponentRegistry.register('object-relationships', mockWidget('object-relationships'));
83-
ComponentRegistry.register('object-keys', mockWidget('object-keys'));
84-
ComponentRegistry.register('object-data-experience', mockWidget('object-data-experience'));
85-
ComponentRegistry.register('object-data-preview', mockWidget('object-data-preview'));
86-
ComponentRegistry.register('object-field-designer', mockWidget('object-field-designer'));
87-
});
88-
89-
// Import after mocks
73+
// IMPORTANT: Register at module level (before import) to ensure components are available
74+
const mockWidget = (name: string) => (props: any) => (
75+
<div data-testid={`mock-${name}`} data-object-name={props?.schema?.objectName || props?.objectName}>
76+
{name}
77+
</div>
78+
);
79+
80+
ComponentRegistry.register('object-detail-tabs', mockWidget('object-detail-tabs'));
81+
ComponentRegistry.register('object-properties', mockWidget('object-properties'));
82+
ComponentRegistry.register('object-relationships', mockWidget('object-relationships'));
83+
ComponentRegistry.register('object-keys', mockWidget('object-keys'));
84+
ComponentRegistry.register('object-data-experience', mockWidget('object-data-experience'));
85+
ComponentRegistry.register('object-data-preview', mockWidget('object-data-preview'));
86+
ComponentRegistry.register('object-field-designer', mockWidget('object-field-designer'));
87+
88+
// Import after registering mock components
9089
import { MetadataDetailPage } from '../pages/system/MetadataDetailPage';
9190

9291
function renderWithRoute(metadataType: string, itemName: string) {

0 commit comments

Comments
 (0)