Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'spec/support/shared_examples/quick_actions/issuable/time_tracking_quick_action_shared_examples.rb')
-rw-r--r--spec/support/shared_examples/quick_actions/issuable/time_tracking_quick_action_shared_examples.rb54
1 files changed, 44 insertions, 10 deletions
diff --git a/spec/support/shared_examples/quick_actions/issuable/time_tracking_quick_action_shared_examples.rb b/spec/support/shared_examples/quick_actions/issuable/time_tracking_quick_action_shared_examples.rb
index f414500f202..18304951e41 100644
--- a/spec/support/shared_examples/quick_actions/issuable/time_tracking_quick_action_shared_examples.rb
+++ b/spec/support/shared_examples/quick_actions/issuable/time_tracking_quick_action_shared_examples.rb
@@ -1,6 +1,8 @@
# frozen_string_literal: true
RSpec.shared_examples 'issuable time tracker' do |issuable_type|
+ let_it_be(:time_tracker_selector) { '[data-testid="time-tracker"]' }
+
before do
project.add_maintainer(maintainer)
gitlab_sign_in(maintainer)
@@ -12,6 +14,14 @@ RSpec.shared_examples 'issuable time tracker' do |issuable_type|
wait_for_requests
end
+ def open_time_tracking_report
+ page.within time_tracker_selector do
+ click_link 'Time tracking report'
+
+ wait_for_requests
+ end
+ end
+
it 'renders the sidebar component empty state' do
page.within '[data-testid="noTrackingPane"]' do
expect(page).to have_content 'No estimate or time spent'
@@ -50,7 +60,7 @@ RSpec.shared_examples 'issuable time tracker' do |issuable_type|
submit_time('/estimate 3w 1d 1h')
submit_time('/remove_estimate')
- page.within '.time-tracking-component-wrap' do
+ page.within time_tracker_selector do
expect(page).to have_content 'No estimate or time spent'
end
end
@@ -59,13 +69,13 @@ RSpec.shared_examples 'issuable time tracker' do |issuable_type|
submit_time('/spend 3w 1d 1h')
submit_time('/remove_time_spent')
- page.within '.time-tracking-component-wrap' do
+ page.within time_tracker_selector 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 '.time-tracking-component-wrap' do
+ page.within time_tracker_selector do
find('[data-testid="helpButton"]').click
expect(page).to have_content 'Track time with quick actions'
expect(page).to have_content 'Learn more'
@@ -78,11 +88,7 @@ RSpec.shared_examples 'issuable time tracker' do |issuable_type|
wait_for_requests
- page.within '.time-tracking-component-wrap' do
- click_link 'Time tracking report'
-
- wait_for_requests
- end
+ open_time_tracking_report
page.within '#time-tracking-report' do
expect(find('tbody')).to have_content maintainer.name
@@ -90,8 +96,36 @@ RSpec.shared_examples 'issuable time tracker' do |issuable_type|
end
end
+ it 'removes time log when delete is clicked in time tracking report' do
+ submit_time('/estimate 1w')
+ submit_time('/spend 1d')
+ submit_time('/spend 3d')
+
+ wait_for_requests
+
+ open_time_tracking_report
+
+ page.within '#time-tracking-report tbody tr:nth-child(2)' do
+ click_button test_id: 'deleteButton'
+
+ wait_for_requests
+ end
+
+ # Assert that 2nd row was removed
+ expect(all('#time-tracking-report tbody tr').length).to eq(1)
+ expect(find('#time-tracking-report tbody')).not_to have_content('3d')
+
+ # Assert that summary line was updated
+ expect(find('#time-tracking-report tfoot')).to have_content('1d', exact: true)
+
+ # Assert that the time tracking widget was reactively updated
+ page.within '[data-testid="timeTrackingComparisonPane"]' do
+ expect(page).to have_content '1d'
+ end
+ end
+
it 'hides the help state when close icon is clicked' do
- page.within '.time-tracking-component-wrap' do
+ page.within time_tracker_selector do
find('[data-testid="helpButton"]').click
find('[data-testid="closeHelpButton"]').click
@@ -101,7 +135,7 @@ RSpec.shared_examples 'issuable time tracker' do |issuable_type|
end
it 'displays the correct help url' do
- page.within '.time-tracking-component-wrap' do
+ page.within time_tracker_selector do
find('[data-testid="helpButton"]').click
expect(find_link('Learn more')[:href]).to have_content('/help/user/project/time_tracking.md')