import {render, screen, waitFor} from '@testing-library/react'; import * as THREE from 'three'; import mockRenderer from '../__mocks__/mockRenderer'; import {createBoxOrSphere} from '../utils'; import Viewer from '../Viewer'; import '@testing-library/jest-dom'; const mockObject3D = new THREE.Object3D(); jest.mock('../utils', () => ({ ...jest.requireActual('../utils'), loadGLB: () => Promise.resolve(mockObject3D), })); jest.mock('../environment/environment', () => ({ ...jest.requireActual('../environment/environment'), createRenderer: jest.fn().mockImplementation(() => mockRenderer), }), ); describe('Viewer component', () => { test('Should find "Initialisation error" message', async () => { render(); await waitFor(() => { const loader = screen.getByText('Initialisation error'); expect(loader).toBeInTheDocument(); }); }); test('Should find the universal scene test id', async () => { const object3D = Promise.resolve(createBoxOrSphere({name: 'My cube'})); render(); await waitFor(() => { const loader = screen.getByTestId('universal-scene is-ready-true'); expect(loader).toBeInTheDocument(); }); }); })