|
1 | | -import { describe, it, expect, vi } from 'vitest'; |
| 1 | +import { vi, describe, it, expect, beforeEach } from 'vitest'; |
2 | 2 | import { render, screen } from '@testing-library/react'; |
3 | 3 | import React from 'react'; |
4 | | -import { ObjectGridRenderer } from './index'; |
5 | 4 | import { SchemaRendererProvider } from '@object-ui/react'; |
6 | | - |
7 | | -// Mock dependencies |
8 | | -vi.mock('./ObjectGrid', () => ({ |
9 | | - ObjectGrid: ({ dataSource }: any) => ( |
10 | | - <div data-testid="grid-mock"> |
11 | | - {dataSource ? `DataSource: ${dataSource.type}` : 'No DataSource'} |
12 | | - </div> |
13 | | - ) |
14 | | -})); |
| 5 | +import * as ObjectGridModule from './ObjectGrid'; |
| 6 | +import { ObjectGridRenderer } from './index'; |
15 | 7 |
|
16 | 8 | describe('Plugin Grid Registration', () => { |
17 | | - it('renderer passes dataSource from context', () => { |
18 | | - |
| 9 | + it('renderer passes dataSource from context', async () => { |
| 10 | + // Spy and mock implementation |
| 11 | + vi.spyOn(ObjectGridModule, 'ObjectGrid').mockImplementation( |
| 12 | + (({ dataSource }: any) => ( |
| 13 | + <div data-testid="grid-mock"> |
| 14 | + {dataSource ? `DataSource: ${dataSource.type}` : 'No DataSource'} |
| 15 | + </div> |
| 16 | + )) as any |
| 17 | + ); |
| 18 | + |
19 | 19 | render( |
20 | 20 | <SchemaRendererProvider dataSource={{ type: 'mock-datasource' } as any}> |
21 | 21 | <ObjectGridRenderer schema={{ type: 'object-grid' }} /> |
22 | 22 | </SchemaRendererProvider> |
23 | 23 | ); |
24 | | - expect(screen.getByTestId('grid-mock')).toHaveTextContent('DataSource: mock-datasource'); |
| 24 | + |
| 25 | + // Use findByTestId for async safety |
| 26 | + const element = await screen.findByTestId('grid-mock'); |
| 27 | + expect(element).toHaveTextContent('DataSource: mock-datasource'); |
25 | 28 | }); |
26 | 29 | }); |
0 commit comments