import OverlayControl from '../../helix/javascript/array_summary/overlay_control'; import $ from 'jquery'; import 'jasmine-jquery'; describe('Overlay controls', function () { let htmlContent = '
' + '
'; let legendContent = '
'; let visualizationSpy; let subject; beforeEach(function () { setFixtures(htmlContent + legendContent); visualizationSpy = jasmine.createSpyObj('arrayVisualization', ['setOverlay']); subject = new OverlayControl(visualizationSpy); subject.init($('#toggle_buttons'), $('#legend_container')); }); describe("the default state", function () { it("sets the anchors overlay", function () { expect(visualizationSpy.setOverlay).toHaveBeenCalledWith('ANCHOR'); expect($('#anchor_overlay')).toHaveClass('overlay_active'); }); it("unselects the other buttons", function () { expect($('#all_overlay')).not.toHaveClass('overlay_active'); }); it("hides the 'all' legend", function () { expect($('img.all_mode')).toBeHidden(); }); it("shows the 'anchors' legend", function () { expect($('img.anchors_mode')).not.toBeHidden(); }); }); describe("clicking the all button", function () { beforeEach(function () { $('#all_overlay').click(); }); it("sets the all overlay", function () { expect(visualizationSpy.setOverlay).toHaveBeenCalledWith('ALL'); expect($('#all_overlay')).toHaveClass('overlay_active'); }); it("unselects the other buttons", function () { expect($('#anchor_overlay')).not.toHaveClass('overlay_active'); }); it("shows the 'all' legend", function () { expect($('img.all_mode')).not.toBeHidden(); }); it("hides the 'anchors' legend", function () { expect($('img.anchors_mode')).toBeHidden(); }); }); describe("clicking the anchor button", function () { beforeEach(function () { $('#all_overlay').click(); visualizationSpy.setOverlay.calls.reset(); $('#anchor_overlay').click(); }); it("sets the anchors overlay", function () { expect(visualizationSpy.setOverlay).toHaveBeenCalledWith('ANCHOR'); expect($('#anchor_overlay')).toHaveClass('overlay_active'); }); it("unselects the other buttons", function () { expect($('#all_overlay')).not.toHaveClass('overlay_active'); }); it("hides the 'all' legend", function () { expect($('img.all_mode')).toBeHidden(); }); it("shows the 'anchors' legend", function () { expect($('img.anchors_mode')).not.toBeHidden(); }); }); });