From 88380a04c629d21d39e59a6066cec63b8db89126 Mon Sep 17 00:00:00 2001 From: Phil Hughes Date: Wed, 26 Apr 2017 10:19:09 +0100 Subject: Added specs for JS method to switch views --- spec/javascripts/blob/viewer/index_spec.js | 41 ++++++++++++++++++++++++++++-- 1 file changed, 39 insertions(+), 2 deletions(-) diff --git a/spec/javascripts/blob/viewer/index_spec.js b/spec/javascripts/blob/viewer/index_spec.js index 2031898cf54..13f122b68b2 100644 --- a/spec/javascripts/blob/viewer/index_spec.js +++ b/spec/javascripts/blob/viewer/index_spec.js @@ -1,14 +1,15 @@ /* eslint-disable no-new */ import BlobViewer from '~/blob/viewer/index'; -fdescribe('Blob viewer', () => { +describe('Blob viewer', () => { + let blob; preloadFixtures('blob/show.html.raw'); beforeEach(() => { loadFixtures('blob/show.html.raw'); $('#modal-upload-blob').remove(); - new BlobViewer(); + blob = new BlobViewer(); spyOn($, 'ajax').and.callFake(() => { const d = $.Deferred(); @@ -121,4 +122,40 @@ fdescribe('Blob viewer', () => { }); }); }); + + describe('switchToViewer', () => { + it('removes active class from old viewer button', () => { + blob.switchToViewer('simple'); + + expect( + document.querySelector('.js-blob-viewer-switch-btn.active[data-viewer="rich"]'), + ).toBeNull(); + }); + + it('adds active class to new viewer button', () => { + const simpleBtn = document.querySelector('.js-blob-viewer-switch-btn[data-viewer="simple"]'); + + spyOn(simpleBtn, 'blur'); + + blob.switchToViewer('simple'); + + expect( + simpleBtn.classList.contains('active'), + ).toBeTruthy(); + expect(simpleBtn.blur).toHaveBeenCalled(); + }); + + it('sends AJAX request when switching to simple view', () => { + blob.switchToViewer('simple'); + + expect($.ajax).toHaveBeenCalled(); + }); + + it('does not send AJAX request when switching to rich view', () => { + blob.switchToViewer('simple'); + blob.switchToViewer('rich'); + + expect($.ajax.calls.count()).toBe(1); + }); + }); }); -- cgit v1.2.1