Skip to content

Commit 5bc2c71

Browse files
committed
add 'step' name to failure message
1 parent ae48369 commit 5bc2c71

File tree

1 file changed

+78
-75
lines changed

1 file changed

+78
-75
lines changed

test/jasmine/tests/geo_test.js

Lines changed: 78 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -1430,22 +1430,21 @@ describe('Test geo zoom/pan/drag interactions:', function() {
14301430
});
14311431
}
14321432

1433-
function assertEventData(eventKeys) {
1433+
function assertEventData(msg, eventKeys) {
14341434
if(eventKeys === 'dblclick') {
1435-
expect(dblClickCnt).toBe(1, 'double click got fired');
1436-
expect(eventData).toBeDefined('relayout is fired on double clicks');
1437-
}
1438-
else {
1435+
expect(dblClickCnt).toBe(1, msg + 'double click got fired');
1436+
expect(eventData).toBeDefined(msg + 'relayout is fired on double clicks');
1437+
} else {
14391438
expect(dblClickCnt).toBe(0, 'double click not fired');
14401439

14411440
if(Array.isArray(eventKeys)) {
14421441
expect(Object.keys(eventData || {}).length)
1443-
.toBe(Object.keys(eventKeys).length, '# of event data keys');
1442+
.toBe(Object.keys(eventKeys).length, msg + '# of event data keys');
14441443
eventKeys.forEach(function(k) {
1445-
expect((eventData || {})[k]).toBeDefined('event data key ' + k);
1444+
expect((eventData || {})[k]).toBeDefined(msg + 'event data key ' + k);
14461445
});
14471446
} else {
1448-
expect(eventData).toBeUndefined();
1447+
expect(eventData).toBeUndefined(msg + 'relayout not fired');
14491448
}
14501449
}
14511450

@@ -1488,45 +1487,47 @@ describe('Test geo zoom/pan/drag interactions:', function() {
14881487
fig.layout.height = 500;
14891488
fig.layout.dragmode = 'pan';
14901489

1491-
function _assert(attr, proj, eventKeys) {
1490+
function _assert(step, attr, proj, eventKeys) {
1491+
var msg = '[' + step + '] ';
1492+
14921493
var geoLayout = gd._fullLayout.geo;
14931494
var rotation = geoLayout.projection.rotation;
14941495
var center = geoLayout.center;
14951496
var scale = geoLayout.projection.scale;
14961497

1497-
expect(rotation.lon).toBeCloseTo(attr[0][0], 1, 'rotation.lon');
1498-
expect(rotation.lat).toBeCloseTo(attr[0][1], 1, 'rotation.lat');
1499-
expect(center.lon).toBeCloseTo(attr[1][0], 1, 'center.lon');
1500-
expect(center.lat).toBeCloseTo(attr[1][1], 1, 'center.lat');
1501-
expect(scale).toBeCloseTo(attr[2], 1, 'zoom');
1498+
expect(rotation.lon).toBeCloseTo(attr[0][0], 1, msg + 'rotation.lon');
1499+
expect(rotation.lat).toBeCloseTo(attr[0][1], 1, msg + 'rotation.lat');
1500+
expect(center.lon).toBeCloseTo(attr[1][0], 1, msg + 'center.lon');
1501+
expect(center.lat).toBeCloseTo(attr[1][1], 1, msg + 'center.lat');
1502+
expect(scale).toBeCloseTo(attr[2], 1, msg + 'zoom');
15021503

15031504
var geo = geoLayout._subplot;
15041505
var rotate = geo.projection.rotate();
15051506
var translate = geo.projection.translate();
15061507
var _center = geo.projection.center();
15071508
var _scale = geo.projection.scale();
15081509

1509-
expect(rotate[0]).toBeCloseTo(proj[0][0], 0, 'rotate[0]');
1510-
expect(rotate[1]).toBeCloseTo(proj[0][1], 0, 'rotate[1]');
1511-
expect(translate[0]).toBeCloseTo(proj[1][0], 0, 'translate[0]');
1512-
expect(translate[1]).toBeCloseTo(proj[1][1], 0, 'translate[1]');
1513-
expect(_center[0]).toBeCloseTo(proj[2][0], 0, 'center[0]');
1514-
expect(_center[1]).toBeCloseTo(proj[2][1], 0, 'center[1]');
1515-
expect(_scale).toBeCloseTo(proj[3], 0, 'scale');
1510+
expect(rotate[0]).toBeCloseTo(proj[0][0], 0, msg + 'rotate[0]');
1511+
expect(rotate[1]).toBeCloseTo(proj[0][1], 0, msg + 'rotate[1]');
1512+
expect(translate[0]).toBeCloseTo(proj[1][0], 0, msg + 'translate[0]');
1513+
expect(translate[1]).toBeCloseTo(proj[1][1], 0, msg + 'translate[1]');
1514+
expect(_center[0]).toBeCloseTo(proj[2][0], 0, msg + 'center[0]');
1515+
expect(_center[1]).toBeCloseTo(proj[2][1], 0, msg + 'center[1]');
1516+
expect(_scale).toBeCloseTo(proj[3], 0, msg + 'scale');
15161517

1517-
assertEventData(eventKeys);
1518+
assertEventData(msg, eventKeys);
15181519
}
15191520

15201521
plot(fig).then(function() {
1521-
_assert([
1522+
_assert('base', [
15221523
[-90, 0], [-90, 0], 1
15231524
], [
15241525
[90, 0], [350, 260], [0, 0], 101.9
15251526
], undefined);
15261527
return drag([[350, 250], [400, 250]]);
15271528
})
15281529
.then(function() {
1529-
_assert([
1530+
_assert('after east-west drag', [
15301531
[-124.4, 0], [-124.4, 0], 1
15311532
], [
15321533
[124.4, 0], [350, 260], [0, 0], 101.9
@@ -1536,7 +1537,7 @@ describe('Test geo zoom/pan/drag interactions:', function() {
15361537
return drag([[400, 250], [400, 300]]);
15371538
})
15381539
.then(function() {
1539-
_assert([
1540+
_assert('after north-south drag', [
15401541
[-124.4, 0], [-124.4, 28.1], 1
15411542
], [
15421543
[124.4, 0], [350, 310], [0, 0], 101.9
@@ -1546,32 +1547,31 @@ describe('Test geo zoom/pan/drag interactions:', function() {
15461547
return scroll([350, 250], [-200, -200]);
15471548
})
15481549
.then(function() {
1549-
_assert([
15501550
[-124.4, 0], [-124.4, 29.5], 1.3
1551+
_assert('after off-center scroll', [
15511552
], [
15521553
[124.4, 0], [350, 329.2], [0, 0], 134.4
15531554
], [
15541555
'geo.projection.rotation.lon',
15551556
'geo.center.lon', 'geo.center.lat',
15561557
'geo.projection.scale'
15571558
]);
1558-
// something that causes a replot
15591559
return Plotly.relayout(gd, 'geo.showocean', false);
15601560
})
15611561
.then(function() {
1562-
_assert([
15631562
[-124.4, 0], [-124.4, 29.5], 1.3
1563+
_assert('after some relayout call that causes a replot', [
15641564
], [
15651565
// converts translate (px) to center (lonlat)
1566-
[124.4, 0], [350, 260], [0, 29.5], 134.4
1566+
[151.2, 0], [350, 260], [0, 29.5], 134.4
15671567
], [
15681568
'geo.showocean'
15691569
]);
15701570
return dblClick([350, 250]);
15711571
})
15721572
.then(function() {
15731573
// resets to initial view
1574-
_assert([
1574+
_assert('after double click', [
15751575
[-90, 0], [-90, 0], 1
15761576
], [
15771577
[90, 0], [350, 260], [0, 0], 101.9
@@ -1587,36 +1587,38 @@ describe('Test geo zoom/pan/drag interactions:', function() {
15871587

15881588
// of layout width = height = 500
15891589

1590-
function _assert(attr, proj, eventKeys) {
1590+
function _assert(step, attr, proj, eventKeys) {
1591+
var msg = '[' + step + '] ';
1592+
15911593
var geoLayout = gd._fullLayout.geo;
15921594
var rotation = geoLayout.projection.rotation;
15931595
var scale = geoLayout.projection.scale;
15941596

1595-
expect(rotation.lon).toBeCloseTo(attr[0][0], 0, 'rotation.lon');
1596-
expect(rotation.lat).toBeCloseTo(attr[0][1], 0, 'rotation.lat');
1597-
expect(scale).toBeCloseTo(attr[1], 1, 'zoom');
1597+
expect(rotation.lon).toBeCloseTo(attr[0][0], 0, msg + 'rotation.lon');
1598+
expect(rotation.lat).toBeCloseTo(attr[0][1], 0, msg + 'rotation.lat');
1599+
expect(scale).toBeCloseTo(attr[1], 1, msg + 'zoom');
15981600

15991601
var geo = geoLayout._subplot;
16001602
var rotate = geo.projection.rotate();
16011603
var _scale = geo.projection.scale();
16021604

1603-
expect(rotate[0]).toBeCloseTo(proj[0][0], 0, 'rotate[0]');
1604-
expect(rotate[1]).toBeCloseTo(proj[0][1], 0, 'rotate[1]');
1605-
expect(_scale).toBeCloseTo(proj[1], 0, 'scale');
1605+
expect(rotate[0]).toBeCloseTo(proj[0][0], 0, msg + 'rotate[0]');
1606+
expect(rotate[1]).toBeCloseTo(proj[0][1], 0, msg + 'rotate[1]');
1607+
expect(_scale).toBeCloseTo(proj[1], 0, msg + 'scale');
16061608

1607-
assertEventData(eventKeys);
1609+
assertEventData(msg, eventKeys);
16081610
}
16091611

16101612
plot(fig).then(function() {
1611-
_assert([
1613+
_assert('base', [
16121614
[-75, 45], 1
16131615
], [
16141616
[75, -45], 160
16151617
], undefined);
16161618
return drag([[250, 250], [300, 250]]);
16171619
})
16181620
.then(function() {
1619-
_assert([
1621+
_assert('after east-west drag', [
16201622
[-103.7, 49.3], 1
16211623
], [
16221624
[103.7, -49.3], 160
@@ -1626,7 +1628,7 @@ describe('Test geo zoom/pan/drag interactions:', function() {
16261628
return drag([[250, 250], [300, 300]]);
16271629
})
16281630
.then(function() {
1629-
_assert([
1631+
_assert('after NW-SE drag', [
16301632
[-135.5, 73.8], 1
16311633
], [
16321634
[135.5, -73.8], 160
@@ -1636,19 +1638,18 @@ describe('Test geo zoom/pan/drag interactions:', function() {
16361638
return scroll([300, 300], [-200, -200]);
16371639
})
16381640
.then(function() {
1639-
_assert([
1641+
_assert('after scroll', [
16401642
[-126.2, 67.1], 1.3
16411643
], [
16421644
[126.2, -67.1], 211.1
16431645
], [
16441646
'geo.projection.rotation.lon', 'geo.projection.rotation.lat',
16451647
'geo.projection.scale'
16461648
]);
1647-
// something that causes a replot
16481649
return Plotly.relayout(gd, 'geo.showocean', false);
16491650
})
16501651
.then(function() {
1651-
_assert([
1652+
_assert('after some relayout call that causes a replot', [
16521653
[-126.2, 67.1], 1.3
16531654
], [
16541655
[126.2, -67.1], 211.1
@@ -1659,7 +1660,7 @@ describe('Test geo zoom/pan/drag interactions:', function() {
16591660
})
16601661
.then(function() {
16611662
// resets to initial view
1662-
_assert([
1663+
_assert('after double click', [
16631664
[-75, 45], 1
16641665
], [
16651666
[75, -45], 160
@@ -1676,39 +1677,41 @@ describe('Test geo zoom/pan/drag interactions:', function() {
16761677

16771678
// of layout width = height = 500
16781679

1679-
function _assert(attr, proj, eventKeys) {
1680+
function _assert(step, attr, proj, eventKeys) {
1681+
var msg = '[' + step + '] ';
1682+
16801683
var geoLayout = gd._fullLayout.geo;
16811684
var center = geoLayout.center;
16821685
var scale = geoLayout.projection.scale;
16831686

1684-
expect(center.lon).toBeCloseTo(attr[0][0], -0.5, 'center.lon');
1685-
expect(center.lat).toBeCloseTo(attr[0][1], -0.5, 'center.lat');
1686-
expect(scale).toBeCloseTo(attr[1], 1, 'zoom');
1687+
expect(center.lon).toBeCloseTo(attr[0][0], -0.5, msg + 'center.lon');
1688+
expect(center.lat).toBeCloseTo(attr[0][1], -0.5, msg + 'center.lat');
1689+
expect(scale).toBeCloseTo(attr[1], 1, msg + 'zoom');
16871690

16881691
var geo = geoLayout._subplot;
16891692
var translate = geo.projection.translate();
16901693
var _center = geo.projection.center();
16911694
var _scale = geo.projection.scale();
16921695

1693-
expect(translate[0]).toBeCloseTo(proj[0][0], -0.75, 'translate[0]');
1694-
expect(translate[1]).toBeCloseTo(proj[0][1], -0.75, 'translate[1]');
1695-
expect(_center[0]).toBeCloseTo(proj[1][0], -0.5, 'center[0]');
1696-
expect(_center[1]).toBeCloseTo(proj[1][1], -0.5, 'center[1]');
1697-
expect(_scale).toBeCloseTo(proj[2], -1, 'scale');
1696+
expect(translate[0]).toBeCloseTo(proj[0][0], -0.75, msg + 'translate[0]');
1697+
expect(translate[1]).toBeCloseTo(proj[0][1], -0.75, msg + 'translate[1]');
1698+
expect(_center[0]).toBeCloseTo(proj[1][0], -0.5, msg + 'center[0]');
1699+
expect(_center[1]).toBeCloseTo(proj[1][1], -0.5, msg + 'center[1]');
1700+
expect(_scale).toBeCloseTo(proj[2], -1, msg + 'scale');
16981701

1699-
assertEventData(eventKeys);
1702+
assertEventData(msg, eventKeys);
17001703
}
17011704

17021705
plot(fig).then(function() {
1703-
_assert([
1706+
_assert('base', [
17041707
[15, 57.5], 1,
17051708
], [
17061709
[247, 260], [0, 57.5], 292.2
17071710
], undefined);
17081711
return drag([[250, 250], [200, 200]]);
17091712
})
17101713
.then(function() {
1711-
_assert([
1714+
_assert('after SW-NE drag', [
17121715
[30.9, 46.2], 1
17131716
], [
17141717
// changes translate(), but not center()
@@ -1719,18 +1722,17 @@ describe('Test geo zoom/pan/drag interactions:', function() {
17191722
return scroll([300, 300], [-200, -200]);
17201723
})
17211724
.then(function() {
1722-
_assert([
1725+
_assert('after scroll', [
17231726
[34.3, 43.6], 1.3
17241727
], [
17251728
[164.1, 181.2], [0, 57.5], 385.5
17261729
], [
17271730
'geo.center.lon', 'geo.center.lon', 'geo.projection.scale'
17281731
]);
1729-
// something that causes a replot
17301732
return Plotly.relayout(gd, 'geo.showlakes', true);
17311733
})
17321734
.then(function() {
1733-
_assert([
1735+
_assert('after some relayout call that causes a replot', [
17341736
[34.3, 43.6], 1.3
17351737
], [
17361738
// changes are now reflected in 'center'
@@ -1741,7 +1743,7 @@ describe('Test geo zoom/pan/drag interactions:', function() {
17411743
return dblClick([250, 250]);
17421744
})
17431745
.then(function() {
1744-
_assert([
1746+
_assert('after double click', [
17451747
[15, 57.5], 1,
17461748
], [
17471749
[247, 260], [0, 57.5], 292.2
@@ -1758,37 +1760,39 @@ describe('Test geo zoom/pan/drag interactions:', function() {
17581760
// layout width = 870
17591761
// layout height = 598
17601762

1761-
function _assert(attr, proj, eventKeys) {
1763+
function _assert(step, attr, proj, eventKeys) {
1764+
var msg = '[' + step + '] ';
1765+
17621766
var geoLayout = gd._fullLayout.geo;
17631767
var center = geoLayout.center;
17641768
var scale = geoLayout.projection.scale;
17651769

1766-
expect(center.lon).toBeCloseTo(attr[0][0], 1, 'center.lon');
1767-
expect(center.lat).toBeCloseTo(attr[0][1], 1, 'center.lat');
1768-
expect(scale).toBeCloseTo(attr[1], 1, 'zoom');
1770+
expect(center.lon).toBeCloseTo(attr[0][0], 1, msg + 'center.lon');
1771+
expect(center.lat).toBeCloseTo(attr[0][1], 1, msg + 'center.lat');
1772+
expect(scale).toBeCloseTo(attr[1], 1, msg + 'zoom');
17691773

17701774
// albersUsa projection does not have a center() method
17711775
var geo = geoLayout._subplot;
17721776
var translate = geo.projection.translate();
17731777
var _scale = geo.projection.scale();
17741778

1775-
expect(translate[0]).toBeCloseTo(proj[0][0], -1, 'translate[0]');
1776-
expect(translate[1]).toBeCloseTo(proj[0][1], -1, 'translate[1]');
1777-
expect(_scale).toBeCloseTo(proj[1], -1.5, 'scale');
1779+
expect(translate[0]).toBeCloseTo(proj[0][0], -1, msg + 'translate[0]');
1780+
expect(translate[1]).toBeCloseTo(proj[0][1], -1, msg + 'translate[1]');
1781+
expect(_scale).toBeCloseTo(proj[1], -1.5, msg + 'scale');
17781782

1779-
assertEventData(eventKeys);
1783+
assertEventData(msg, eventKeys);
17801784
}
17811785

17821786
plot(fig).then(function() {
1783-
_assert([
1787+
_assert('base', [
17841788
[-96.6, 38.7], 1,
17851789
], [
17861790
[416, 309], 738.5
17871791
], undefined);
17881792
return drag([[250, 250], [200, 200]]);
17891793
})
17901794
.then(function() {
1791-
_assert([
1795+
_assert('after NW-SE drag', [
17921796
[-91.8, 34.8], 1,
17931797
], [
17941798
[366, 259], 738.5
@@ -1798,18 +1802,17 @@ describe('Test geo zoom/pan/drag interactions:', function() {
17981802
return scroll([300, 300], [-200, -200]);
17991803
})
18001804
.then(function() {
1801-
_assert([
1805+
_assert('after scroll', [
18021806
[-94.5, 35.0], 1.3
18031807
], [
18041808
[387.1, 245.9], 974.4
18051809
], [
18061810
'geo.center.lon', 'geo.center.lon', 'geo.projection.scale'
18071811
]);
1808-
// something that causes a replot
18091812
return Plotly.relayout(gd, 'geo.showlakes', true);
18101813
})
18111814
.then(function() {
1812-
_assert([
1815+
_assert('after some relayout call that causes a replot', [
18131816
[-94.5, 35.0], 1.3
18141817
], [
18151818
// new center values are reflected in translate()
@@ -1820,7 +1823,7 @@ describe('Test geo zoom/pan/drag interactions:', function() {
18201823
return dblClick([250, 250]);
18211824
})
18221825
.then(function() {
1823-
_assert([
1826+
_assert('after double click', [
18241827
[-96.6, 38.7], 1,
18251828
], [
18261829
[416, 309], 738.5

0 commit comments

Comments
 (0)