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.
});