mirror of
https://github.com/nasa/openmct.git
synced 2025-02-22 10:11:06 +00:00
[Time Conductor] Test broadcast throttling
This commit is contained in:
parent
431c74ca49
commit
669b434c36
@ -47,7 +47,8 @@ define(
|
|||||||
];
|
];
|
||||||
|
|
||||||
describe("ConductorRepresenter", function () {
|
describe("ConductorRepresenter", function () {
|
||||||
var mockConductorService,
|
var mockThrottle,
|
||||||
|
mockConductorService,
|
||||||
mockCompile,
|
mockCompile,
|
||||||
testViews,
|
testViews,
|
||||||
mockScope,
|
mockScope,
|
||||||
@ -67,6 +68,7 @@ define(
|
|||||||
}
|
}
|
||||||
|
|
||||||
beforeEach(function () {
|
beforeEach(function () {
|
||||||
|
mockThrottle = jasmine.createSpy('throttle');
|
||||||
mockConductorService = jasmine.createSpyObj(
|
mockConductorService = jasmine.createSpyObj(
|
||||||
'conductorService',
|
'conductorService',
|
||||||
['getConductor']
|
['getConductor']
|
||||||
@ -88,8 +90,12 @@ define(
|
|||||||
mockCompile.andReturn(mockCompiledTemplate);
|
mockCompile.andReturn(mockCompiledTemplate);
|
||||||
mockCompiledTemplate.andReturn(mockNewElement);
|
mockCompiledTemplate.andReturn(mockNewElement);
|
||||||
mockScope.$new.andReturn(mockNewScope);
|
mockScope.$new.andReturn(mockNewScope);
|
||||||
|
mockThrottle.andCallFake(function (fn) {
|
||||||
|
return fn;
|
||||||
|
});
|
||||||
|
|
||||||
representer = new ConductorRepresenter(
|
representer = new ConductorRepresenter(
|
||||||
|
mockThrottle,
|
||||||
mockConductorService,
|
mockConductorService,
|
||||||
mockCompile,
|
mockCompile,
|
||||||
testViews,
|
testViews,
|
||||||
@ -154,6 +160,56 @@ define(
|
|||||||
expect(mockConductor.displayEnd).toHaveBeenCalledWith(1984);
|
expect(mockConductor.displayEnd).toHaveBeenCalledWith(1984);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
describe("when bounds are changing", function () {
|
||||||
|
var mockThrottledFn = jasmine.createSpy('throttledFn'),
|
||||||
|
testBounds;
|
||||||
|
|
||||||
|
function fireThrottledFn() {
|
||||||
|
mockThrottle.mostRecentCall.args[0]();
|
||||||
|
}
|
||||||
|
|
||||||
|
beforeEach(function () {
|
||||||
|
mockThrottle.andReturn(mockThrottledFn);
|
||||||
|
representer.represent(testViews[0], {});
|
||||||
|
testBounds = { start: 0, end: 1000 };
|
||||||
|
mockNewScope.conductor.inner = testBounds;
|
||||||
|
mockConductor.displayStart.andCallFake(function () {
|
||||||
|
return testBounds.start;
|
||||||
|
});
|
||||||
|
mockConductor.displayEnd.andCallFake(function () {
|
||||||
|
return testBounds.end;
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
it("does not broadcast while bounds are changing", function () {
|
||||||
|
expect(mockScope.$broadcast).not.toHaveBeenCalled();
|
||||||
|
testBounds.start = 100;
|
||||||
|
fireWatch(mockNewScope, 'conductor.inner.start', testBounds.start);
|
||||||
|
testBounds.end = 500;
|
||||||
|
fireWatch(mockNewScope, 'conductor.inner.end', testBounds.end);
|
||||||
|
fireThrottledFn();
|
||||||
|
testBounds.start = 200;
|
||||||
|
fireWatch(mockNewScope, 'conductor.inner.start', testBounds.start);
|
||||||
|
testBounds.end = 400;
|
||||||
|
fireWatch(mockNewScope, 'conductor.inner.end', testBounds.end);
|
||||||
|
fireThrottledFn();
|
||||||
|
expect(mockScope.$broadcast).not.toHaveBeenCalled();
|
||||||
|
});
|
||||||
|
|
||||||
|
it("does broadcast when bounds have stabilized", function () {
|
||||||
|
expect(mockScope.$broadcast).not.toHaveBeenCalled();
|
||||||
|
testBounds.start = 100;
|
||||||
|
fireWatch(mockNewScope, 'conductor.inner.start', testBounds.start);
|
||||||
|
testBounds.end = 500;
|
||||||
|
fireWatch(mockNewScope, 'conductor.inner.end', testBounds.end);
|
||||||
|
fireThrottledFn();
|
||||||
|
fireWatch(mockNewScope, 'conductor.inner.start', testBounds.start);
|
||||||
|
fireWatch(mockNewScope, 'conductor.inner.end', testBounds.end);
|
||||||
|
fireThrottledFn();
|
||||||
|
expect(mockScope.$broadcast).toHaveBeenCalled();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user