Commit f7112776 authored by Robert Speicher's avatar Robert Speicher

Merge branch 'ee-32004-use-timecop-safe-mode' into 'master'

[EE] Enable Timecop safe mode

See merge request !2664
parents 0a365bda f9aaeee6
......@@ -13,8 +13,11 @@ describe 'Issue Boards', :js do
let!(:list) { create(:list, board: board, label: development, position: 0) }
let(:card) { find('.board:nth-child(2)').first('.card') }
around do |example|
Timecop.freeze { example.run }
end
before do
Timecop.freeze
stub_licensed_features(multiple_issue_assignees: true)
project.team << [user, :master]
......@@ -26,10 +29,6 @@ describe 'Issue Boards', :js do
wait_for_requests
end
after do
Timecop.return
end
context 'assignee' do
it 'updates the issues assignee' do
click_card(card)
......
......@@ -15,11 +15,13 @@ describe 'Issue Boards', js: true do
let!(:list) { create(:list, board: board, label: development, position: 0) }
let(:card) { find('.board:nth-child(2)').first('.card') }
around do |example|
Timecop.freeze { example.run }
end
before do
Timecop.freeze
stub_licensed_features(multiple_issue_assignees: false)
project.team << [user, :master]
project.add_master(user)
sign_in(user)
......@@ -27,10 +29,6 @@ describe 'Issue Boards', js: true do
wait_for_requests
end
after do
Timecop.return
end
it 'shows sidebar when clicking issue' do
click_card(card)
......
......@@ -5,14 +5,12 @@ feature 'Group milestones', :js do
let!(:project) { create(:project_empty_repo, group: group) }
let(:user) { create(:group_member, :master, user: create(:user), group: group ).user }
before do
Timecop.freeze
sign_in(user)
around do |example|
Timecop.freeze { example.run }
end
after do
Timecop.return
before do
sign_in(user)
end
context 'create a milestone' do
......
......@@ -8,16 +8,12 @@ describe Gitlab::BackgroundMigration::UpdateAuthorizedKeysFileSince do
subject { background_migration.perform(cutoff_datetime) }
context 'when an SSH key was created after the cutoff datetime' do
before do
Timecop.freeze
end
after do
Timecop.return
around do |example|
Timecop.travel(1.day.from_now) { example.run }
end
context 'when an SSH key was created after the cutoff datetime' do
before do
Timecop.travel 1.day.from_now
@key = create(:key)
end
......@@ -38,16 +34,12 @@ describe Gitlab::BackgroundMigration::UpdateAuthorizedKeysFileSince do
subject { background_migration.add_keys_since(cutoff_datetime) }
before do
Timecop.freeze
end
after do
Timecop.return
around do |example|
Timecop.travel(1.day.from_now) { example.run }
end
context 'when an SSH key was created after the cutoff datetime' do
before do
Timecop.travel 1.day.from_now
@key = create(:key)
create(:key) # other key
end
......
......@@ -175,11 +175,7 @@ describe Gitlab::Git::Storage::CircuitBreaker, clean_gitlab_redis_shared_state:
describe '#track_storage_inaccessible' do
around do |example|
Timecop.freeze
example.run
Timecop.return
Timecop.freeze { example.run }
end
it 'records the failure time in redis' do
......
......@@ -4,10 +4,6 @@ describe Gitlab::Metrics::RequestsRackMiddleware do
let(:app) { double('app') }
subject { described_class.new(app) }
around do |example|
Timecop.freeze { example.run }
end
describe '#call' do
let(:status) { 100 }
let(:env) { { 'REQUEST_METHOD' => 'GET' } }
......@@ -28,16 +24,14 @@ describe Gitlab::Metrics::RequestsRackMiddleware do
subject.call(env)
end
it 'measures execution time' do
execution_time = 10
allow(app).to receive(:call) do |*args|
Timecop.freeze(execution_time.seconds)
[200, nil, nil]
RSpec::Matchers.define :a_positive_execution_time do
match { |actual| actual > 0 }
end
expect(described_class).to receive_message_chain(:http_request_duration_seconds, :observe).with({ status: 200, method: 'get' }, execution_time)
it 'measures execution time' do
expect(described_class).to receive_message_chain(:http_request_duration_seconds, :observe).with({ status: 200, method: 'get' }, a_positive_execution_time)
subject.call(env)
Timecop.scale(3600) { subject.call(env) }
end
end
......
......@@ -21,21 +21,17 @@ describe UpdateAuthorizedKeysFile, :migration do
end
context 'there are keys created before and after the cutoff datetime' do
before do
Timecop.freeze
end
after do
Timecop.return
end
before do
@cutoff_datetime = UpdateAuthorizedKeysFile::DATETIME_9_3_0_RELEASED
@keys = []
Timecop.travel(@cutoff_datetime - 1.day)
Timecop.travel(@cutoff_datetime - 1.day) do
2.times { @keys << create(:key) } # 2 keys before cutoff
Timecop.travel(@cutoff_datetime + 1.day)
end
Timecop.travel(@cutoff_datetime + 1.day) do
2.times { @keys << create(:key) } # 2 keys after cutoff
end
end
it 'adds the keys created after the cutoff datetime to the authorized_keys file' do
Gitlab::Shell.new.remove_all_keys
......
......@@ -18,15 +18,17 @@ describe Burndown do
}
end
around do |example|
Timecop.travel(due_date) do
example.run
end
end
before do
project.add_master(user)
build_sample
end
after do
Timecop.return
end
subject { described_class.new(milestone).to_json }
it "generates an array with date, issue count and weight" do
......@@ -52,10 +54,10 @@ describe Burndown do
end
it "it counts until today if milestone due date > Date.today" do
Timecop.travel(milestone.due_date - 1.day)
Timecop.travel(milestone.due_date - 1.day) do
expect(JSON.parse(subject).last[0]).to eq(Time.now.strftime("%Y-%m-%d"))
end
end
it "sets attribute accurate to true" do
burndown = described_class.new(milestone)
......@@ -104,8 +106,7 @@ describe Burndown do
next if day.even?
count = day * 4
Timecop.travel(date)
Timecop.travel(date) do
# Create issues
issues = create_list(:issue, count, issue_params)
......@@ -116,7 +117,6 @@ describe Burndown do
# Reopen issues
closed.slice(0..count / 4).each(&:reopen)
end
Timecop.travel(due_date)
end
end
end
......@@ -57,18 +57,14 @@ describe Issue do
end
describe '#closed_at' do
after do
Timecop.return
end
let!(:now) { Timecop.freeze(Time.now) }
it 'sets closed_at to Time.now when issue is closed' do
issue = create(:issue, state: 'opened')
expect(issue.closed_at).to be_nil
issue.close
expect(issue.closed_at).to eq(now)
expect(issue.closed_at).to be_present
end
end
......
......@@ -88,12 +88,8 @@ describe RemoteMirror do
context '#sync' do
let(:remote_mirror) { create(:project, :repository, :remote_mirror).remote_mirrors.first }
before do
Timecop.freeze(Time.now)
end
after do
Timecop.return
around do |example|
Timecop.freeze { example.run }
end
context 'repository mirrors not licensed' do
......@@ -145,13 +141,12 @@ describe RemoteMirror do
let(:remote_mirror) { create(:project, :repository, :remote_mirror).remote_mirrors.first }
let(:timestamp) { Time.now - 5.minutes }
before do
Timecop.freeze(Time.now)
remote_mirror.update_attributes(last_update_started_at: Time.now)
around do |example|
Timecop.freeze { example.run }
end
after do
Timecop.return
before do
remote_mirror.update_attributes(last_update_started_at: Time.now)
end
context 'when remote mirror does not have status failed' do
......
......@@ -229,13 +229,12 @@ describe API::Internal do
describe "POST /internal/allowed", :clean_gitlab_redis_shared_state do
context "access granted" do
before do
project.team << [user, :developer]
Timecop.freeze
around do |example|
Timecop.freeze { example.run }
end
after do
Timecop.return
before do
project.team << [user, :developer]
end
context 'with env passed as a JSON' do
......
......@@ -13,12 +13,8 @@ describe AnalyticsBuildEntity do
subject { entity.as_json }
before do
Timecop.freeze
end
after do
Timecop.return
around do |example|
Timecop.freeze { example.run }
end
it 'contains the URL' do
......
......@@ -83,6 +83,7 @@ RSpec.configure do |config|
end
config.before(:suite) do
Timecop.safe_mode = true
TestEnv.init
end
......
......@@ -6,12 +6,8 @@ describe RepositoryUpdateRemoteMirrorWorker do
let(:remote_mirror) { create(:project, :repository, :remote_mirror).remote_mirrors.first }
let(:scheduled_time) { Time.now - 5.minutes }
before do
Timecop.freeze(Time.now)
end
after do
Timecop.return
around do |example|
Timecop.freeze(Time.now) { example.run }
end
describe '#perform' do
......
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