BigW Consortium Gitlab

time_tracking_shared_examples.rb 2.32 KB
Newer Older
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 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79
shared_examples 'issuable time tracker' do
  it 'renders the sidebar component empty state' do
    page.within '.time-tracking-no-tracking-pane' do
      expect(page).to have_content 'No estimate or time spent'
    end
  end

  it 'updates the sidebar component when estimate is added' do
    submit_time('/estimate 3w 1d 1h')

    page.within '.time-tracking-estimate-only-pane' do
      expect(page).to have_content '3w 1d 1h'
    end
  end

  it 'updates the sidebar component when spent is added' do
    submit_time('/spend 3w 1d 1h')

    page.within '.time-tracking-spend-only-pane' do
      expect(page).to have_content '3w 1d 1h'
    end
  end

  it 'shows the comparison when estimate and spent are added' do
    submit_time('/estimate 3w 1d 1h')
    submit_time('/spend 3w 1d 1h')

    page.within '.time-tracking-comparison-pane' do
      expect(page).to have_content '3w 1d 1h'
    end
  end

  it 'updates the sidebar component when estimate is removed' do
    submit_time('/estimate 3w 1d 1h')
    submit_time('/remove_estimate')

    page.within '#issuable-time-tracker' do
      expect(page).to have_content 'No estimate or time spent'
    end
  end

  it 'updates the sidebar component when spent is removed' do
    submit_time('/spend 3w 1d 1h')
    submit_time('/remove_time_spent')

    page.within '#issuable-time-tracker' do
      expect(page).to have_content 'No estimate or time spent'
    end
  end

  it 'shows the help state when icon is clicked' do
    page.within '#issuable-time-tracker' do
      find('.help-button').click
      expect(page).to have_content 'Track time with slash commands'
      expect(page).to have_content 'Learn more'
    end
  end

  it 'hides the help state when close icon is clicked' do
    page.within '#issuable-time-tracker' do
      find('.help-button').click
      find('.close-help-button').click

      expect(page).not_to have_content 'Track time with slash commands'
      expect(page).not_to have_content 'Learn more'
    end
  end

  it 'displays the correct help url' do
    page.within '#issuable-time-tracker' do
      find('.help-button').click

      expect(find_link('Learn more')[:href]).to have_content('/help/workflow/time_tracking.md')
    end
  end
end

def submit_time(slash_command)
  fill_in 'note[note]', with: slash_command
Douwe Maan committed
80
  find('.js-comment-submit-button').trigger('click')
81 82
  wait_for_ajax
end