Skip to content

Commit 099c56c

Browse files
committed
Fixed failing tests
1 parent 7cc008e commit 099c56c

File tree

6 files changed

+123
-47
lines changed

6 files changed

+123
-47
lines changed

platform/features/conductor-v2/conductor/src/ui/TimeConductorController.js

-2
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,6 @@ define(
197197
}
198198
};
199199

200-
201200
/**
202201
* Called when form values are changed. Synchronizes the form with
203202
* the time conductor
@@ -318,7 +317,6 @@ define(
318317
var zoomDefaults = this.conductor.timeSystem().defaults().zoom;
319318
var timeSpan = Math.pow((1 - sliderValue), 4) * (zoomDefaults.min - zoomDefaults.max);
320319

321-
322320
var zoom = this.conductorViewService.zoom(timeSpan);
323321

324322
this.$scope.boundsModel.start = zoom.bounds.start;

platform/features/conductor-v2/conductor/src/ui/TimeConductorControllerSpec.js

+90-34
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ define(['./TimeConductorController'], function (TimeConductorController) {
2828
var mockConductorViewService;
2929
var mockTimeSystems;
3030
var controller;
31+
var mockFormatService;
32+
var mockFormat;
3133

3234
beforeEach(function () {
3335
mockScope = jasmine.createSpyObj("$scope", [
@@ -52,34 +54,32 @@ define(['./TimeConductorController'], function (TimeConductorController) {
5254
"availableModes",
5355
"mode",
5456
"availableTimeSystems",
55-
"deltas"
57+
"deltas",
58+
"deltas",
59+
"on",
60+
"off"
5661
]
5762
);
5863
mockConductorViewService.availableModes.andReturn([]);
5964
mockConductorViewService.availableTimeSystems.andReturn([]);
6065

66+
mockFormatService = jasmine.createSpyObj('formatService',[
67+
'getFormat'
68+
]);
69+
mockFormat = jasmine.createSpyObj('format', [
70+
'format'
71+
]);
72+
mockFormatService.getFormat.andReturn(mockFormat);
73+
6174
mockTimeSystems = [];
6275
});
6376

64-
function getListener(name) {
65-
return mockTimeConductor.on.calls.filter(function (call) {
66-
return call.args[0] === name;
77+
function getListener(target, event) {
78+
return target.calls.filter(function (call) {
79+
return call.args[0] === event;
6780
})[0].args[1];
6881
}
6982

70-
describe("", function () {
71-
beforeEach(function () {
72-
controller = new TimeConductorController(
73-
mockScope,
74-
mockWindow,
75-
mockTimeConductor,
76-
mockConductorViewService,
77-
mockTimeSystems
78-
);
79-
});
80-
81-
});
82-
8383
describe("when time conductor state changes", function () {
8484
var mockFormat;
8585
var mockDeltaFormat;
@@ -119,25 +119,26 @@ define(['./TimeConductorController'], function (TimeConductorController) {
119119
controller = new TimeConductorController(
120120
mockScope,
121121
mockWindow,
122-
mockTimeConductor,
122+
{conductor: mockTimeConductor},
123123
mockConductorViewService,
124-
mockTimeSystems
124+
mockTimeSystems,
125+
mockFormatService
125126
);
126127

127-
tsListener = getListener("timeSystem");
128+
tsListener = getListener(mockTimeConductor.on, "timeSystem");
128129
});
129130

130131
it("listens for changes to conductor state", function () {
131132
expect(mockTimeConductor.on).toHaveBeenCalledWith("timeSystem", controller.changeTimeSystem);
132-
expect(mockTimeConductor.on).toHaveBeenCalledWith("bounds", controller.setFormFromBounds);
133+
expect(mockTimeConductor.on).toHaveBeenCalledWith("bounds", controller.changeBounds);
133134
});
134135

135136
it("deregisters conductor listens when scope is destroyed", function () {
136137
expect(mockScope.$on).toHaveBeenCalledWith("$destroy", controller.destroy);
137138

138139
controller.destroy();
139140
expect(mockTimeConductor.off).toHaveBeenCalledWith("timeSystem", controller.changeTimeSystem);
140-
expect(mockTimeConductor.off).toHaveBeenCalledWith("bounds", controller.setFormFromBounds);
141+
expect(mockTimeConductor.off).toHaveBeenCalledWith("bounds", controller.changeBounds);
141142
});
142143

143144
it("when time system changes, sets time system on scope", function () {
@@ -151,14 +152,44 @@ define(['./TimeConductorController'], function (TimeConductorController) {
151152
});
152153

153154
it("when time system changes, sets defaults on scope", function () {
154-
expect(tsListener).toBeDefined();
155+
mockDefaults.zoom = {
156+
min: 100,
157+
max: 10
158+
};
159+
mockTimeConductor.timeSystem.andReturn(timeSystem);
155160
tsListener(timeSystem);
156161

157162
expect(mockScope.boundsModel.start).toEqual(defaultBounds.start);
158163
expect(mockScope.boundsModel.end).toEqual(defaultBounds.end);
159164

160165
expect(mockScope.boundsModel.startDelta).toEqual(defaultDeltas.start);
161166
expect(mockScope.boundsModel.endDelta).toEqual(defaultDeltas.end);
167+
168+
expect(mockScope.timeSystemModel.minZoom).toBe(mockDefaults.zoom.min);
169+
expect(mockScope.timeSystemModel.maxZoom).toBe(mockDefaults.zoom.max);
170+
});
171+
172+
it("when bounds change, sets the correct zoom slider value", function() {
173+
var bounds = {
174+
start: 0,
175+
end: 50
176+
};
177+
mockDefaults.zoom = {
178+
min: 100,
179+
max: 0
180+
};
181+
182+
function exponentializer (rawValue){
183+
return 1 - Math.pow(rawValue, 1 / 4);
184+
}
185+
186+
mockTimeConductor.timeSystem.andReturn(timeSystem);
187+
//Set zoom defaults
188+
tsListener(timeSystem);
189+
190+
controller.changeBounds(bounds);
191+
expect(controller.currentZoom).toEqual(exponentializer(0.5));
192+
162193
});
163194

164195
it("when bounds change, sets them on scope", function () {
@@ -167,7 +198,7 @@ define(['./TimeConductorController'], function (TimeConductorController) {
167198
end: 2
168199
};
169200

170-
var boundsListener = getListener("bounds");
201+
var boundsListener = getListener(mockTimeConductor.on, "bounds");
171202
expect(boundsListener).toBeDefined();
172203
boundsListener(bounds);
173204

@@ -225,9 +256,10 @@ define(['./TimeConductorController'], function (TimeConductorController) {
225256
controller = new TimeConductorController(
226257
mockScope,
227258
mockWindow,
228-
mockTimeConductor,
259+
{conductor: mockTimeConductor},
229260
mockConductorViewService,
230-
mockTimeSystemConstructors
261+
mockTimeSystemConstructors,
262+
mockFormatService
231263
);
232264

233265
mockConductorViewService.availableTimeSystems.andReturn(mockTimeSystems);
@@ -240,9 +272,10 @@ define(['./TimeConductorController'], function (TimeConductorController) {
240272
controller = new TimeConductorController(
241273
mockScope,
242274
mockWindow,
243-
mockTimeConductor,
275+
{conductor: mockTimeConductor},
244276
mockConductorViewService,
245-
mockTimeSystemConstructors
277+
mockTimeSystemConstructors,
278+
mockFormatService
246279
);
247280

248281
mockConductorViewService.availableTimeSystems.andReturn(mockTimeSystems);
@@ -264,9 +297,10 @@ define(['./TimeConductorController'], function (TimeConductorController) {
264297
controller = new TimeConductorController(
265298
mockScope,
266299
mockWindow,
267-
mockTimeConductor,
300+
{conductor: mockTimeConductor},
268301
mockConductorViewService,
269-
mockTimeSystemConstructors
302+
mockTimeSystemConstructors,
303+
mockFormatService
270304
);
271305

272306
controller.updateBoundsFromForm(formModel);
@@ -286,9 +320,10 @@ define(['./TimeConductorController'], function (TimeConductorController) {
286320
controller = new TimeConductorController(
287321
mockScope,
288322
mockWindow,
289-
mockTimeConductor,
323+
{conductor: mockTimeConductor},
290324
mockConductorViewService,
291-
mockTimeSystemConstructors
325+
mockTimeSystemConstructors,
326+
mockFormatService
292327
);
293328

294329
controller.updateDeltasFromForm(formModel);
@@ -321,14 +356,35 @@ define(['./TimeConductorController'], function (TimeConductorController) {
321356
controller = new TimeConductorController(
322357
mockScope,
323358
mockWindow,
324-
mockTimeConductor,
359+
{conductor: mockTimeConductor},
325360
mockConductorViewService,
326-
mockTimeSystems
361+
mockTimeSystems,
362+
mockFormatService
327363
);
328364

329365
controller.selectTimeSystemByKey('testTimeSystem');
330366
expect(mockTimeConductor.timeSystem).toHaveBeenCalledWith(timeSystem, defaultBounds);
331367
});
368+
369+
it("updates form bounds during pan events", function() {
370+
var testBounds = {
371+
start: 10,
372+
end: 20
373+
};
374+
375+
expect(controller.$scope.boundsModel.start).not.toBe(testBounds.start);
376+
expect(controller.$scope.boundsModel.end).not.toBe(testBounds.end);
377+
378+
// use registered CB instead
379+
// controller.onPan(testBounds);
380+
expect(controller.conductorViewService.on).toHaveBeenCalledWith("pan",
381+
controller.onPan);
382+
383+
getListener(controller.conductorViewService.on, "pan")(testBounds);
384+
385+
expect(controller.$scope.boundsModel.start).toBe(testBounds.start);
386+
expect(controller.$scope.boundsModel.end).toBe(testBounds.end);
387+
});
332388
});
333389

334390
});

platform/features/conductor-v2/conductor/src/ui/TimeConductorViewServiceSpec.js

+6-6
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ define(['./TimeConductorViewService'], function (TimeConductorViewService) {
8787

8888
it("At a minimum supports fixed mode", function () {
8989
var mockTimeSystems = [mockConstructor(basicTimeSystem)];
90-
viewService = new TimeConductorViewService(mockTimeConductor, mockTimeSystems);
90+
viewService = new TimeConductorViewService({conductor: mockTimeConductor}, mockTimeSystems);
9191

9292
var availableModes = viewService.availableModes();
9393
expect(availableModes.fixed).toBeDefined();
@@ -102,7 +102,7 @@ define(['./TimeConductorViewService'], function (TimeConductorViewService) {
102102
};
103103
tickingTimeSystem.tickSources.andReturn([mockRealtimeTickSource]);
104104

105-
viewService = new TimeConductorViewService(mockTimeConductor, mockTimeSystems);
105+
viewService = new TimeConductorViewService({conductor: mockTimeConductor}, mockTimeSystems);
106106

107107
var availableModes = viewService.availableModes();
108108
expect(availableModes.realtime).toBeDefined();
@@ -117,7 +117,7 @@ define(['./TimeConductorViewService'], function (TimeConductorViewService) {
117117
};
118118
tickingTimeSystem.tickSources.andReturn([mockLADTickSource]);
119119

120-
viewService = new TimeConductorViewService(mockTimeConductor, mockTimeSystems);
120+
viewService = new TimeConductorViewService({conductor: mockTimeConductor}, mockTimeSystems);
121121

122122
var availableModes = viewService.availableModes();
123123
expect(availableModes.lad).toBeDefined();
@@ -132,7 +132,7 @@ define(['./TimeConductorViewService'], function (TimeConductorViewService) {
132132
"destroy"
133133
]);
134134

135-
viewService = new TimeConductorViewService(mockTimeConductor, mockTimeSystems);
135+
viewService = new TimeConductorViewService({conductor: mockTimeConductor}, mockTimeSystems);
136136
viewService.currentMode = oldMode;
137137
viewService.mode('fixed');
138138
expect(oldMode.destroy).toHaveBeenCalled();
@@ -149,7 +149,7 @@ define(['./TimeConductorViewService'], function (TimeConductorViewService) {
149149
};
150150
tickingTimeSystem.tickSources.andReturn([mockRealtimeTickSource]);
151151

152-
viewService = new TimeConductorViewService(mockTimeConductor, mockTimeSystems);
152+
viewService = new TimeConductorViewService({conductor: mockTimeConductor}, mockTimeSystems);
153153

154154
//Set time system to one known to support realtime mode
155155
mockTimeConductor.timeSystem.andReturn(tickingTimeSystem);
@@ -169,7 +169,7 @@ define(['./TimeConductorViewService'], function (TimeConductorViewService) {
169169
};
170170
tickingTimeSystem.tickSources.andReturn([mockRealtimeTickSource]);
171171

172-
viewService = new TimeConductorViewService(mockTimeConductor, mockTimeSystems);
172+
viewService = new TimeConductorViewService({conductor: mockTimeConductor}, mockTimeSystems);
173173

174174
//Set time system to one known to not support realtime mode
175175
mockTimeConductor.timeSystem.andReturn(basicTimeSystem);

platform/features/conductor-v2/conductor/src/ui/TimeOfInterestControllerSpec.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222

2323
define(['./TimeOfInterestController'], function (TimeOfInterestController) {
2424

25-
ddescribe("The time of interest controller", function () {
25+
describe("The time of interest controller", function () {
2626
var controller;
2727
var mockScope;
2828
var mockConductor;

platform/features/plot/test/PlotControllerSpec.js

+13-2
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,8 @@ define(
4040
mockDomainObject,
4141
mockSeries,
4242
mockStatusCapability,
43-
controller;
43+
controller,
44+
mockConductor;
4445

4546
function bind(method, thisObj) {
4647
return function () {
@@ -120,13 +121,23 @@ define(
120121
mockHandle.getRangeValue.andReturn(42);
121122
mockScope.domainObject = mockDomainObject;
122123

124+
mockConductor = jasmine.createSpyObj('conductor', [
125+
'on',
126+
'off',
127+
'bounds',
128+
'timeSystem',
129+
'timeOfInterest'
130+
]);
131+
123132
controller = new PlotController(
124133
mockScope,
125134
mockElement,
126135
mockExportImageService,
127136
mockFormatter,
128137
mockHandler,
129-
mockThrottle
138+
mockThrottle,
139+
undefined,
140+
{conductor: mockConductor}
130141
);
131142
});
132143

platform/features/table/test/controllers/RealtimeTableControllerSpec.js

+13-2
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ define(
3636
mockConfiguration,
3737
watches,
3838
mockTableRow,
39+
mockConductor,
3940
controller;
4041

4142
function promise(value) {
@@ -106,7 +107,8 @@ define(
106107
'getDatum',
107108
'promiseTelemetryObjects',
108109
'getTelemetryObjects',
109-
'request'
110+
'request',
111+
'getMetadata'
110112
]);
111113

112114
// Arbitrary array with non-zero length, contents are not
@@ -115,13 +117,22 @@ define(
115117
mockTelemetryHandle.promiseTelemetryObjects.andReturn(promise(undefined));
116118
mockTelemetryHandle.getDatum.andReturn({});
117119
mockTelemetryHandle.request.andReturn(promise(undefined));
120+
mockTelemetryHandle.getMetadata.andReturn([]);
118121

119122
mockTelemetryHandler = jasmine.createSpyObj('telemetryHandler', [
120123
'handle'
121124
]);
122125
mockTelemetryHandler.handle.andReturn(mockTelemetryHandle);
123126

124-
controller = new TableController(mockScope, mockTelemetryHandler, mockTelemetryFormatter);
127+
mockConductor = jasmine.createSpyObj('conductor', [
128+
'on',
129+
'off',
130+
'bounds',
131+
'timeSystem',
132+
'timeOfInterest'
133+
]);
134+
135+
controller = new TableController(mockScope, mockTelemetryHandler, mockTelemetryFormatter, {conductor: mockConductor});
125136
controller.table = mockTable;
126137
controller.handle = mockTelemetryHandle;
127138
});

0 commit comments

Comments
 (0)