// @vitest-environment happy-dom import { WebGLRenderer } from 'three' import { describe, test, expect } from 'vitest' import GL from 'gl' import { CameraType, useCamera } from '../useCamera/useCamera' import { useScene } from '../useScene/useScene' import { useRenderer } from './useRenderer' import { ref } from 'vue' const window = new Window() const document = window.document document.body.innerHTML = '' const canvas = document.querySelector('canvas') canvas.addEventListener = function (_event: any, _func: any, _bind_: any) {} const gl = GL(100, 100) describe('useRenderer()', () => { beforeEach(() => { const { createCamera } = useCamera() const camera = createCamera(CameraType.Perspective) const { scene } = useScene() scene.add(camera) }) test('should create a basic renderer', () => { const { renderer } = useRenderer(ref(canvas as HTMLCanvasElement), { context: gl, }) expect(renderer).toBeInstanceOf(WebGLRenderer) }) test('should enable shadowMap if option shadows is passed', () => { const { renderer } = useRenderer(ref(canvas as HTMLCanvasElement), { context: gl, shadows: true, }) expect(renderer.shadowMap.enabled).toBeTruthy }) test('should enable shadowMap if option shadows is passed', () => { const { renderer } = useRenderer(ref(canvas as HTMLCanvasElement), { context: gl, physicallyCorrectLights: true, }) expect(renderer.physicallyCorrectLights).toBeTruthy }) })