Skip to content

Replace Timecop with ActiveSupport::Testing::TimeHelpers

Summary

Move away from Timecop to ActiveSupport::Testing::TimeHelpers.

We can do what is in Timecop with ActiveSupport::Testing::TimeHelpers

Timecop ActiveSUpport::Testing::TimeHelpers
Timecop.freeze(&block) freeze_time(&block)
Timecop.travel(time, &block) travel_to(time, &block)

Improvements

Timecop gem has not been maintained, while ActiveSupport::Testing::TimeHelpers is part of Rails core.

Risks

Minimum risks as all Timecop features are available in ActiveSupport::Testing::TimeHelpers

Involved components

Multiple spec files

Targets
    Occurrences of 'Timecop.' in Project
Found Occurrences  (524 usages found)
    Unclassified occurrence  (523 usages found)
        gitlab  (523 usages found)
            db/fixtures/development  (1 usage found)
                17_cycle_analytics.rb  (1 usage found)
                    132 Timecop.travel start_time + rand(5).days do
            ee/db/fixtures/development  (26 usages found)
                20_burndown.rb  (4 usages found)
                    10 Timecop.travel 10.days.ago
                    28 Timecop.return
                    64 Timecop.travel(date)
                    75 Timecop.return
                30_customizable_cycle_analytics.rb  (10 usages found)
                    90 Timecop.travel random_duration_in_hours.hours.ago
                    93 Timecop.travel random_duration_in_hours.hours.from_now
                    99 Timecop.travel random_duration_in_hours.hours.ago
                    102 Timecop.travel random_duration_in_hours.hours.from_now
                    109 Timecop.travel(issue.created_at + random_duration_in_hours.hours)
                    116 Timecop.travel(random_duration_in_hours.hours.from_now)
                    127 Timecop.travel random_duration_in_hours.hours.ago
                    130 Timecop.travel random_duration_in_hours.hours.from_now
                    135 Timecop.travel random_duration_in_hours.hours.ago
                    138 Timecop.travel random_duration_in_hours.hours.from_now
                90_productivity_analytics.rb  (12 usages found)
                    15 Timecop.travel 90.days.ago
                    19 Timecop.travel 10.days.from_now
                    23 Timecop.travel 10.days.from_now
                    27 Timecop.travel 10.days.from_now
                    31 Timecop.travel 10.days.from_now
                    34 Timecop.travel 10.days.from_now
                    54 Timecop.travel rand(10).days.from_now do
                    62 Timecop.travel 12.hours.from_now do
                    81 Timecop.travel 12.hours.from_now do
                    110 Timecop.travel issue.created_at do
                    118 Timecop.travel merge_request.created_at + rand(5).days do
                    131 Timecop.travel rand(15).days.from_now do
            ee/spec/controllers/projects/security  (2 usages found)
                network_policies_controller_spec.rb  (2 usages found)
                    40 Timecop.freeze do
                    81 Timecop.freeze do
            ee/spec/features/admin  (1 usage found)
                admin_reset_pipeline_minutes_spec.rb  (1 usage found)
                    21 Timecop.freeze(time) do
            ee/spec/features/analytics/cycle_analytics  (1 usage found)
                cycle_analytics_spec.rb  (1 usage found)
                    280 Timecop.freeze { example.run }
            ee/spec/features/boards  (1 usage found)
                sidebar_spec.rb  (1 usage found)
                    25 Timecop.freeze { example.run }
            ee/spec/features/projects  (4 usages found)
                mirror_spec.rb  (2 usages found)
                    29 Timecop.freeze(timestamp) do
                    45 Timecop.freeze(timestamp) do
                new_project_spec.rb  (2 usages found)
                    386 Timecop.freeze(GroupsWithTemplatesFinder::CUT_OFF_DATE - 1.day) do
                    413 Timecop.freeze(GroupsWithTemplatesFinder::CUT_OFF_DATE + 1.day) do
            ee/spec/features/projects/services  (1 usage found)
                prometheus_custom_metrics_spec.rb  (1 usage found)
                    13 Timecop.freeze { example.run }
            ee/spec/finders  (9 usages found)
                groups_with_templates_finder_spec.rb  (7 usages found)
                    40 Timecop.freeze(described_class::CUT_OFF_DATE - 1.day) do
                    46 Timecop.freeze(described_class::CUT_OFF_DATE + 1.day) do
                    58 Timecop.freeze(described_class::CUT_OFF_DATE + 1.day) do
                    88 Timecop.freeze(described_class::CUT_OFF_DATE - 1.day) do
                    94 Timecop.freeze(described_class::CUT_OFF_DATE + 1.day) do
                    106 Timecop.freeze(described_class::CUT_OFF_DATE + 1.day) do
                    112 Timecop.freeze(described_class::CUT_OFF_DATE + 1.day) do
                productivity_analytics_finder_spec.rb  (2 usages found)
                    38 Timecop.freeze do
                    54 Timecop.freeze { example.run }
            ee/spec/frontend/fixtures  (3 usages found)
                analytics.rb  (3 usages found)
                    102 Timecop.travel(5.days.ago) do
                    110 Timecop.travel(2.days.ago) do
                    120 Timecop.freeze { example.run }
            ee/spec/helpers  (3 usages found)
                license_helper_spec.rb  (3 usages found)
                    60 Timecop.freeze(today) do
                    80 Timecop.freeze(today) do
                    101 Timecop.freeze(today) do
            ee/spec/lib/analytics  (2 usages found)
                group_activity_calculator_spec.rb  (1 usage found)
                    77 Timecop.freeze(100.days.ago) do
                productivity_analytics_request_params_spec.rb  (1 usage found)
                    71 Timecop.freeze { example.run }
            ee/spec/lib/atlassian/jira_connect  (1 usage found)
                client_spec.rb  (1 usage found)
                    11 Timecop.freeze { example.run }
            ee/spec/lib/ee/gitlab  (1 usage found)
                usage_data_spec.rb  (1 usage found)
                    661 Timecop.travel(n.days.ago) do
            ee/spec/lib/gitlab  (1 usage found)
                conan_token_spec.rb  (1 usage found)
                    77 Timecop.freeze do
            ee/spec/lib/gitlab/analytics/cycle_analytics  (9 usages found)
                data_collector_spec.rb  (8 usages found)
                    9 Timecop.freeze { example.run }
                    26 resource1 = Timecop.travel(Time.new(2019, 3, 5)) do
                    30 Timecop.travel(Time.new(2019, 3, 15)) do
                    35 resource2 = Timecop.travel(Time.new(2019, 3, 5)) do
                    39 Timecop.travel(Time.new(2019, 3, 10)) do
                    44 resource3 = Timecop.travel(Time.new(2019, 3, 5)) do
                    48 Timecop.travel(Time.new(2019, 3, 20)) do
                    421 Timecop.travel(Time.new(2019, 6, 1)) do
                request_params_spec.rb  (1 usage found)
                    42 Timecop.travel '2019-03-01' do
            ee/spec/lib/gitlab/analytics/type_of_work  (1 usage found)
                tasks_by_type_spec.rb  (1 usage found)
                    30 Timecop.freeze { example.run }
            ee/spec/lib/gitlab/auth/group_saml  (1 usage found)
                sso_enforcer_spec.rb  (1 usage found)
                    27 Timecop.freeze do
            ee/spec/lib/gitlab/database/load_balancing  (1 usage found)
                host_spec.rb  (1 usage found)
                    198 Timecop.freeze do
            ee/spec/lib/gitlab/geo  (17 usages found)
                base_request_spec.rb  (1 usage found)
                    28 Timecop.freeze do
                event_gap_tracking_spec.rb  (11 usages found)
                    22 Timecop.travel(50.minutes.ago) do
                    27 Timecop.travel(40.minutes.ago) do
                    82 Timecop.freeze do
                    94 Timecop.travel(12.minutes) do
                    104 Timecop.travel(62.minutes) do
                    119 Timecop.travel(13.minutes.ago) do
                    128 Timecop.travel(12.minutes.ago) do
                    148 Timecop.freeze do
                    156 Timecop.freeze do
                    168 Timecop.freeze do
                    173 Timecop.travel(2.minutes) do
                git_push_http_spec.rb  (2 usages found)
                    27 Timecop.freeze do
                    30 Timecop.travel(described_class::EXPIRES_IN + 20.seconds) do
                jwt_request_decoder_spec.rb  (3 usages found)
                    40 Timecop.travel(30.seconds.ago) { expect(subject.decode).to eq(data) }
                    46 Timecop.travel(2.minutes) { expect { subject.decode }.to raise_error(Gitlab::Geo::InvalidSignatureTimeError) }
                    52 Timecop.travel(2.minutes.ago) { expect { subject.decode }.to raise_error(Gitlab::Geo::InvalidSignatureTimeError) }
            ee/spec/lib/gitlab/geo/log_cursor  (5 usages found)
                daemon_spec.rb  (5 usages found)
                    83 Timecop.freeze do
                    86 Timecop.travel(described_class::MAX_ERROR_DURATION + 1.second) do
                    97 Timecop.freeze do
                    101 Timecop.travel(described_class::MAX_ERROR_DURATION + 1.second) do
                    305 Timecop.travel(12.minutes) do
            ee/spec/lib/gitlab/geo/log_cursor/events  (2 usages found)
                repository_updated_event_spec.rb  (2 usages found)
                    59 Timecop.freeze do
                    89 Timecop.freeze do
            ee/spec/lib/gitlab/geo/oauth  (2 usages found)
                login_state_spec.rb  (2 usages found)
                    12 Timecop.freeze(timestamp) { example.run }
                    76 Timecop.freeze(timestamp + 125) do
            ee/spec/lib/gitlab/insights/finders  (1 usage found)
                issuable_finder_spec.rb  (1 usage found)
                    9 Timecop.freeze(Time.utc(2019, 3, 5)) { example.run }
            ee/spec/lib/gitlab/prometheus/queries  (3 usages found)
                additional_metrics_deployment_query_spec.rb  (1 usage found)
                    7 Timecop.freeze(Time.local(2008, 9, 1, 12, 0, 0)) { example.run }
                additional_metrics_environment_query_spec.rb  (1 usage found)
                    7 Timecop.freeze { example.run }
                cluster_query_spec.rb  (1 usage found)
                    11 Timecop.freeze { example.run }
            ee/spec/lib/gitlab/vulnerabilities  (13 usages found)
                history_cache_spec.rb  (3 usages found)
                    13 Timecop.freeze(today) do
                    29 Timecop.freeze(today) do
                    38 Timecop.freeze(today) do
                history_spec.rb  (6 usages found)
                    12 Timecop.freeze(today) do
                    37 Timecop.freeze(today) do
                    45 Timecop.freeze(today - 1) do
                    48 Timecop.freeze(today - 4) do
                    54 Timecop.freeze(today) do
                    66 Timecop.freeze(today) do
                summary_cache_spec.rb  (2 usages found)
                    26 Timecop.freeze do
                    34 Timecop.freeze do
                summary_spec.rb  (2 usages found)
                    31 Timecop.freeze do
                    59 Timecop.freeze do
            ee/spec/migrations  (6 usages found)
                schedule_fix_orphan_promoted_issues_spec.rb  (1 usage found)
                    18 Timecop.freeze do
                schedule_merge_request_any_approval_rule_migration_spec.rb  (2 usages found)
                    38 Timecop.freeze do
                    61 Timecop.freeze do
                schedule_project_any_approval_rule_migration_spec.rb  (2 usages found)
                    33 Timecop.freeze do
                    56 Timecop.freeze do
                set_resolved_state_on_vulnerabilities_spec.rb  (1 usage found)
                    136 Timecop.freeze do
            ee/spec/models  (25 usages found)
                broadcast_message_spec.rb  (4 usages found)
                    19 Timecop.travel(3.weeks) do
                    36 Timecop.travel(3.weeks) do
                    52 Timecop.travel(20.seconds) do
                    58 Timecop.travel(40.seconds) do
                burndown_spec.rb  (4 usages found)
                    16 Timecop.travel(due_date) do
                    71 Timecop.travel(milestone.due_date - 1.day) do
                    223 Timecop.freeze(milestone.due_date) do
                    246 Timecop.travel(date) do
                gitlab_subscription_spec.rb  (1 usage found)
                    12 Timecop.freeze(Date.today + 30) do
                group_spec.rb  (2 usages found)
                    482 Timecop.freeze(GroupsWithTemplatesFinder::CUT_OFF_DATE - 1.day) do
                    491 Timecop.freeze(GroupsWithTemplatesFinder::CUT_OFF_DATE + 1.day) do
                issuables_analytics_spec.rb  (1 usage found)
                    16 Timecop.freeze(Time.now) do
                merge_train_spec.rb  (1 usage found)
                    543 Timecop.freeze(1.hour.from_now) do
                productivity_analytics_spec.rb  (1 usage found)
                    121 Timecop.freeze do
                project_feature_usage_spec.rb  (3 usages found)
                    28 Timecop.freeze do
                    37 Timecop.freeze do
                    51 Timecop.freeze(1.hour.from_now) do
                project_import_state_spec.rb  (4 usages found)
                    76 Timecop.freeze(Time.now) do
                    439 Timecop.freeze(timestamp) do
                    469 Timecop.freeze(timestamp) do
                    481 Timecop.freeze(timestamp) do
                project_spec.rb  (3 usages found)
                    248 Timecop.freeze do
                    263 Timecop.freeze do
                    277 Timecop.freeze do
                user_spec.rb  (1 usage found)
                    473 Timecop.freeze(GroupsWithTemplatesFinder::CUT_OFF_DATE + 1.day) do
            ee/spec/models/geo  (3 usages found)
                project_registry_spec.rb  (3 usages found)
                    397 Timecop.freeze do
                    456 Timecop.freeze do
                    551 Timecop.freeze do
            ee/spec/models/vulnerabilities  (1 usage found)
                export_spec.rb  (1 usage found)
                    31 Timecop.freeze { example.run }
            ee/spec/presenters/ee/projects/prometheus  (1 usage found)
                alert_presenter_spec.rb  (1 usage found)
                    29 Timecop.freeze(starts_at) { example.run }
            ee/spec/requests  (1 usage found)
                rack_attack_spec.rb  (1 usage found)
                    58 Timecop.travel(period.from_now) do
            ee/spec/requests/api  (4 usages found)
                conan_packages_spec.rb  (1 usage found)
                    145 Timecop.freeze do
                vulnerabilities_spec.rb  (3 usages found)
                    195 Timecop.freeze do
                    282 Timecop.freeze do
                    339 Timecop.freeze do
            ee/spec/requests/api/v3  (2 usages found)
                github_spec.rb  (2 usages found)
                    408 Timecop.freeze do
                    418 Timecop.freeze do
            ee/spec/services/ee/audit_events  (3 usages found)
                bulk_insert_service_spec.rb  (1 usage found)
                    40 Timecop.freeze(timestamp) { service.execute }
                repository_push_audit_event_service_spec.rb  (2 usages found)
                    39 Timecop.freeze(timestamp) do
                    50 Timecop.freeze(timestamp) do
            ee/spec/services/geo  (6 usages found)
                file_download_service_spec.rb  (6 usages found)
                    193 Timecop.freeze do
                    222 Timecop.freeze do
                    314 Timecop.freeze do
                    325 Timecop.freeze do
                    353 Timecop.freeze do
                    364 Timecop.freeze do
            ee/spec/services/vulnerabilities  (4 usages found)
                confirm_service_spec.rb  (1 usage found)
                    25 Timecop.freeze do
                dismiss_service_spec.rb  (2 usages found)
                    25 Timecop.freeze do
                    39 Timecop.freeze do
                resolve_service_spec.rb  (1 usage found)
                    25 Timecop.freeze do
            ee/spec/support/shared_contexts/lib/gitlab/insights/reducers  (1 usage found)
                reducers_shared_contexts.rb  (1 usage found)
                    5 Timecop.freeze(Time.utc(2019, 5, 5)) { example.run }
            ee/spec/support/shared_examples/controllers/analytics/cycle_analytics  (1 usage found)
                shared_stage_shared_examples.rb  (1 usage found)
                    110 Timecop.travel '2019-04-01' do
            ee/spec/workers  (3 usages found)
                sync_seat_link_worker_spec.rb  (3 usages found)
                    32 Timecop.travel(utc_time) do
                    51 Timecop.travel(utc_time) do
                    72 Timecop.travel(utc_time.beginning_of_day) do
            lib/gitlab  (1 usage found)
                gitaly_client.rb  (1 usage found)
                    233 # timecop.
            qa/spec/support  (35 usages found)
                repeater_spec.rb  (35 usages found)
                    30 Timecop.freeze do
                    32 Timecop.travel(2)
                    43 Timecop.freeze do
                    48 Timecop.travel(1)
                    62 Timecop.freeze(time_start) do
                    77 Timecop.freeze do
                    89 Timecop.freeze do
                    92 Timecop.travel(1.year)
                    109 Timecop.freeze do
                    124 Timecop.freeze do
                    127 Timecop.travel(time_start + loop_counter)
                    139 Timecop.freeze do
                    142 Timecop.travel(time_start + loop_counter)
                    155 Timecop.freeze do
                    158 Timecop.travel(2)
                    169 Timecop.freeze(time_start) do
                    173 Timecop.travel(time_start + loop_counter)
                    187 Timecop.freeze(time_start) do
                    191 Timecop.travel(time_start + loop_counter)
                    208 Timecop.freeze do
                    211 Timecop.travel(time_start + loop_counter)
                    223 Timecop.freeze do
                    226 Timecop.travel(time_start + loop_counter)
                    241 Timecop.freeze do
                    243 Timecop.travel(2)
                    260 Timecop.freeze do
                    270 Timecop.freeze do
                    286 Timecop.freeze do
                    289 Timecop.travel(time_start + loop_counter)
                    311 Timecop.freeze do
                    313 Timecop.travel(2)
                    334 Timecop.freeze(time_start) do
                    337 Timecop.travel(time_start + @loop_counter)
                    362 Timecop.freeze do
                    365 Timecop.travel(time_start + loop_counter)
            spec  (1 usage found)
                spec_helper.rb  (1 usage found)
                    153 Timecop.safe_mode = true
            spec/controllers  (2 usages found)
                application_controller_spec.rb  (2 usages found)
                    431 Timecop.freeze(3.hours.from_now) do
                    437 Timecop.freeze(1.hour.from_now) do
            spec/controllers/admin  (1 usage found)
                sessions_controller_spec.rb  (1 usage found)
                    112 Timecop.freeze(Gitlab::Auth::CurrentUserMode::ADMIN_MODE_REQUESTED_GRACE_PERIOD.from_now) do
            spec/features  (1 usage found)
                calendar_spec.rb  (1 usage found)
                    183 Timecop.freeze(Date.yesterday) do
            spec/features/admin/admin_mode  (4 usages found)
                login_spec.rb  (4 usages found)
                    50 Timecop.travel(30.seconds.from_now) do
                    60 Timecop.travel(30.seconds.from_now) do
                    69 Timecop.travel(30.seconds.from_now) do
                    165 Timecop.travel(30.seconds.from_now) do
            spec/features/boards  (1 usage found)
                sidebar_spec.rb  (1 usage found)
                    26 Timecop.freeze { example.run }
            spec/features/dashboard  (2 usages found)
                issuables_counter_spec.rb  (2 usages found)
                    26 Timecop.travel(3.minutes.from_now) do
                    42 Timecop.travel(3.minutes.from_now) do
            spec/features/groups  (1 usage found)
                milestone_spec.rb  (1 usage found)
                    11 Timecop.freeze { example.run }
            spec/features/profiles  (1 usage found)
                active_sessions_spec.rb  (1 usage found)
                    15 Timecop.freeze(Time.zone.parse('2018-03-12 09:06')) do
            spec/features/projects  (2 usages found)
                branches_spec.rb  (2 usages found)
                    24 Timecop.freeze((threshold + i).ago) { create_file(message: "a commit in stale-#{i}", branch_name: "stale-#{i}") }
                    28 Timecop.freeze((threshold - i).ago) { create_file(message: "a commit in active-#{i}", branch_name: "active-#{i}") }
            spec/features/projects/environments  (1 usage found)
                environment_metrics_spec.rb  (1 usage found)
                    25 Timecop.freeze(current_time) { example.run }
            spec/features/projects/members  (1 usage found)
                invite_group_spec.rb  (1 usage found)
                    113 Timecop.freeze { example.run }
            spec/features/users  (4 usages found)
                active_sessions_spec.rb  (2 usages found)
                    8 Timecop.freeze(now) do
                    17 Timecop.freeze(now + 1.minute) do
                login_spec.rb  (1 usage found)
                    506 Timecop.freeze do
                terms_spec.rb  (1 usage found)
                    87 Timecop.travel 2.minutes do
            spec/lib  (3 usages found)
                feature_spec.rb  (2 usages found)
                    206 Timecop.travel 2.minutes do
                    216 Timecop.travel 61.minutes do
                forever_spec.rb  (1 usage found)
                    10 Timecop.travel(Date.new(2999, 12, 31)) do
            spec/lib/backup  (2 usages found)
                files_spec.rb  (1 usage found)
                    31 Timecop.freeze(timestamp) { example.run }
                repository_spec.rb  (1 usage found)
                    44 Timecop.freeze(timestamp) { example.run }
            spec/lib/banzai/filter  (1 usage found)
                inline_grafana_metrics_filter_spec.rb  (1 usage found)
                    35 Timecop.freeze(Time.utc(2019, 3, 17, 13, 10)) { example.run }
            spec/lib/gitlab  (12 usages found)
                anonymous_session_spec.rb  (1 usage found)
                    25 Timecop.freeze do
                app_text_logger_spec.rb  (1 usage found)
                    20 Timecop.freeze do
                instrumentation_helper_spec.rb  (1 usage found)
                    71 Timecop.freeze(Time.iso8601(time_now)) do
                lfs_token_spec.rb  (1 usage found)
                    107 Timecop.freeze(Time.now + 1865) do
                log_timestamp_formatter_spec.rb  (1 usage found)
                    11 Timecop.freeze(Time.now) do
                performance_bar_spec.rb  (2 usages found)
                    21 Timecop.travel 2.minutes do
                    31 Timecop.travel 6.minutes do
                prometheus_client_spec.rb  (4 usages found)
                    139 Timecop.freeze { example.run }
                    178 Timecop.freeze { example.run }
                    209 Timecop.freeze { example.run }
                    308 Timecop.freeze { example.run }
                tracking_spec.rb  (1 usage found)
                    57 Timecop.freeze(timestamp) { example.run }
            spec/lib/gitlab/analytics/cycle_analytics  (2 usages found)
                base_query_builder_spec.rb  (1 usage found)
                    25 Timecop.freeze { example.run }
                records_fetcher_spec.rb  (1 usage found)
                    7 Timecop.freeze { example.run }
            spec/lib/gitlab/auth  (3 usages found)
                current_user_mode_spec.rb  (1 usage found)
                    124 Timecop.freeze(Gitlab::Auth::CurrentUserMode::MAX_ADMIN_MODE_TIME.from_now) do
                unique_ips_limiter_spec.rb  (2 usages found)
                    25 Timecop.freeze do
                    29 Timecop.travel(Time.now.utc + described_class.config.unique_ips_limit_time_window) do
            spec/lib/gitlab/background_migration  (2 usages found)
                schedule_calculate_wiki_sizes_spec.rb  (2 usages found)
                    27 Timecop.freeze do
                    56 Timecop.freeze do
            spec/lib/gitlab/bitbucket_import  (1 usage found)
                importer_spec.rb  (1 usage found)
                    310 Timecop.freeze(Time.now + 1.minute) do
            spec/lib/gitlab/checks  (3 usages found)
                timed_logger_spec.rb  (3 usages found)
                    22 Timecop.freeze(start + 30.seconds) do
                    31 Timecop.freeze(start + 50.seconds) do
                    43 Timecop.freeze(start + 30.seconds) do
            spec/lib/gitlab/ci  (7 usages found)
                cron_parser_spec.rb  (7 usages found)
                    84 Timecop.freeze(Time.utc(2017, 1, 1)) do
                    92 Timecop.freeze(Time.utc(2017, 6, 1)) do
                    119 Timecop.freeze(Time.utc(2017, 1, 1)) do
                    127 Timecop.freeze(Time.utc(2017, 6, 1)) do
                    142 Timecop.freeze(Time.utc(2017, 1, 1)) do
                    150 Timecop.freeze(Time.utc(2017, 6, 1)) do
                    164 Timecop.freeze(Time.utc(2020, 1, 1)) do
            spec/lib/gitlab/cycle_analytics  (45 usages found)
                code_stage_spec.rb  (2 usages found)
                    37 Timecop.freeze { example.run }
                    79 Timecop.freeze { example.run }
                group_stage_summary_spec.rb  (16 usages found)
                    16 Timecop.freeze(5.days.ago) { create(:issue, project: project) }
                    17 Timecop.freeze(5.days.ago) { create(:issue, project: project_2) }
                    18 Timecop.freeze(5.days.from_now) { create(:issue, project: project) }
                    19 Timecop.freeze(5.days.from_now) { create(:issue, project: project_2) }
                    28 Timecop.freeze(5.days.from_now) { create(:issue, project: create(:project, namespace: create(:group, parent: group))) }
                    38 Timecop.freeze(5.days.from_now) { create(:issue, project: create(:project, namespace: group)) }
                    59 Timecop.freeze(5.days.from_now) { create(:issue, project: create(:project, namespace: create(:group))) }
                    60 Timecop.freeze(5.days.from_now) { create(:issue, project: project) }
                    61 Timecop.freeze(5.days.from_now) { create(:issue, project: project_2) }
                    73 Timecop.freeze(5.days.ago) { create(:deployment, :success, project: project) }
                    74 Timecop.freeze(5.days.from_now) { create(:deployment, :success, project: project) }
                    75 Timecop.freeze(5.days.ago) { create(:deployment, :success, project: project_2) }
                    76 Timecop.freeze(5.days.from_now) { create(:deployment, :success, project: project_2) }
                    85 Timecop.freeze(5.days.from_now) do
                    97 Timecop.freeze(5.days.from_now) do
                    120 Timecop.freeze(5.days.from_now) do
                issue_stage_spec.rb  (3 usages found)
                    32 Timecop.freeze { example.run }
                    68 Timecop.freeze { example.run }
                    90 Timecop.freeze { example.run }
                plan_stage_spec.rb  (2 usages found)
                    32 Timecop.freeze { example.run }
                    70 Timecop.freeze { example.run }
                review_stage_spec.rb  (2 usages found)
                    30 Timecop.freeze { example.run }
                    73 Timecop.freeze { example.run }
                stage_summary_spec.rb  (16 usages found)
                    20 Timecop.freeze(5.days.ago) { create(:issue, project: project) }
                    21 Timecop.freeze(5.days.from_now) { create(:issue, project: project) }
                    27 Timecop.freeze(5.days.from_now) { create(:issue, project: create(:project)) }
                    34 Timecop.freeze(5.days.ago) { create(:issue, project: project) }
                    35 Timecop.freeze(5.days.from_now) { create(:issue, project: project) }
                    57 Timecop.freeze(5.days.ago) { create_commit("Test message", project, user, 'master') }
                    58 Timecop.freeze(5.days.from_now) { create_commit("Test message", project, user, 'master') }
                    64 Timecop.freeze(5.days.from_now) { create_commit("Test message", create(:project, :repository), user, 'master') }
                    70 Timecop.freeze(5.days.from_now) { create_commit("Test message", project, user, 'master', count: 100) }
                    77 Timecop.freeze(5.days.ago) { create_commit("Test message", project, user, 'master') }
                    78 Timecop.freeze(5.days.from_now) { create_commit("Test message", project, user, 'master') }
                    118 Timecop.freeze(5.days.ago) { create(:deployment, :success, project: project) }
                    119 Timecop.freeze(5.days.from_now) { create(:deployment, :success, project: project) }
                    125 Timecop.freeze(5.days.from_now) do
                    134 Timecop.freeze(5.days.ago) { create(:deployment, :success, project: project) }
                    135 Timecop.freeze(5.days.from_now) { create(:deployment, :success, project: project) }
                staging_stage_spec.rb  (2 usages found)
                    35 Timecop.freeze { example.run }
                    82 Timecop.freeze { example.run }
                test_stage_spec.rb  (1 usage found)
                    40 Timecop.freeze { example.run }
                usage_data_spec.rb  (1 usage found)
                    13 Timecop.freeze(current_time) do
            spec/lib/gitlab/database  (2 usages found)
                migration_helpers_spec.rb  (1 usage found)
                    1353 Timecop.freeze { example.run }
                obsolete_ignored_columns_spec.rb  (1 usage found)
                    46 Timecop.freeze(Testing::REMOVE_DATE) do
            spec/lib/gitlab/external_authorization  (7 usages found)
                access_spec.rb  (5 usages found)
                    10 Timecop.freeze do
                    22 Timecop.freeze do
                    73 Timecop.freeze do
                    121 Timecop.freeze do
                    132 Timecop.freeze do
                cache_spec.rb  (2 usages found)
                    25 Timecop.freeze do
                    41 Timecop.freeze do
            spec/lib/gitlab/git  (3 usages found)
                branch_spec.rb  (3 usages found)
                    87 let(:stale_sha) { Timecop.freeze(Gitlab::Git::Branch::STALE_BRANCH_THRESHOLD.ago - 5.days) { create_commit } }
                    88 let(:active_sha) { Timecop.freeze(Gitlab::Git::Branch::STALE_BRANCH_THRESHOLD.ago + 5.days) { create_commit } }
                    89 let(:future_sha) { Timecop.freeze(100.days.since) { create_commit } }
            spec/lib/gitlab/github_import/importer  (5 usages found)
                label_links_importer_spec.rb  (1 usage found)
                    41 Timecop.freeze do
                labels_importer_spec.rb  (2 usages found)
                    88 Timecop.freeze do
                    94 Timecop.freeze do
                pull_requests_importer_spec.rb  (1 usage found)
                    165 Timecop.freeze do
                repository_importer_spec.rb  (1 usage found)
                    264 Timecop.freeze do
            spec/lib/gitlab/grape_logging/loggers  (1 usage found)
                queue_duration_logger_spec.rb  (1 usage found)
                    29 Timecop.freeze(start_time) do
            spec/lib/gitlab/metrics  (2 usages found)
                method_call_spec.rb  (1 usage found)
                    33 Timecop.freeze do
                requests_rack_middleware_spec.rb  (1 usage found)
                    37 Timecop.scale(3600) { subject.call(env) }
            spec/lib/gitlab/metrics/samplers  (1 usage found)
                ruby_sampler_spec.rb  (1 usage found)
                    15 Timecop.freeze do
            spec/lib/gitlab/middleware  (1 usage found)
                rails_queue_duration_spec.rb  (1 usage found)
                    41 Timecop.freeze(Time.at(3)) do
            spec/lib/gitlab/omniauth_logging  (1 usage found)
                json_formatter_spec.rb  (1 usage found)
                    7 Timecop.freeze(Time.utc(2019, 12, 04, 9, 10, 11, 123456)) do
            spec/lib/gitlab/phabricator_import/cache  (1 usage found)
                map_spec.rb  (1 usage found)
                    53 Timecop.freeze { example.run }
            spec/lib/gitlab/prometheus/queries  (5 usages found)
                additional_metrics_deployment_query_spec.rb  (1 usage found)
                    7 Timecop.freeze(Time.local(2008, 9, 1, 12, 0, 0)) { example.run }
                additional_metrics_environment_query_spec.rb  (1 usage found)
                    7 Timecop.freeze { example.run }
                deployment_query_spec.rb  (1 usage found)
                    14 Timecop.freeze(time_without_subsecond_values) { example.run }
                validate_query_spec.rb  (2 usages found)
                    31 Timecop.freeze do
                    56 Timecop.freeze do
            spec/lib/gitlab/puma_logging  (1 usage found)
                json_formatter_spec.rb  (1 usage found)
                    7 Timecop.freeze( Time.utc(2019, 12, 04, 9, 10, 11, 123456)) do
            spec/lib/gitlab/sidekiq_logging  (8 usages found)
                structured_logger_spec.rb  (8 usages found)
                    77 Timecop.freeze(timestamp) do
                    88 Timecop.freeze(timestamp) do
                    103 Timecop.freeze(timestamp) do
                    119 Timecop.freeze(timestamp) do
                    130 Timecop.freeze(timestamp) do
                    148 Timecop.freeze(timestamp) do
                    176 Timecop.freeze(timestamp) do
                    234 Timecop.freeze(current_utc_time) do
            spec/lib/grafana  (3 usages found)
                time_window_spec.rb  (3 usages found)
                    10 Timecop.freeze(Time.utc(2019, 3, 17, 13, 10)) { example.run }
                    40 Timecop.freeze(Time.utc(2019, 3, 17, 13, 10)) { example.run }
                    85 Timecop.freeze(Time.utc(2019, 3, 17, 13, 10)) { example.run }
            spec/lib/json_web_token  (4 usages found)
                hmac_token_spec.rb  (4 usages found)
                    57 # Needs the ! so Timecop.freeze() is effective
                    63 Timecop.freeze(Time.now + 120) do
                    81 Timecop.freeze(Time.now + 1) do
                    90 Timecop.freeze(Time.now + 1) do
            spec/lib/rspec_flaky  (4 usages found)
                flaky_example_spec.rb  (2 usages found)
                    81 Timecop.freeze(now) { flaky_example.update_flakiness! }
                    88 Timecop.freeze(now) { flaky_example.update_flakiness! }
                listener_spec.rb  (2 usages found)
                    132 Timecop.freeze(now) do
                    159 Timecop.freeze(now) do
            spec/migrations  (34 usages found)
                20190924152703_migrate_issue_trackers_data_spec.rb  (1 usage found)
                    47 Timecop.freeze do
                20200122123016_backfill_project_settings_spec.rb  (1 usage found)
                    22 Timecop.freeze do
                20200130145430_reschedule_migrate_issue_trackers_data_spec.rb  (1 usage found)
                    48 Timecop.freeze do
                20200406102120_backfill_deployment_clusters_from_deployments_spec.rb  (1 usage found)
                    30 Timecop.freeze do
                enqueue_reset_merge_status_second_run_spec.rb  (1 usage found)
                    36 Timecop.freeze do
                enqueue_reset_merge_status_spec.rb  (1 usage found)
                    36 Timecop.freeze do
                fix_projects_without_project_feature_spec.rb  (1 usage found)
                    23 Timecop.freeze do
                fix_projects_without_prometheus_services_spec.rb  (1 usage found)
                    23 Timecop.freeze do
                fix_wrong_pages_access_level_spec.rb  (1 usage found)
                    32 Timecop.freeze do
                migrate_discussion_id_on_promoted_epics_spec.rb  (2 usages found)
                    56 Timecop.freeze do
                    72 Timecop.freeze do
                migrate_legacy_artifacts_to_job_artifacts_spec.rb  (2 usages found)
                    36 Timecop.freeze do
                    67 Timecop.freeze do
                reschedule_builds_stages_migration_spec.rb  (1 usage found)
                    29 Timecop.freeze do
                reschedule_commits_count_for_merge_request_diff_spec.rb  (1 usage found)
                    29 Timecop.freeze do
                schedule_fill_valid_time_for_pages_domain_certificates_spec.rb  (1 usage found)
                    25 Timecop.freeze do
                schedule_migrate_security_scans_spec.rb  (2 usages found)
                    43 Timecop.freeze do
                    60 Timecop.freeze do
                schedule_pages_metadata_migration_spec.rb  (1 usage found)
                    20 Timecop.freeze do
                schedule_populate_merge_request_assignees_table_spec.rb  (1 usage found)
                    34 Timecop.freeze do
                schedule_populate_user_highest_roles_table_spec.rb  (1 usage found)
                    35 Timecop.freeze do
                schedule_recalculate_project_authorizations_second_run_spec.rb  (1 usage found)
                    19 Timecop.freeze do
                schedule_recalculate_project_authorizations_spec.rb  (2 usages found)
                    29 Timecop.freeze do
                    48 Timecop.freeze do
                schedule_recalculate_project_authorizations_third_run_spec.rb  (1 usage found)
                    19 Timecop.freeze do
                schedule_runners_token_encryption_spec.rb  (1 usage found)
                    26 Timecop.freeze do
                schedule_set_confidential_note_events_on_webhooks_spec.rb  (1 usage found)
                    24 Timecop.freeze do
                schedule_stages_index_migration_spec.rb  (1 usage found)
                    25 Timecop.freeze do
                schedule_sync_issuables_state_id_spec.rb  (1 usage found)
                    23 Timecop.freeze do
                schedule_sync_issuables_state_id_where_nil_spec.rb  (1 usage found)
                    23 Timecop.freeze do
                schedule_update_existing_subgroup_to_match_visibility_level_of_parent_spec.rb  (4 usages found)
                    17 Timecop.freeze do
                    33 Timecop.freeze do
                    50 Timecop.freeze do
                    69 Timecop.freeze do
            spec/migrations/active_record  (1 usage found)
                schedule_set_confidential_note_events_on_services_spec.rb  (1 usage found)
                    24 Timecop.freeze do
            spec/models  (18 usages found)
                active_session_spec.rb  (3 usages found)
                    175 Timecop.freeze(Time.zone.parse('2018-03-12 09:06')) do
                    196 Timecop.freeze(now) do
                    199 Timecop.freeze(now + 1.minute) do
                board_group_recent_visit_spec.rb  (1 usage found)
                    31 Timecop.freeze do
                board_project_recent_visit_spec.rb  (1 usage found)
                    31 Timecop.freeze do
                broadcast_message_spec.rb  (3 usages found)
                    63 Timecop.travel(3.weeks) do
                    74 Timecop.travel(1.week) do
                    97 Timecop.travel(future.starts_at) do
                deployment_spec.rb  (5 usages found)
                    102 Timecop.freeze do
                    113 Timecop.freeze do
                    140 Timecop.freeze do
                    160 Timecop.freeze do
                    587 Timecop.freeze do
                environment_spec.rb  (2 usages found)
                    1209 Timecop.freeze { is_expected.to eq(1.day.to_i) }
                    1235 Timecop.freeze do
                remote_mirror_spec.rb  (2 usages found)
                    254 Timecop.freeze { example.run }
                    368 Timecop.freeze { example.run }
                user_spec.rb  (1 usage found)
                    3604 Timecop.freeze(1.second.from_now) do
            spec/models/ci  (6 usages found)
                build_spec.rb  (4 usages found)
                    440 Timecop.freeze do
                    488 Timecop.freeze do
                    498 Timecop.freeze do
                    3872 Timecop.freeze { example.run }
                pipeline_schedule_spec.rb  (2 usages found)
                    55 Timecop.freeze(1.day.ago) do
                    117 Timecop.freeze(Time.parse("2019-06-01 12:18:00+0000")) do
            spec/models/clusters/applications  (2 usages found)
                prometheus_spec.rb  (2 usages found)
                    49 Timecop.freeze do
                    353 Timecop.freeze { example.run }
            spec/models/concerns  (11 usages found)
                issuable_spec.rb  (2 usages found)
                    632 Timecop.travel(1.minute.from_now) do
                    651 Timecop.travel(1.minute.from_now) do
                prometheus_adapter_spec.rb  (5 usages found)
                    28 Timecop.freeze { example.run }
                    48 Timecop.freeze { example.run }
                    88 Timecop.freeze { example.run }
                    110 Timecop.freeze { example.run }
                    140 Timecop.freeze { example.run }
                resolvable_discussion_spec.rb  (3 usages found)
                    542 Timecop.freeze(time - 1.second) do
                    545 Timecop.freeze(time) do
                    548 Timecop.freeze(time + 1.second) do
                schedulable_spec.rb  (1 usage found)
                    38 Timecop.freeze(1.day.ago) do
            spec/models/issue  (7 usages found)
                metrics_spec.rb  (7 usages found)
                    41 Timecop.freeze(time) { subject.update(milestone: create(:milestone, project: project)) }
                    50 Timecop.freeze(time) { subject.update(milestone: create(:milestone, project: project)) }
                    51 Timecop.freeze(time + 2.hours) { subject.update(milestone: nil) }
                    52 Timecop.freeze(time + 6.hours) { subject.update(milestone: create(:milestone, project: project)) }
                    64 Timecop.freeze(time) { subject.update(label_ids: [list_label.id]) }
                    74 Timecop.freeze(time) { subject.update(label_ids: [first_list_label.id]) }
                    76 Timecop.freeze(time + 5.hours) { subject.update(label_ids: [second_list_label.id]) }
            spec/presenters/ci  (3 usages found)
                build_presenter_spec.rb  (3 usages found)
                    231 Timecop.freeze do
                    241 Timecop.freeze do
                    252 Timecop.freeze do
            spec/requests  (2 usages found)
                rack_attack_global_spec.rb  (1 usage found)
                    71 Timecop.travel(period.from_now) do
                request_profiler_spec.rb  (1 usage found)
                    27 Timecop.freeze(time) do
            spec/requests/api  (5 usages found)
                releases_spec.rb  (3 usages found)
                    263 Timecop.freeze(Time.now.round) do
                    462 Timecop.freeze(now) do
                    748 Timecop.freeze { example.run }
                runner_spec.rb  (2 usages found)
                    1163 Timecop.travel(job.updated_at + update_interval) do
                    1408 Timecop.travel(job.updated_at + update_interval) do
            spec/requests/api/internal  (1 usage found)
                base_spec.rb  (1 usage found)
                    268 Timecop.freeze { example.run }
            spec/requests/api/issues  (4 usages found)
                put_projects_issues_spec.rb  (4 usages found)
                    309 Timecop.travel(1.minute.from_now) do
                    319 Timecop.travel(1.minute.from_now) do
                    329 Timecop.travel(1.minute.from_now) do
                    340 Timecop.travel(1.minute.from_now) do
            spec/requests/projects  (1 usage found)
                cycle_analytics_events_spec.rb  (1 usage found)
                    15 Timecop.freeze(Time.now + count.days) do
            spec/serializers  (3 usages found)
                analytics_build_entity_spec.rb  (1 usage found)
                    19 Timecop.freeze { example.run }
                entity_date_helper_spec.rb  (2 usages found)
                    51 Timecop.freeze(Time.utc(2017, 3, 17)) { example.run }
                    78 Timecop.freeze(Time.utc(2017, 3, 17, 13, 10)) do
            spec/services  (1 usage found)
                note_summary_spec.rb  (1 usage found)
                    26 Timecop.freeze do
            spec/services/ci  (2 usages found)
                retry_build_service_spec.rb  (2 usages found)
                    151 Timecop.freeze(1.second.from_now) do
                    205 Timecop.freeze(1.second.from_now) do
            spec/services/ci/pipeline_processing  (5 usages found)
                shared_processing_service.rb  (5 usages found)
                    262 Timecop.travel 2.minutes.from_now do
                    269 Timecop.travel 2.minutes.from_now do
                    333 Timecop.travel 2.minutes.from_now do
                    401 Timecop.travel 2.minutes.from_now do
                    422 Timecop.travel 2.minutes.from_now do
            spec/services/clusters/applications  (1 usage found)
                schedule_update_service_spec.rb  (1 usage found)
                    10 Timecop.freeze { example.run }
            spec/services/deployments  (4 usages found)
                after_create_service_spec.rb  (4 usages found)
                    125 Timecop.freeze do
                    260 Timecop.travel(12.hours.from_now) do
                    272 Timecop.freeze(time) { service.execute }
                    279 Timecop.freeze(time + 12.hours) { service.execute }
            spec/services/issues  (1 usage found)
                update_service_spec.rb  (1 usage found)
                    503 Timecop.freeze(1.minute.from_now) do
            spec/services/keys  (1 usage found)
                last_used_service_spec.rb  (1 usage found)
                    11 Timecop.freeze(time) { described_class.new(key).execute }
            spec/services/merge_requests  (2 usages found)
                delete_non_latest_diffs_service_spec.rb  (1 usage found)
                    22 Timecop.freeze do
                update_service_spec.rb  (1 usage found)
                    433 Timecop.freeze(1.minute.from_now) do
            spec/services/notes  (2 usages found)
                create_service_spec.rb  (1 usage found)
                    361 Timecop.freeze(Time.now + 1.minute) { subject }
                update_service_spec.rb  (1 usage found)
                    34 Timecop.freeze(1.day.from_now) do
            spec/services/projects/hashed_storage  (1 usage found)
                base_attachment_service_spec.rb  (1 usage found)
                    33 Timecop.freeze do
            spec/support/cycle_analytics_helpers  (14 usages found)
                test_generation.rb  (14 usages found)
                    41 Timecop.freeze(start_time) { condition_fn[self, data] }
                    45 Timecop.freeze(start_time + (end_time - start_time) / 2) { before_end_fn[self, data] } if before_end_fn
                    48 Timecop.freeze(end_time) { condition_fn[self, data] }
                    51 Timecop.freeze(end_time + 1.day) { post_fn[self, data] } if post_fn
                    73 Timecop.freeze(start_time) { condition_fn[self, data] }
                    77 Timecop.freeze(end_time) { condition_fn[self, data] }
                    80 Timecop.freeze(end_time + 1.day) { post_fn[self, data] } if post_fn
                    96 Timecop.freeze(start_time + (end_time - start_time) / 2) { before_end_fn[self, data] } if before_end_fn
                    99 Timecop.freeze(start_time) { condition_fn[self, data] }
                    103 Timecop.freeze(end_time) { condition_fn[self, data] }
                    106 Timecop.freeze(end_time + 1.day) { post_fn[self, data] } if post_fn
                    121 Timecop.freeze(end_time + index.days) { condition_fn[self, data] }
                    124 Timecop.freeze(end_time + 1.day) { post_fn[self, data] } if post_fn
                    138 Timecop.freeze(start_time) { condition_fn[self, data] }
            spec/support/helpers  (2 usages found)
                cycle_analytics_helpers.rb  (1 usage found)
                    15 if Timecop.frozen?
                javascript_fixtures_helpers.rb  (1 usage found)
                    15 Timecop.freeze(Time.utc(2015, 7, 3, 10)) { example.run }
            spec/support/shared_contexts  (1 usage found)
                rack_attack_shared_context.rb  (1 usage found)
                    9 Timecop.freeze { example.run }
            spec/support/shared_examples/lib/gitlab/background_migration  (1 usage found)
                mentions_migration_shared_examples.rb  (1 usage found)
                    66 Timecop.freeze do
            spec/support/shared_examples/models  (3 usages found)
                throttled_touch_shared_examples.rb  (3 usages found)
                    6 Timecop.freeze do
                    16 Timecop.freeze(first_updated_at) { subject.touch }
                    17 Timecop.freeze(second_updated_at) { subject.touch }
            spec/support/shared_examples/requests  (2 usages found)
                rack_attack_shared_examples.rb  (2 usages found)
                    51 Timecop.travel(period.from_now) do
                    178 Timecop.travel(period.from_now) do
            spec/support/shared_examples/requests/api  (4 usages found)
                time_tracking_shared_examples.rb  (4 usages found)
                    76 Timecop.travel(1.minute.from_now) do
                    88 Timecop.travel(1.minute.from_now) do
                    105 Timecop.travel(1.minute.from_now) do
                    125 Timecop.travel(1.minute.from_now) do
            spec/support/shared_examples/services/boards  (1 usage found)
                issues_move_service_shared_examples.rb  (1 usage found)
                    134 Timecop.travel(1.minute.from_now) do
            spec/support/shared_examples/workers/concerns  (5 usages found)
                reenqueuer_shared_examples.rb  (5 usages found)
                    34 Timecop.safe_mode = false
                    35 Timecop.freeze
                    41 Timecop.return
                    42 Timecop.safe_mode = true
                    112 Timecop.travel(actual_duration) if actual_duration && actual_duration > 0
            spec/workers  (3 usages found)
                cluster_update_app_worker_spec.rb  (1 usage found)
                    15 Timecop.freeze(Time.now) { example.run }
                post_receive_spec.rb  (1 usage found)
                    293 Timecop.freeze(1.second.from_now) do
                repository_update_remote_mirror_worker_spec.rb  (1 usage found)
                    12 Timecop.freeze(Time.now) { example.run }
            spec/workers/concerns  (8 usages found)
                reenqueuer_spec.rb  (8 usages found)
                    119 # Allow Timecop.travel without the block form
                    120 Timecop.safe_mode = false
                    122 Timecop.freeze do
                    126 Timecop.safe_mode = true
                    138 Timecop.travel(minimum_duration - time_left)
                    150 Timecop.travel(minimum_duration - time_left)
                    162 Timecop.travel(minimum_duration + time_over)
                    174 Timecop.travel(minimum_duration + time_over)
    Usage in comments  (1 usage found)
        gitlab  (1 usage found)
            doc/development/testing_guide  (1 usage found)
                best_practices.md  (1 usage found)
                    302   Timecop.freeze(3.days.from_now) do

Plan

Timecop.freeze

Timecop.travel

Final steps

Edited by Max Orefice