Skip to content

Commit 4a5cc96

Browse files
committed
handle async in gl3d_plot_interact tests
1 parent 892707f commit 4a5cc96

File tree

1 file changed

+87
-77
lines changed

1 file changed

+87
-77
lines changed

test/jasmine/tests/gl3d_plot_interact_test.js

+87-77
Original file line numberDiff line numberDiff line change
@@ -571,14 +571,18 @@ describe('Test gl3d modebar handlers - perspective case', function() {
571571
expect(gd._fullLayout.scene2._scene.viewInitial.eye).toEqual({ x: 2.5, y: 2.5, z: 2.5 });
572572

573573
gd.once('plotly_relayout', function() {
574-
assertScenes(gd._fullLayout, 'camera.eye.x', 1.25);
575-
assertScenes(gd._fullLayout, 'camera.eye.y', 1.25);
576-
assertScenes(gd._fullLayout, 'camera.eye.z', 1.25);
574+
return new Promise(function(resolve) {
575+
assertScenes(gd._fullLayout, 'camera.eye.x', 1.25);
576+
assertScenes(gd._fullLayout, 'camera.eye.y', 1.25);
577+
assertScenes(gd._fullLayout, 'camera.eye.z', 1.25);
577578

578-
expect(gd._fullLayout.scene._scene.getCamera().eye.z).toBeCloseTo(1.25);
579-
expect(gd._fullLayout.scene2._scene.getCamera().eye.z).toBeCloseTo(1.25);
579+
expect(gd._fullLayout.scene._scene.getCamera().eye.z).toBeCloseTo(1.25);
580+
expect(gd._fullLayout.scene2._scene.getCamera().eye.z).toBeCloseTo(1.25);
580581

581-
done();
582+
resolve();
583+
})
584+
.catch(failTest)
585+
.then(done);
582586
});
583587

584588
buttonDefault.click();
@@ -594,17 +598,21 @@ describe('Test gl3d modebar handlers - perspective case', function() {
594598
expect(gd._fullLayout.scene2._scene.viewInitial.aspectratio).toEqual({ x: 3, y: 2, z: 1 });
595599

596600
gd.once('plotly_relayout', function() {
597-
expect(gd._fullLayout.scene._scene.fullSceneLayout.aspectmode).toBe('auto');
598-
expect(gd._fullLayout.scene2._scene.fullSceneLayout.aspectmode).toBe('manual');
599-
600-
expect(gd._fullLayout.scene._scene.glplot.getAspectratio().x).toBeCloseTo(1);
601-
expect(gd._fullLayout.scene._scene.glplot.getAspectratio().y).toBeCloseTo(1);
602-
expect(gd._fullLayout.scene._scene.glplot.getAspectratio().z).toBeCloseTo(1);
603-
expect(gd._fullLayout.scene2._scene.glplot.getAspectratio().x).toBeCloseTo(3);
604-
expect(gd._fullLayout.scene2._scene.glplot.getAspectratio().y).toBeCloseTo(2);
605-
expect(gd._fullLayout.scene2._scene.glplot.getAspectratio().z).toBeCloseTo(1);
606-
607-
done();
601+
return new Promise(function(resolve) {
602+
expect(gd._fullLayout.scene._scene.fullSceneLayout.aspectmode).toBe('auto');
603+
expect(gd._fullLayout.scene2._scene.fullSceneLayout.aspectmode).toBe('manual');
604+
605+
expect(gd._fullLayout.scene._scene.glplot.getAspectratio().x).toBeCloseTo(1);
606+
expect(gd._fullLayout.scene._scene.glplot.getAspectratio().y).toBeCloseTo(1);
607+
expect(gd._fullLayout.scene._scene.glplot.getAspectratio().z).toBeCloseTo(1);
608+
expect(gd._fullLayout.scene2._scene.glplot.getAspectratio().x).toBeCloseTo(3);
609+
expect(gd._fullLayout.scene2._scene.glplot.getAspectratio().y).toBeCloseTo(2);
610+
expect(gd._fullLayout.scene2._scene.glplot.getAspectratio().z).toBeCloseTo(1);
611+
612+
resolve();
613+
})
614+
.catch(failTest)
615+
.then(done);
608616
});
609617

610618
buttonDefault.click();
@@ -620,14 +628,18 @@ describe('Test gl3d modebar handlers - perspective case', function() {
620628
expect(gd._fullLayout.scene2._scene.viewInitial.aspectratio).toEqual({ x: 3, y: 2, z: 1 });
621629

622630
gd.once('plotly_relayout', function() {
623-
expect(gd._fullLayout.scene._scene.glplot.getAspectratio().x).toBeCloseTo(1);
624-
expect(gd._fullLayout.scene._scene.glplot.getAspectratio().y).toBeCloseTo(1);
625-
expect(gd._fullLayout.scene._scene.glplot.getAspectratio().z).toBeCloseTo(1);
626-
expect(gd._fullLayout.scene2._scene.glplot.getAspectratio().x).toBeCloseTo(3);
627-
expect(gd._fullLayout.scene2._scene.glplot.getAspectratio().y).toBeCloseTo(2);
628-
expect(gd._fullLayout.scene2._scene.glplot.getAspectratio().z).toBeCloseTo(1);
629-
630-
done();
631+
return new Promise(function(resolve) {
632+
expect(gd._fullLayout.scene._scene.glplot.getAspectratio().x).toBeCloseTo(1);
633+
expect(gd._fullLayout.scene._scene.glplot.getAspectratio().y).toBeCloseTo(1);
634+
expect(gd._fullLayout.scene._scene.glplot.getAspectratio().z).toBeCloseTo(1);
635+
expect(gd._fullLayout.scene2._scene.glplot.getAspectratio().x).toBeCloseTo(3);
636+
expect(gd._fullLayout.scene2._scene.glplot.getAspectratio().y).toBeCloseTo(2);
637+
expect(gd._fullLayout.scene2._scene.glplot.getAspectratio().z).toBeCloseTo(1);
638+
639+
resolve();
640+
})
641+
.catch(failTest)
642+
.then(done);
631643
});
632644

633645
buttonDefault.click();
@@ -777,14 +789,18 @@ describe('Test gl3d modebar handlers - orthographic case', function() {
777789
expect(gd._fullLayout.scene2._scene.viewInitial.eye).toEqual({ x: 2.5, y: 2.5, z: 2.5 });
778790

779791
gd.once('plotly_relayout', function() {
780-
assertScenes(gd._fullLayout, 'camera.eye.x', 1.25);
781-
assertScenes(gd._fullLayout, 'camera.eye.y', 1.25);
782-
assertScenes(gd._fullLayout, 'camera.eye.z', 1.25);
792+
return new Promise(function(resolve) {
793+
assertScenes(gd._fullLayout, 'camera.eye.x', 1.25);
794+
assertScenes(gd._fullLayout, 'camera.eye.y', 1.25);
795+
assertScenes(gd._fullLayout, 'camera.eye.z', 1.25);
783796

784-
expect(gd._fullLayout.scene._scene.getCamera().eye.z).toBeCloseTo(1.25);
785-
expect(gd._fullLayout.scene2._scene.getCamera().eye.z).toBeCloseTo(1.25);
797+
expect(gd._fullLayout.scene._scene.getCamera().eye.z).toBeCloseTo(1.25);
798+
expect(gd._fullLayout.scene2._scene.getCamera().eye.z).toBeCloseTo(1.25);
786799

787-
done();
800+
resolve();
801+
})
802+
.catch(failTest)
803+
.then(done);
788804
});
789805

790806
buttonDefault.click();
@@ -800,17 +816,21 @@ describe('Test gl3d modebar handlers - orthographic case', function() {
800816
expect(gd._fullLayout.scene2._scene.viewInitial.aspectratio).toEqual({ x: 3, y: 2, z: 1 });
801817

802818
gd.once('plotly_relayout', function() {
803-
expect(gd._fullLayout.scene._scene.aspectmode).toEqual(undefined);
804-
expect(gd._fullLayout.scene2._scene.aspectmode).toEqual(undefined);
805-
806-
expect(gd._fullLayout.scene._scene.glplot.getAspectratio().x).toBeCloseTo(1);
807-
expect(gd._fullLayout.scene._scene.glplot.getAspectratio().y).toBeCloseTo(1);
808-
expect(gd._fullLayout.scene._scene.glplot.getAspectratio().z).toBeCloseTo(1);
809-
expect(gd._fullLayout.scene2._scene.glplot.getAspectratio().x).toBeCloseTo(3);
810-
expect(gd._fullLayout.scene2._scene.glplot.getAspectratio().y).toBeCloseTo(2);
811-
expect(gd._fullLayout.scene2._scene.glplot.getAspectratio().z).toBeCloseTo(1);
812-
813-
done();
819+
return new Promise(function(resolve) {
820+
expect(gd._fullLayout.scene._scene.aspectmode).toEqual(undefined);
821+
expect(gd._fullLayout.scene2._scene.aspectmode).toEqual(undefined);
822+
823+
expect(gd._fullLayout.scene._scene.glplot.getAspectratio().x).toBeCloseTo(1);
824+
expect(gd._fullLayout.scene._scene.glplot.getAspectratio().y).toBeCloseTo(1);
825+
expect(gd._fullLayout.scene._scene.glplot.getAspectratio().z).toBeCloseTo(1);
826+
expect(gd._fullLayout.scene2._scene.glplot.getAspectratio().x).toBeCloseTo(3);
827+
expect(gd._fullLayout.scene2._scene.glplot.getAspectratio().y).toBeCloseTo(2);
828+
expect(gd._fullLayout.scene2._scene.glplot.getAspectratio().z).toBeCloseTo(1);
829+
830+
resolve();
831+
})
832+
.catch(failTest)
833+
.then(done);
814834
});
815835

816836
buttonDefault.click();
@@ -826,17 +846,21 @@ describe('Test gl3d modebar handlers - orthographic case', function() {
826846
expect(gd._fullLayout.scene2._scene.viewInitial.aspectratio).toEqual({ x: 3, y: 2, z: 1 });
827847

828848
gd.once('plotly_relayout', function() {
829-
expect(gd._fullLayout.scene._scene.fullSceneLayout.aspectmode).toBe('auto');
830-
expect(gd._fullLayout.scene2._scene.fullSceneLayout.aspectmode).toBe('manual');
831-
832-
expect(gd._fullLayout.scene._scene.glplot.getAspectratio().x).toBeCloseTo(1);
833-
expect(gd._fullLayout.scene._scene.glplot.getAspectratio().y).toBeCloseTo(1);
834-
expect(gd._fullLayout.scene._scene.glplot.getAspectratio().z).toBeCloseTo(1);
835-
expect(gd._fullLayout.scene2._scene.glplot.getAspectratio().x).toBeCloseTo(3);
836-
expect(gd._fullLayout.scene2._scene.glplot.getAspectratio().y).toBeCloseTo(2);
837-
expect(gd._fullLayout.scene2._scene.glplot.getAspectratio().z).toBeCloseTo(1);
838-
839-
done();
849+
return new Promise(function(resolve) {
850+
expect(gd._fullLayout.scene._scene.fullSceneLayout.aspectmode).toBe('auto');
851+
expect(gd._fullLayout.scene2._scene.fullSceneLayout.aspectmode).toBe('manual');
852+
853+
expect(gd._fullLayout.scene._scene.glplot.getAspectratio().x).toBeCloseTo(1);
854+
expect(gd._fullLayout.scene._scene.glplot.getAspectratio().y).toBeCloseTo(1);
855+
expect(gd._fullLayout.scene._scene.glplot.getAspectratio().z).toBeCloseTo(1);
856+
expect(gd._fullLayout.scene2._scene.glplot.getAspectratio().x).toBeCloseTo(3);
857+
expect(gd._fullLayout.scene2._scene.glplot.getAspectratio().y).toBeCloseTo(2);
858+
expect(gd._fullLayout.scene2._scene.glplot.getAspectratio().z).toBeCloseTo(1);
859+
860+
resolve();
861+
})
862+
.catch(failTest)
863+
.then(done);
840864
});
841865

842866
buttonDefault.click();
@@ -1631,23 +1655,16 @@ describe('Test gl3d relayout calls', function() {
16311655
})
16321656
.then(function() {
16331657
expect(gd._fullLayout.scene._scene.camera._ortho).toEqual(false, 'perspective');
1634-
})
1635-
.then(function() {
1658+
16361659
return Plotly.relayout(gd, 'scene.camera.projection.type', 'orthographic');
16371660
})
16381661
.then(function() {
16391662
expect(gd._fullLayout.scene._scene.camera._ortho).toEqual(true, 'orthographic');
1640-
})
1641-
.then(function() {
1642-
return selectButton(gd._fullLayout._modeBar, 'resetCameraLastSave3d').click();
1643-
})
1644-
.then(function() {
1663+
1664+
selectButton(gd._fullLayout._modeBar, 'resetCameraLastSave3d').click();
16451665
expect(gd._fullLayout.scene._scene.camera._ortho).toEqual(true, 'orthographic');
1646-
})
1647-
.then(function() {
1648-
return selectButton(gd._fullLayout._modeBar, 'resetCameraDefault3d').click();
1649-
})
1650-
.then(function() {
1666+
1667+
selectButton(gd._fullLayout._modeBar, 'resetCameraDefault3d').click();
16511668
expect(gd._fullLayout.scene._scene.camera._ortho).toEqual(true, 'orthographic');
16521669
})
16531670
.catch(failTest)
@@ -1681,23 +1698,16 @@ describe('Test gl3d relayout calls', function() {
16811698
})
16821699
.then(function() {
16831700
expect(gd._fullLayout.scene._scene.camera._ortho).toEqual(true, 'orthographic');
1684-
})
1685-
.then(function() {
1701+
16861702
return Plotly.relayout(gd, 'scene.camera.projection.type', 'perspective');
16871703
})
16881704
.then(function() {
16891705
expect(gd._fullLayout.scene._scene.camera._ortho).toEqual(false, 'perspective');
1690-
})
1691-
.then(function() {
1692-
return selectButton(gd._fullLayout._modeBar, 'resetCameraLastSave3d').click();
1693-
})
1694-
.then(function() {
1706+
1707+
selectButton(gd._fullLayout._modeBar, 'resetCameraLastSave3d').click();
16951708
expect(gd._fullLayout.scene._scene.camera._ortho).toEqual(false, 'perspective');
1696-
})
1697-
.then(function() {
1698-
return selectButton(gd._fullLayout._modeBar, 'resetCameraDefault3d').click();
1699-
})
1700-
.then(function() {
1709+
1710+
selectButton(gd._fullLayout._modeBar, 'resetCameraDefault3d').click();
17011711
expect(gd._fullLayout.scene._scene.camera._ortho).toEqual(false, 'perspective');
17021712
})
17031713
.catch(failTest)

0 commit comments

Comments
 (0)