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
let_it_be(:event_response) { JSON.parse(event_response_body) }
let(:sentry_api_urls) { Sentry::ApiUrls.new(project_error_tracking_settings.api_url) }
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
request_headers = { 'Authorization' => 'Bearer access_token_123', '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
stub_request(:get, issue_url)
.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
stub_request(:get, event_url)
.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
......@@ -24,7 +24,6 @@ shared_examples 'error tracking index page' do
end
it 'renders the error index data' do
Timecop.freeze(2020, 01, 01, 12, 0, 0) do
within('div.error-list') do
expect(page).to have_content(issues_response[0]['title'])
expect(page).to have_content(issues_response[0]['count'].to_s)
......@@ -32,7 +31,6 @@ shared_examples 'error tracking index page' do
expect(page).to have_content('1 year ago')
end
end
end
end
shared_examples 'expanded stack trace context' do |selected_line: nil, expected_line: 1|
......@@ -54,18 +52,16 @@ shared_examples 'error tracking show page' do
it 'renders the error details' do
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(issue_response['metadata']['title'])
expect(page).to have_content('level: error')
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("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('Users: 0')
end
end
it 'renders the stack trace heading' do
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