summaryrefslogtreecommitdiff
path: root/spec/javascripts/right_sidebar_spec.js
blob: 70c65c3c6229c4f79ad439cb97b4ebb1e49bdc75 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64

/*= require right_sidebar */

/*= require jquery */

/*= require jquery.cookie */
var $aside, $icon, $labelsIcon, $page, $toggle, assertSidebarState;

this.sidebar = null;

$aside = null;

$toggle = null;

$icon = null;

$page = null;

$labelsIcon = null;

assertSidebarState = function(state) {
  var shouldBeCollapsed, shouldBeExpanded;
  shouldBeExpanded = state === 'expanded';
  shouldBeCollapsed = state === 'collapsed';
  expect($aside.hasClass('right-sidebar-expanded')).toBe(shouldBeExpanded);
  expect($page.hasClass('right-sidebar-expanded')).toBe(shouldBeExpanded);
  expect($icon.hasClass('fa-angle-double-right')).toBe(shouldBeExpanded);
  expect($aside.hasClass('right-sidebar-collapsed')).toBe(shouldBeCollapsed);
  expect($page.hasClass('right-sidebar-collapsed')).toBe(shouldBeCollapsed);
  return expect($icon.hasClass('fa-angle-double-left')).toBe(shouldBeCollapsed);
};

describe('RightSidebar', function() {
  fixture.preload('right_sidebar.html');
  beforeEach(function() {
    fixture.load('right_sidebar.html');
    this.sidebar = new Sidebar;
    $aside = $('.right-sidebar');
    $page = $('.page-with-sidebar');
    $icon = $aside.find('i');
    $toggle = $aside.find('.js-sidebar-toggle');
    return $labelsIcon = $aside.find('.sidebar-collapsed-icon');
  });
  it('should expand the sidebar when arrow is clicked', function() {
    $toggle.click();
    return assertSidebarState('expanded');
  });
  it('should collapse the sidebar when arrow is clicked', function() {
    $toggle.click();
    assertSidebarState('expanded');
    $toggle.click();
    return assertSidebarState('collapsed');
  });
  it('should float over the page and when sidebar icons clicked', function() {
    $labelsIcon.click();
    return assertSidebarState('expanded');
  });
  return it('should collapse when the icon arrow clicked while it is floating on page', function() {
    $labelsIcon.click();
    assertSidebarState('expanded');
    $toggle.click();
    return assertSidebarState('collapsed');
  });
});