canvas.getContext("webgl") возвращает null при тестировании с кукловодом и шуткой
Я пытаюсь написать тесты моментальных снимков для рендерера webgl, который я написал, используя jest, puppeteer и jest-image-snapshot. Я тестирую это так: я написал приложение TestApp для реагирования, которое содержит холст, как показано ниже:
export function TestApp(props: { width: number; height: number }): JSX.Element {
return (
<div
id="drawing"
style={{
...props
}}
>
<DrawingCanvas canvasProps={props} renderBehavior={RenderBehavior.Wet} />
</div>
);
}
Мне нужно предоставить моему рендереру контекст WebGLRenderingContext, который требуется при рендеринге сцены. Поэтому перед каждым тестом я делаю следующее:
beforeEach(async () => {
div = document.createElement("div");
document.body.appendChild(div);
ReactDOM.render(<TestApp width={800} height={600} />, div);
const canvas: HTMLCanvasElement = document.getElementById("drawing-canvas-wet");
webglRenderer= new WebGLRenderer(canvas.getContext("webgl"));
testPlayground = new TestPlayground(webglRenderer);
});
Всякий раз, когда я вызываю canvas.getContext("webgl"), возвращаемый WebGLRenderingContext имеет значение null. У кого-нибудь раньше была такая проблема?