summaryrefslogtreecommitdiff
path: root/spec/features/groups/group_name_toggle_spec.rb
blob: 8a1d415c4f1fdb2718fa7658edf97f10a9e3e0f7 (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
require 'spec_helper'

feature 'Group name toggle', feature: true, js: true do
  let(:group) { create(:group) }
  let(:nested_group_1) { create(:group, parent: group) }
  let(:nested_group_2) { create(:group, parent: nested_group_1) }
  let(:nested_group_3) { create(:group, parent: nested_group_2) }

  SMALL_SCREEN = 300

  before do
    login_as :user
  end

  it 'is not present if enough horizontal space' do
    visit group_path(nested_group_3)

    container_width = page.evaluate_script("$('.title-container')[0].offsetWidth")
    title_width = page.evaluate_script("$('.title')[0].offsetWidth")

    expect(container_width).to be > title_width
    expect(page).not_to have_css('.group-name-toggle')
  end

  it 'is present if the title is longer than the container' do
    visit group_path(nested_group_3)
    title_width = page.evaluate_script("$('.title')[0].offsetWidth")

    page_height = page.current_window.size[1]
    page.current_window.resize_to(SMALL_SCREEN, page_height)

    find('.group-name-toggle')
    container_width = page.evaluate_script("$('.title-container')[0].offsetWidth")

    expect(title_width).to be > container_width
  end

  it 'should show the full group namespace when toggled' do
    page_height = page.current_window.size[1]
    page.current_window.resize_to(SMALL_SCREEN, page_height)
    visit group_path(nested_group_3)

    expect(page).not_to have_content(group.name)
    expect(page).to have_css('.group-path.hidable', visible: false)

    click_button '...'

    expect(page).to have_content(group.name)
    expect(page).to have_css('.group-path.hidable', visible: true)
  end
end