import React from 'react'; import { render } from '@testing-library/react-native'; import { SafeAreaProvider } from 'react-native-safe-area-context'; import { WorkspaceFactory, WorkspaceInterface, } from '@adaptive-desktop/adaptive-workspace'; import { loadDesktopSnapshot } from '@adaptive-desktop/adaptive-workspace'; import { WorkspaceView } from './WorkspaceView'; import { idGenerator } from '../../utils/idGenerator'; // Mock safe area context const MockSafeAreaProvider = ({ children }: { children: React.ReactNode }) => ( {children} ); describe('WorkspaceView', () => { const createTestWorkspace = ( x = 0, y = 0, width = 800, height = 600 ): WorkspaceInterface => { const factory = new WorkspaceFactory(idGenerator); const snapshot = loadDesktopSnapshot(); // Override screen bounds for test return factory.fromSnapshot(snapshot, { x, y, width, height }); }; const renderWorkspaceView = (workspace: WorkspaceInterface, props = {}) => { return render( ); }; describe('Rendering', () => { it('renders without crashing', () => { const workspace = createTestWorkspace(); expect(() => renderWorkspaceView(workspace)).not.toThrow(); }); it('applies custom styles', () => { const workspace = createTestWorkspace(); const customStyle = { backgroundColor: '#ff0000' }; const { getByTestId } = render( ); const container = getByTestId('workspace-view'); expect(container.props.style).toEqual( expect.arrayContaining([expect.objectContaining(customStyle)]) ); }); }); // WorkspaceView is now a pure background container; integration tests for viewport rendering are handled elsewhere. });