Hi,
I’ve been playing around with testing while using Cesium in a service within an angular application. I’m currently trying to test the application using cesium as follows:
it('should instantiate cesium viewer', () => {
insantiateSpy = jest.spyOn(service, 'insantiateViewer');
service.insantiateViewer(testElement);
expect(insantiateSpy).toBeCalledTimes(1);
});
But I’m getting this error regarding WebGL (I’ve already tried the mocking jest web gl node package with no success).
console.error
Error constructing CesiumWidget.
Visit <a href="http://get.webgl.org">http://get.webgl.org</a> to verify that your web browser and hardware support WebGL. Consider trying a different web browser or updating your video drivers. Detailed error information is below:
TypeError: Cannot read properties of undefined (reading '0')
TypeError: Cannot read properties of undefined (reading '0')
at new Context (C:\test\node_modules\cesium\Build\CesiumUnminified\index.cjs:34546:73)
at new Scene4 (C:\test\node_modules\cesium\Build\CesiumUnminified\index.cjs:201896:19)
at new CesiumWidget (C:\test\node_modules\cesium\Build\CesiumUnminified\index.cjs:207024:19)
at new Viewer (C:\test\node_modules\cesium\Build\CesiumUnminified\index.cjs:213111:24)
at CesiumService.insantiateViewer (C:\test\src\app\geo\cesium.service.ts:47:19)
at CesiumService.<anonymous> (C:\test\node_modules\jest-mock\build\index.js:839:25)
at C:\test\node_modules\jest-mock\build\index.js:433:39
at CesiumService.<anonymous> (C:\test\node_modules\jest-mock\build\index.js:441:13)
at CesiumService.mockConstructor [as insantiateViewer] (C:\test\node_modules\jest-mock\build\index.js:154:19)
at C:\test\src\app\geo\cesium.service.spec.ts:44:13
at _ZoneDelegate.Object.<anonymous>._ZoneDelegate.invoke (C:\test\node_modules\zone.js\bundles\zone-testing-bundle.umd.js:409:30)
at ProxyZoneSpec.Object.<anonymous>.ProxyZoneSpec.onInvoke (C:\test\node_modules\zone.js\bundles\zone-testing-bundle.umd.js:3830:43)
at _ZoneDelegate.Object.<anonymous>._ZoneDelegate.invoke (C:\test\node_modules\zone.js\bundles\zone-testing-bundle.umd.js:408:56)
at Zone.Object.<anonymous>.Zone.run (C:\test\node_modules\zone.js\bundles\zone-testing-bundle.umd.js:169:47)
at Object.wrappedFunc (C:\test\node_modules\zone.js\bundles\zone-testing-bundle.umd.js:4330:34)
at Promise.then.completed (C:\test\node_modules\jest-circus\build\utils.js:333:28)
at new Promise (<anonymous>)
at callAsyncCircusFn (C:\test\node_modules\jest-circus\build\utils.js:259:10)
at _callCircusTest (C:\test\node_modules\jest-circus\build\run.js:277:40)
at _runTest (C:\test\node_modules\jest-circus\build\run.js:209:3)
at _runTestsForDescribeBlock (C:\test\node_modules\jest-circus\build\run.js:97:9)
at _runTestsForDescribeBlock (C:\test\node_modules\jest-circus\build\run.js:91:9)
at run (C:\test\node_modules\jest-circus\build\run.js:31:3)
at runAndTransformResultsToJestFormat (C:\test\node_modules\jest-circus\build\legacy-code-todo-rewrite\jestAdapterInit.js:135:21)
Any attempt to mock Cesium seems to fall flat too, anybody have a solution to this problem?