Commit 958d868a authored by Stan Hu's avatar Stan Hu

Fix time-dependent spec failures in user_sees_error_details_spec.rb

These features specs were failing because they were using fixed dates
and attempting to use Timecop, but Timecop doesn't apply to the browser.
When the date crossed the 8th of the month, the Timeago text "1 month
ago" advanced to "2 months ago".

To fix this issue, we now adjust the test data to use a timestamp
relative to today's date, eliminating the need for Timecop.

Closes https://gitlab.com/gitlab-org/gitlab/issues/202678
parent f8d712d5
...@@ -11,17 +11,25 @@ shared_context 'sentry error tracking context feature' do ...@@ -11,17 +11,25 @@ shared_context 'sentry error tracking context feature' do
let_it_be(:event_response) { JSON.parse(event_response_body) } let_it_be(:event_response) { JSON.parse(event_response_body) }
let(:sentry_api_urls) { Sentry::ApiUrls.new(project_error_tracking_settings.api_url) } let(:sentry_api_urls) { Sentry::ApiUrls.new(project_error_tracking_settings.api_url) }
let(:issue_id) { issue_response['id'] } let(:issue_id) { issue_response['id'] }
let(:issue_seen) { 1.year.ago.utc }
let(:formatted_issue_seen) { issue_seen.strftime("%Y-%m-%d %I:%M:%S%p %Z") }
let(:date_received) { 1.month.ago.utc }
before do before do
request_headers = { 'Authorization' => 'Bearer access_token_123', 'Content-Type' => 'application/json' } request_headers = { 'Authorization' => 'Bearer access_token_123', 'Content-Type' => 'application/json' }
response_headers = { 'Content-Type' => 'application/json' } response_headers = { 'Content-Type' => 'application/json' }
issue_response['firstSeen'] = issue_seen.iso8601(6)
issue_response['lastSeen'] = issue_seen.iso8601(6)
event_response['dateReceived'] = date_received.iso8601(6)
issue_url = sentry_api_urls.issue_url(issue_id).to_s issue_url = sentry_api_urls.issue_url(issue_id).to_s
stub_request(:get, issue_url) stub_request(:get, issue_url)
.with(headers: request_headers) .with(headers: request_headers)
.to_return(status: 200, body: issue_response_body, headers: response_headers) .to_return(status: 200, body: issue_response.to_json, headers: response_headers)
event_url = sentry_api_urls.issue_latest_event_url(issue_id).to_s event_url = sentry_api_urls.issue_latest_event_url(issue_id).to_s
stub_request(:get, event_url) stub_request(:get, event_url)
.with(headers: request_headers) .with(headers: request_headers)
.to_return(status: 200, body: event_response_body, headers: response_headers) .to_return(status: 200, body: event_response.to_json, headers: response_headers)
end end
end end
...@@ -24,7 +24,6 @@ shared_examples 'error tracking index page' do ...@@ -24,7 +24,6 @@ shared_examples 'error tracking index page' do
end end
it 'renders the error index data' do it 'renders the error index data' do
Timecop.freeze(2020, 01, 01, 12, 0, 0) do
within('div.error-list') do within('div.error-list') do
expect(page).to have_content(issues_response[0]['title']) expect(page).to have_content(issues_response[0]['title'])
expect(page).to have_content(issues_response[0]['count'].to_s) expect(page).to have_content(issues_response[0]['count'].to_s)
...@@ -32,7 +31,6 @@ shared_examples 'error tracking index page' do ...@@ -32,7 +31,6 @@ shared_examples 'error tracking index page' do
expect(page).to have_content('1 year ago') expect(page).to have_content('1 year ago')
end end
end end
end
end end
shared_examples 'expanded stack trace context' do |selected_line: nil, expected_line: 1| shared_examples 'expanded stack trace context' do |selected_line: nil, expected_line: 1|
...@@ -54,18 +52,16 @@ shared_examples 'error tracking show page' do ...@@ -54,18 +52,16 @@ shared_examples 'error tracking show page' do
it 'renders the error details' do it 'renders the error details' do
release_short_version = issue_response['firstRelease']['shortVersion'] release_short_version = issue_response['firstRelease']['shortVersion']
Timecop.freeze(2020, 01, 01, 12, 0, 0) do
expect(page).to have_content('1 month ago by raven.scripts.runner in main') expect(page).to have_content('1 month ago by raven.scripts.runner in main')
expect(page).to have_content(issue_response['metadata']['title']) expect(page).to have_content(issue_response['metadata']['title'])
expect(page).to have_content('level: error') expect(page).to have_content('level: error')
expect(page).to have_content('Error Details') expect(page).to have_content('Error Details')
expect(page).to have_content('GitLab Issue: https://gitlab.com/gitlab-org/gitlab/issues/1') expect(page).to have_content('GitLab Issue: https://gitlab.com/gitlab-org/gitlab/issues/1')
expect(page).to have_content("Sentry event: https://sentrytest.gitlab.com/sentry-org/sentry-project/issues/#{issue_id}") expect(page).to have_content("Sentry event: https://sentrytest.gitlab.com/sentry-org/sentry-project/issues/#{issue_id}")
expect(page).to have_content("First seen: 1 year ago (2018-11-06 9:19:55PM UTC) Release: #{release_short_version}") expect(page).to have_content("First seen: 1 year ago (#{formatted_issue_seen}) Release: #{release_short_version}")
expect(page).to have_content('Events: 1') expect(page).to have_content('Events: 1')
expect(page).to have_content('Users: 0') expect(page).to have_content('Users: 0')
end end
end
it 'renders the stack trace heading' do it 'renders the stack trace heading' do
expect(page).to have_content('Stack trace') expect(page).to have_content('Stack trace')
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment