From 32336a29821b00b19f50afd7cdbb7b2a45de237d Mon Sep 17 00:00:00 2001 From: Teo Ljungberg Date: Tue, 10 Jan 2017 13:41:48 +0100 Subject: [PATCH] Consolidate the external API of all service objects - Don't duplicate the methods signature in static facades Since the method signature, including its parameters are already present in the initializer. We can safely remove it from the static facade without hurting readability. - Rename `.run` to `.call`. - Rename `.for` with `.call` - Rename `#run` to `#call`. - Add static facades where they are missing. --- app/controllers/builds_controller.rb | 2 +- app/controllers/repos_controller.rb | 2 +- app/jobs/buildable.rb | 5 ++-- app/jobs/completed_file_review_job.rb | 2 +- app/jobs/report_invalid_config_job.rb | 2 +- app/models/hound_config.rb | 6 ++--- app/models/jshint_config_builder.rb | 7 ++---- app/models/linter/base.rb | 2 +- app/models/linter/jshint.rb | 6 ++--- app/models/owner.rb | 4 ++-- app/queries/recent_builds_by_repo_query.rb | 6 ++--- ...s_with_membership_or_subscription_query.rb | 4 +++- app/services/build_config.rb | 6 ++--- app/services/build_owner_hound_config.rb | 6 ++--- app/services/build_runner.rb | 5 ++-- app/services/complete_build.rb | 6 ++--- app/services/complete_file_review.rb | 8 +++---- app/services/normalize_config.rb | 8 +++---- app/services/rebuild_pull_request.rb | 4 +--- app/services/report_invalid_config.rb | 6 ++--- app/services/resolve_config_aliases.rb | 6 ++--- app/services/resolve_config_conflicts.rb | 6 ++--- app/services/update_repo_status.rb | 3 ++- spec/features/job_failures_spec.rb | 2 +- spec/jobs/buildable_spec.rb | 12 ++++------ spec/jobs/completed_file_review_job_spec.rb | 8 +++---- spec/jobs/report_invalid_config_job_spec.rb | 4 ++-- spec/models/jshint_config_builder_spec.rb | 6 ++--- spec/models/linter/jshint_spec.rb | 2 +- .../recent_builds_by_repo_query_spec.rb | 8 +++---- ...h_membership_or_subscription_query_spec.rb | 6 ++--- spec/requests/builds_spec.rb | 2 +- spec/services/build_config_spec.rb | 6 ++--- .../services/build_owner_hound_config_spec.rb | 10 ++++---- spec/services/build_runner_spec.rb | 24 +++++++++---------- spec/services/complete_build_spec.rb | 4 ++-- spec/services/complete_file_review_spec.rb | 14 +++++------ spec/services/normalize_config_spec.rb | 4 ++-- spec/services/report_invalid_config_spec.rb | 6 ++--- spec/services/resolve_config_aliases_spec.rb | 4 ++-- .../services/resolve_config_conflicts_spec.rb | 4 ++-- spec/services/update_repo_status_spec.rb | 6 ++--- spec/support/background_jobs.rb | 6 ++--- 43 files changed, 113 insertions(+), 137 deletions(-) diff --git a/app/controllers/builds_controller.rb b/app/controllers/builds_controller.rb index 017cc6c20..978a482e4 100644 --- a/app/controllers/builds_controller.rb +++ b/app/controllers/builds_controller.rb @@ -39,6 +39,6 @@ def payload end def recent_builds_by_repo - RecentBuildsByRepoQuery.run(user: current_user) + RecentBuildsByRepoQuery.call(user: current_user) end end diff --git a/app/controllers/repos_controller.rb b/app/controllers/repos_controller.rb index 66107d7b2..392cb6379 100644 --- a/app/controllers/repos_controller.rb +++ b/app/controllers/repos_controller.rb @@ -8,7 +8,7 @@ def index current_user.repos.clear end - repos = ReposWithMembershipOrSubscriptionQuery.new(current_user).run + repos = ReposWithMembershipOrSubscriptionQuery.call(current_user) render json: repos end diff --git a/app/jobs/buildable.rb b/app/jobs/buildable.rb index 5bfcd9b2a..1ea59dd29 100644 --- a/app/jobs/buildable.rb +++ b/app/jobs/buildable.rb @@ -3,9 +3,8 @@ def perform(payload_data) payload = Payload.new(payload_data) unless blacklisted?(payload) - UpdateRepoStatus.new(payload).run - build_runner = BuildRunner.new(payload) - build_runner.run + UpdateRepoStatus.call(payload) + BuildRunner.call(payload) end end diff --git a/app/jobs/completed_file_review_job.rb b/app/jobs/completed_file_review_job.rb index eb48ab431..807b623c9 100644 --- a/app/jobs/completed_file_review_job.rb +++ b/app/jobs/completed_file_review_job.rb @@ -9,7 +9,7 @@ class CompletedFileReviewJob # violations # [{ line: 123, message: "WAT" }] def self.perform(attributes) - CompleteFileReview.run(attributes) + CompleteFileReview.call(attributes) rescue ActiveRecord::RecordNotFound Resque.enqueue_in(30, self, attributes) rescue Resque::TermException diff --git a/app/jobs/report_invalid_config_job.rb b/app/jobs/report_invalid_config_job.rb index 0c821f96d..23d160883 100644 --- a/app/jobs/report_invalid_config_job.rb +++ b/app/jobs/report_invalid_config_job.rb @@ -9,7 +9,7 @@ class ReportInvalidConfigJob # The following parameters are optional: # - message def self.perform(attributes) - ReportInvalidConfig.run( + ReportInvalidConfig.call( pull_request_number: attributes.fetch("pull_request_number"), commit_sha: attributes.fetch("commit_sha"), linter_name: attributes.fetch("linter_name"), diff --git a/app/models/hound_config.rb b/app/models/hound_config.rb index 05fe17677..35ac5c8fa 100644 --- a/app/models/hound_config.rb +++ b/app/models/hound_config.rb @@ -49,15 +49,15 @@ def default_config end def resolved_aliases_config - ResolveConfigAliases.run(normalized_config) + ResolveConfigAliases.call(normalized_config) end def normalized_config - NormalizeConfig.run(parsed_config) + NormalizeConfig.call(parsed_config) end def resolved_conflicts_config - ResolveConfigConflicts.run(resolved_aliases_config) + ResolveConfigConflicts.call(resolved_aliases_config) end def parsed_config diff --git a/app/models/jshint_config_builder.rb b/app/models/jshint_config_builder.rb index 92b95a341..886dc1053 100644 --- a/app/models/jshint_config_builder.rb +++ b/app/models/jshint_config_builder.rb @@ -1,11 +1,8 @@ class JshintConfigBuilder + static_facade :call pattr_initialize :hound_config - def self.for(hound_config) - new(hound_config).config - end - - def config + def call Config::Jshint.new(load_content) end diff --git a/app/models/linter/base.rb b/app/models/linter/base.rb index f6bfb9197..1357140c2 100644 --- a/app/models/linter/base.rb +++ b/app/models/linter/base.rb @@ -68,7 +68,7 @@ def owner end def config - @_config ||= BuildConfig.for( + @_config ||= BuildConfig.call( hound_config: hound_config, name: name, owner: owner, diff --git a/app/models/linter/jshint.rb b/app/models/linter/jshint.rb index 21dea7c44..5ce0f9e22 100644 --- a/app/models/linter/jshint.rb +++ b/app/models/linter/jshint.rb @@ -14,15 +14,15 @@ def config end def local_config - @_config ||= JshintConfigBuilder.for(hound_config) + @_config ||= JshintConfigBuilder.call(hound_config) end def owner_config - @_owner_config ||= JshintConfigBuilder.for(owner_hound_config) + @_owner_config ||= JshintConfigBuilder.call(owner_hound_config) end def owner_hound_config - BuildOwnerHoundConfig.run(build.repo.owner) + BuildOwnerHoundConfig.call(build.repo.owner) end def jsignore diff --git a/app/models/owner.rb b/app/models/owner.rb index fd7e6376b..c846662eb 100644 --- a/app/models/owner.rb +++ b/app/models/owner.rb @@ -14,8 +14,8 @@ def has_config_repo? end def config_content(linter_name) - BuildConfig.for( - hound_config: BuildOwnerHoundConfig.run(self), + BuildConfig.call( + hound_config: BuildOwnerHoundConfig.call(self), name: linter_name, owner: MissingOwner.new, ).content diff --git a/app/queries/recent_builds_by_repo_query.rb b/app/queries/recent_builds_by_repo_query.rb index cdc456732..3550ef256 100644 --- a/app/queries/recent_builds_by_repo_query.rb +++ b/app/queries/recent_builds_by_repo_query.rb @@ -1,15 +1,13 @@ class RecentBuildsByRepoQuery NUMBER_OF_BUILDS = 20 - def self.run(*args) - new(*args).run - end + static_facade :call def initialize(user:) @user = user end - def run + def call Build.find_by_sql([<<-SQL, user_id: @user.id, limit: NUMBER_OF_BUILDS]) WITH user_builds AS ( SELECT diff --git a/app/queries/repos_with_membership_or_subscription_query.rb b/app/queries/repos_with_membership_or_subscription_query.rb index 8c894ba41..4c9aafbd3 100644 --- a/app/queries/repos_with_membership_or_subscription_query.rb +++ b/app/queries/repos_with_membership_or_subscription_query.rb @@ -1,9 +1,11 @@ class ReposWithMembershipOrSubscriptionQuery + static_facade :call + def initialize(user) @user = user end - def run + def call @user.subscribed_repos.includes(:subscription) | @user.repos_by_activation_ability.includes(:subscription) end diff --git a/app/services/build_config.rb b/app/services/build_config.rb index 414d20ca5..9b3dd1a63 100644 --- a/app/services/build_config.rb +++ b/app/services/build_config.rb @@ -1,7 +1,5 @@ class BuildConfig - def self.for(hound_config:, name:, owner:) - new(hound_config: hound_config, name: name, owner: owner).config - end + static_facade :call def initialize(hound_config:, name:, owner:) @hound_config = hound_config @@ -9,7 +7,7 @@ def initialize(hound_config:, name:, owner:) @owner = owner end - def config + def call config_class.new(hound_config, owner: owner) end diff --git a/app/services/build_owner_hound_config.rb b/app/services/build_owner_hound_config.rb index b59e045c5..28216b534 100644 --- a/app/services/build_owner_hound_config.rb +++ b/app/services/build_owner_hound_config.rb @@ -2,15 +2,13 @@ class BuildOwnerHoundConfig LATEST_SHA = "HEAD" - def self.run(*args) - new(*args).run - end + static_facade :call def initialize(owner) @owner = owner end - def run + def call if owner.has_config_repo? && config_repo_reachable? commit = Commit.new(config_repo.name, LATEST_SHA, github) HoundConfig.new(commit) diff --git a/app/services/build_runner.rb b/app/services/build_runner.rb index 2dfe81825..c1ab4fcbb 100644 --- a/app/services/build_runner.rb +++ b/app/services/build_runner.rb @@ -1,7 +1,8 @@ class BuildRunner + static_facade :call pattr_initialize :payload - def run + def call if repo && relevant_pull_request? review_pull_request end @@ -88,7 +89,7 @@ def commit_status end def report_config_file_as_invalid(exception) - ReportInvalidConfig.run( + ReportInvalidConfig.call( pull_request_number: payload.pull_request_number, commit_sha: payload.head_sha, linter_name: exception.linter_name, diff --git a/app/services/complete_build.rb b/app/services/complete_build.rb index 2d0d013f2..f962dc997 100644 --- a/app/services/complete_build.rb +++ b/app/services/complete_build.rb @@ -1,7 +1,5 @@ class CompleteBuild - def self.run(pull_request:, build:, token:) - new(pull_request: pull_request, build: build, token: token).run - end + static_facade :call def initialize(pull_request:, build:, token:) @build = build @@ -10,7 +8,7 @@ def initialize(pull_request:, build:, token:) @commenter = Commenter.new(pull_request) end - def run + def call if build.completed? commenter.comment_on_violations(priority_violations) set_commit_status diff --git a/app/services/complete_file_review.rb b/app/services/complete_file_review.rb index ad17cb8ff..b6e24fede 100644 --- a/app/services/complete_file_review.rb +++ b/app/services/complete_file_review.rb @@ -1,16 +1,14 @@ class CompleteFileReview - def self.run(attributes) - new(attributes).run - end + static_facade :call def initialize(attributes) @attributes = attributes end - def run + def call create_violations! - CompleteBuild.run( + CompleteBuild.call( pull_request: pull_request, build: build, token: build.user_token, diff --git a/app/services/normalize_config.rb b/app/services/normalize_config.rb index 6d6be8ee6..85be03868 100644 --- a/app/services/normalize_config.rb +++ b/app/services/normalize_config.rb @@ -1,17 +1,15 @@ class NormalizeConfig - def self.run(config) - new(config).run - end + static_facade :call def initialize(config) @config = config end - def run + def call @config.reduce({}) do |normalized_config, (key, value)| normalized_key = normalize_key(key) if value.is_a? Hash - normalized_config[normalized_key] = NormalizeConfig.run(value) + normalized_config[normalized_key] = NormalizeConfig.call(value) else normalized_config[normalized_key] = value end diff --git a/app/services/rebuild_pull_request.rb b/app/services/rebuild_pull_request.rb index 5d7b137ce..a0af50a80 100644 --- a/app/services/rebuild_pull_request.rb +++ b/app/services/rebuild_pull_request.rb @@ -1,7 +1,5 @@ class RebuildPullRequest - def self.call(*args) - new(*args).call - end + static_facade :call def initialize(repo:, pull_request_number:) @repo = repo diff --git a/app/services/report_invalid_config.rb b/app/services/report_invalid_config.rb index 60ac8ca21..82d21a675 100644 --- a/app/services/report_invalid_config.rb +++ b/app/services/report_invalid_config.rb @@ -1,7 +1,5 @@ class ReportInvalidConfig - def self.run(**args) - new(**args).run - end + static_facade :call def initialize(pull_request_number:, commit_sha:, linter_name:, message: "") @pull_request_number = pull_request_number @@ -10,7 +8,7 @@ def initialize(pull_request_number:, commit_sha:, linter_name:, message: "") @message = message end - def run + def call commit_status.set_config_error(message) end diff --git a/app/services/resolve_config_aliases.rb b/app/services/resolve_config_aliases.rb index eded4f5d9..1b9552309 100644 --- a/app/services/resolve_config_aliases.rb +++ b/app/services/resolve_config_aliases.rb @@ -5,15 +5,13 @@ class ResolveConfigAliases "coffeescript" => "coffee_script", }.freeze - def self.run(config) - new(config).run - end + static_facade :call def initialize(config) @config = config end - def run + def call @config.reduce({}) do |resolved_config, (key, value)| if ALIASES.keys.include? key resolved_config[ALIASES[key]] = value diff --git a/app/services/resolve_config_conflicts.rb b/app/services/resolve_config_conflicts.rb index 444405635..125c1c2ed 100644 --- a/app/services/resolve_config_conflicts.rb +++ b/app/services/resolve_config_conflicts.rb @@ -1,15 +1,13 @@ class ResolveConfigConflicts CONFLICTS = { "eslint" => "jshint" }.freeze - def self.run(config) - new(config).run - end + static_facade :call def initialize(config) @config = config end - def run + def call @config.reduce({}) do |resolved_config, (linter, options)| if CONFLICTS.has_key?(linter) && options["enabled"] == true resolved_config[CONFLICTS[linter]] = { "enabled" => false } diff --git a/app/services/update_repo_status.rb b/app/services/update_repo_status.rb index 54117d28c..382ad1915 100644 --- a/app/services/update_repo_status.rb +++ b/app/services/update_repo_status.rb @@ -1,7 +1,8 @@ class UpdateRepoStatus + static_facade :call pattr_initialize :payload - def run + def call if repo repo.update(repo_attributes) end diff --git a/spec/features/job_failures_spec.rb b/spec/features/job_failures_spec.rb index ecfaf1f89..64267a56b 100644 --- a/spec/features/job_failures_spec.rb +++ b/spec/features/job_failures_spec.rb @@ -8,7 +8,7 @@ Resque::Failure.backend = Resque::Failure::Redis cleanup_test_failures - example.run + example.call cleanup_test_failures Resque::Failure.backend = previous_backend diff --git a/spec/jobs/buildable_spec.rb b/spec/jobs/buildable_spec.rb index b7c68404e..586bec78e 100644 --- a/spec/jobs/buildable_spec.rb +++ b/spec/jobs/buildable_spec.rb @@ -7,27 +7,23 @@ class BuildableTestJob < ActiveJob::Base describe "#perform" do it 'runs build runner' do - build_runner = double(:build_runner, run: nil) payload = stub_payload(payload_data) - allow(BuildRunner).to receive(:new).and_return(build_runner) + allow(BuildRunner).to receive(:call) BuildableTestJob.perform_now(payload_data) expect(Payload).to have_received(:new).with(payload_data) - expect(BuildRunner).to have_received(:new).with(payload) - expect(build_runner).to have_received(:run) + expect(BuildRunner).to have_received(:call).with(payload) end it "runs repo updater" do - repo_updater = double("RepoUpdater", run: nil) payload = stub_payload(payload_data) - allow(UpdateRepoStatus).to receive(:new).and_return(repo_updater) + allow(UpdateRepoStatus).to receive(:call) BuildableTestJob.perform_now(payload_data) expect(Payload).to have_received(:new).with(payload_data) - expect(UpdateRepoStatus).to have_received(:new).with(payload) - expect(repo_updater).to have_received(:run) + expect(UpdateRepoStatus).to have_received(:call).with(payload) end context "when the pull request has been blacklisted" do diff --git a/spec/jobs/completed_file_review_job_spec.rb b/spec/jobs/completed_file_review_job_spec.rb index 4df32acfc..f5507c8c2 100644 --- a/spec/jobs/completed_file_review_job_spec.rb +++ b/spec/jobs/completed_file_review_job_spec.rb @@ -3,16 +3,16 @@ describe CompletedFileReviewJob do describe ".perform" do it "calls `CompleteFileReview`" do - allow(CompleteFileReview).to receive(:run) + allow(CompleteFileReview).to receive(:call) CompletedFileReviewJob.perform(attributes) - expect(CompleteFileReview).to have_received(:run).with(attributes) + expect(CompleteFileReview).to have_received(:call).with(attributes) end context "when build doesn't exist" do it "enqueues job with a 30 second delay" do - allow(CompleteFileReview).to receive(:run). + allow(CompleteFileReview).to receive(:call). and_raise(ActiveRecord::RecordNotFound) allow(Resque).to receive(:enqueue_in) @@ -25,7 +25,7 @@ context "when Resque process is killed" do it "enqueues job" do - allow(CompleteFileReview).to receive(:run). + allow(CompleteFileReview).to receive(:call). and_raise(Resque::TermException.new(1)) allow(Resque).to receive(:enqueue) diff --git a/spec/jobs/report_invalid_config_job_spec.rb b/spec/jobs/report_invalid_config_job_spec.rb index bff88fde0..1c716970a 100644 --- a/spec/jobs/report_invalid_config_job_spec.rb +++ b/spec/jobs/report_invalid_config_job_spec.rb @@ -9,11 +9,11 @@ "linter_name" => "ruby", "message" => "Could not parse the given config file", } - allow(ReportInvalidConfig).to receive(:run) + allow(ReportInvalidConfig).to receive(:call) ReportInvalidConfigJob.perform(attributes) - expect(ReportInvalidConfig).to have_received(:run).with( + expect(ReportInvalidConfig).to have_received(:call).with( pull_request_number: attributes["pull_request_number"], commit_sha: attributes["commit_sha"], linter_name: attributes["linter_name"], diff --git a/spec/models/jshint_config_builder_spec.rb b/spec/models/jshint_config_builder_spec.rb index 741fb34f9..35368e57e 100644 --- a/spec/models/jshint_config_builder_spec.rb +++ b/spec/models/jshint_config_builder_spec.rb @@ -5,7 +5,7 @@ require "app/models/jshint_config_builder" describe JshintConfigBuilder do - describe ".for" do + describe ".call" do context "when there is a jshint configuration" do it "takes a hound config and returns a jshint config with content" do commit = stubbed_commit(".jshintrc" => <<~CON) @@ -21,7 +21,7 @@ content: { "jshint" => { "config_file" => ".jshintrc" } }, ) - config = JshintConfigBuilder.for(hound_config) + config = JshintConfigBuilder.call(hound_config) expect(config).to be_a(Config::Jshint) expect(config.content).to eq( @@ -39,7 +39,7 @@ content: {}, ) - config = JshintConfigBuilder.for(hound_config) + config = JshintConfigBuilder.call(hound_config) expect(config).to be_a(Config::Jshint) expect(config.content).to eq({}) diff --git a/spec/models/linter/jshint_spec.rb b/spec/models/linter/jshint_spec.rb index 7ec66ffdb..3abea9e28 100644 --- a/spec/models/linter/jshint_spec.rb +++ b/spec/models/linter/jshint_spec.rb @@ -144,6 +144,6 @@ def stub_config_files(config_content) end def stub_owner_hound_config(config) - allow(BuildOwnerHoundConfig).to receive(:run).and_return(config) + allow(BuildOwnerHoundConfig).to receive(:call).and_return(config) end end diff --git a/spec/queries/recent_builds_by_repo_query_spec.rb b/spec/queries/recent_builds_by_repo_query_spec.rb index f90781655..c2500497a 100644 --- a/spec/queries/recent_builds_by_repo_query_spec.rb +++ b/spec/queries/recent_builds_by_repo_query_spec.rb @@ -1,7 +1,7 @@ require "rails_helper" describe RecentBuildsByRepoQuery do - describe ".run" do + describe ".call" do it "returns the most recent build for each repo" do user = create(:user) repo1 = create(:membership, user: user).repo @@ -21,7 +21,7 @@ created_at: 1.hour.ago, ) - builds = RecentBuildsByRepoQuery.run(user: user) + builds = RecentBuildsByRepoQuery.call(user: user) expect(builds).to match_array [recent_build1, recent_build2] end @@ -33,7 +33,7 @@ build1 = create(:build, pull_request_number: 1, repo: repo1) build2 = create(:build, pull_request_number: 2, repo: repo2) - builds = RecentBuildsByRepoQuery.run(user: user) + builds = RecentBuildsByRepoQuery.call(user: user) expect(builds).to eq [build2, build1] end @@ -46,7 +46,7 @@ build2 = create(:build, repo: repo2) stub_const("RecentBuildsByRepoQuery::NUMBER_OF_BUILDS", 1) - builds = RecentBuildsByRepoQuery.run(user: user) + builds = RecentBuildsByRepoQuery.call(user: user) expect(builds).to eq [build2] end diff --git a/spec/queries/repos_with_membership_or_subscription_query_spec.rb b/spec/queries/repos_with_membership_or_subscription_query_spec.rb index 04a563428..0ef7ab820 100644 --- a/spec/queries/repos_with_membership_or_subscription_query_spec.rb +++ b/spec/queries/repos_with_membership_or_subscription_query_spec.rb @@ -1,14 +1,14 @@ require "rails_helper" describe ReposWithMembershipOrSubscriptionQuery do - describe "#run" do + describe "#call" do context "when user is not a member of a repo but has a subscription" do it "includes the orphaned repo" do subscribed_repo = create(:repo, private: true) user = create(:user) create(:subscription, user: user, repo: subscribed_repo) - repos = ReposWithMembershipOrSubscriptionQuery.new(user).run + repos = ReposWithMembershipOrSubscriptionQuery.new(user).call expect(repos).to include(subscribed_repo) end @@ -20,7 +20,7 @@ user.repos << subscribed_repo create(:subscription, user: user, repo: subscribed_repo) - repos = ReposWithMembershipOrSubscriptionQuery.new(user).run + repos = ReposWithMembershipOrSubscriptionQuery.new(user).call expect(repos).to eq [subscribed_repo] end diff --git a/spec/requests/builds_spec.rb b/spec/requests/builds_spec.rb index 110b849b1..0be13dcfb 100644 --- a/spec/requests/builds_spec.rb +++ b/spec/requests/builds_spec.rb @@ -46,7 +46,7 @@ def stub_review_job(klass, violations:) allow(klass).to receive(:perform) do |attributes| - CompleteFileReview.run( + CompleteFileReview.call( "commit_sha" => attributes.fetch("commit_sha"), "filename" => attributes.fetch("filename"), "linter_name" => attributes.fetch("linter_name"), diff --git a/spec/services/build_config_spec.rb b/spec/services/build_config_spec.rb index bb6da851f..cfc7bebba 100644 --- a/spec/services/build_config_spec.rb +++ b/spec/services/build_config_spec.rb @@ -6,10 +6,10 @@ require "app/services/build_config" describe BuildConfig do - describe ".for" do + describe ".call" do context "when there is matching config class for the given name" do it "returns the matching config" do - config = BuildConfig.for( + config = BuildConfig.call( hound_config: double, name: "ruby", owner: instance_double("Owner"), @@ -21,7 +21,7 @@ context "when there is not matching config class for the given name" do it "returns the unsupported config" do - config = BuildConfig.for( + config = BuildConfig.call( hound_config: double, name: "non-existent-config", owner: instance_double("Owner"), diff --git a/spec/services/build_owner_hound_config_spec.rb b/spec/services/build_owner_hound_config_spec.rb index 8da39f627..9b771eec9 100644 --- a/spec/services/build_owner_hound_config_spec.rb +++ b/spec/services/build_owner_hound_config_spec.rb @@ -1,7 +1,7 @@ require "rails_helper" describe BuildOwnerHoundConfig do - describe "#run" do + describe "#call" do context "when the owner has a configuration set" do it "returns the owner's config merged with the default HoundConfig" do github_api = instance_double("GithubApi", repo: "") @@ -19,7 +19,7 @@ allow(Commit).to receive(:new).and_return(commit) allow(GithubApi).to receive(:new).and_return(github_api) - owner_config = BuildOwnerHoundConfig.run(owner) + owner_config = BuildOwnerHoundConfig.call(owner) expect(owner_config.content). to eq(default_hound_config.merge("remark" => { "enabled" => true })) @@ -34,7 +34,7 @@ config_repo: "thoughtbot/guides", ) - owner_config = BuildOwnerHoundConfig.run(owner) + owner_config = BuildOwnerHoundConfig.call(owner) expect(owner_config.content).to eq(default_hound_config) end @@ -51,7 +51,7 @@ allow(GithubApi).to receive(:new).and_return(github_api) allow(github_api).to receive(:repo).and_raise(Octokit::NotFound) - owner_config = BuildOwnerHoundConfig.run(owner) + owner_config = BuildOwnerHoundConfig.call(owner) expect(owner_config.content).to eq(default_hound_config) end @@ -69,7 +69,7 @@ allow(github_api).to receive(:repo). and_raise(Octokit::InvalidRepository) - owner_config = BuildOwnerHoundConfig.run(owner) + owner_config = BuildOwnerHoundConfig.call(owner) expect(owner_config.content).to eq(default_hound_config) end diff --git a/spec/services/build_runner_spec.rb b/spec/services/build_runner_spec.rb index 9d892f42c..f50367720 100644 --- a/spec/services/build_runner_spec.rb +++ b/spec/services/build_runner_spec.rb @@ -1,7 +1,7 @@ require "rails_helper" describe BuildRunner do - describe "#run" do + describe "#call" do context "with active repo and opened pull request" do it "creates a build record with violations" do repo = create(:repo, :active) @@ -17,7 +17,7 @@ stubbed_pull_request stubbed_github_api - build_runner.run + build_runner.call builds = Build.where(repo_id: repo.id) build = builds.first @@ -40,7 +40,7 @@ stubbed_commenter stubbed_github_api - build_runner.run + build_runner.call expect(PullRequest).to have_received(:new).with(payload, user.token) end @@ -63,7 +63,7 @@ stubbed_commenter github_api = stubbed_github_api - build_runner.run + build_runner.call expect(github_api).to have_received(:create_pending_status). with(repo_name, "headsha", I18n.t(:pending_status)) @@ -87,7 +87,7 @@ stubbed_commenter stubbed_github_api - build_runner.run + build_runner.call owner_attributes = Owner.first.slice(:name, :github_id, :organization) expect(owner_attributes).to eq( @@ -104,7 +104,7 @@ repo = create(:repo, :inactive) build_runner = make_build_runner(repo: repo) - build_runner.run + build_runner.call expect(repo.builds).to be_empty end @@ -118,7 +118,7 @@ allow(pull_request). to receive_messages(opened?: false, synchronize?: false) - build_runner.run + build_runner.call expect(repo.builds).to be_empty end @@ -138,7 +138,7 @@ stubbed_pull_request stubbed_github_api - build_runner.run + build_runner.call expect(analytics).to have_tracked("Build Started"). for_user(repo.subscription.user). @@ -168,7 +168,7 @@ ), ) - build_runner.run + build_runner.call expect(github_api).to have_received(:create_error_status).with( repo.name, @@ -194,7 +194,7 @@ allow(github_api).to receive(:create_pending_status). and_raise(Octokit::NotFound) - expect { build_runner.run }.to raise_error Octokit::NotFound + expect { build_runner.call }.to raise_error Octokit::NotFound expect(user.reload.repos).to eq [reachable_repo] end @@ -209,7 +209,7 @@ force_fail_build_creation allow(Resque).to receive(:enqueue) - expect { build_runner.run }. + expect { build_runner.call }. to raise_error ActiveRecord::StatementInvalid expect(Resque).not_to have_received(:enqueue) end @@ -226,7 +226,7 @@ def force_fail_build_creation github_api = stubbed_github_api stubbed_pull_request_with_file("foo.whatever", "hello world") - build_runner.run + build_runner.call expect(github_api).to have_received(:create_success_status).with( repo.name, diff --git a/spec/services/complete_build_spec.rb b/spec/services/complete_build_spec.rb index 6a15a6a3a..bbfce0555 100644 --- a/spec/services/complete_build_spec.rb +++ b/spec/services/complete_build_spec.rb @@ -1,7 +1,7 @@ require "rails_helper" describe CompleteBuild do - describe ".run" do + describe ".call" do context "when build has violations" do context "when the build is complete" do it "comments a maximum number of times" do @@ -153,7 +153,7 @@ def stubbed_hound_config(options = {}) def run_service(build) head_commit = double("Commit", file_content: "") pull_request = double("PullRequest", head_commit: head_commit) - CompleteBuild.run( + CompleteBuild.call( pull_request: pull_request, build: build, token: "abc123", diff --git a/spec/services/complete_file_review_spec.rb b/spec/services/complete_file_review_spec.rb index 0d28a2a1a..afa7b858e 100644 --- a/spec/services/complete_file_review_spec.rb +++ b/spec/services/complete_file_review_spec.rb @@ -1,14 +1,14 @@ require "rails_helper" describe CompleteFileReview do - describe ".run" do + describe ".call" do it "completes FileReview with violations" do file_review = create_file_review stub_build_report_run stub_pull_request stub_payload - CompleteFileReview.run(attributes) + CompleteFileReview.call(attributes) file_review.reload expect(file_review).to be_completed @@ -23,9 +23,9 @@ pull_request = stub_pull_request payload = stub_payload - CompleteFileReview.run(attributes) + CompleteFileReview.call(attributes) - expect(CompleteBuild).to have_received(:run).with( + expect(CompleteBuild).to have_received(:call).with( pull_request: pull_request, build: build, token: Hound::GITHUB_TOKEN, @@ -52,9 +52,9 @@ pull_request = stub_pull_request stub_payload - CompleteFileReview.run(attributes) + CompleteFileReview.call(attributes) - expect(CompleteBuild).to have_received(:run).with( + expect(CompleteBuild).to have_received(:call).with( pull_request: pull_request, build: correct_build, token: Hound::GITHUB_TOKEN, @@ -83,7 +83,7 @@ def create_file_review end def stub_build_report_run - allow(CompleteBuild).to receive(:run) + allow(CompleteBuild).to receive(:call) end def stub_pull_request diff --git a/spec/services/normalize_config_spec.rb b/spec/services/normalize_config_spec.rb index 260a197da..b10557fc1 100644 --- a/spec/services/normalize_config_spec.rb +++ b/spec/services/normalize_config_spec.rb @@ -1,12 +1,12 @@ require "app/services/normalize_config" describe NormalizeConfig do - describe "#run" do + describe "#call" do context "given a hash with keys containing capital letters" do it "downcases the keys" do config = { "Ruby" => { "Enabled" => true } } - expect(NormalizeConfig.run(config)).to eq( + expect(NormalizeConfig.call(config)).to eq( "ruby" => { "enabled" => true }, ) end diff --git a/spec/services/report_invalid_config_spec.rb b/spec/services/report_invalid_config_spec.rb index b2ea38f4a..df13145e3 100644 --- a/spec/services/report_invalid_config_spec.rb +++ b/spec/services/report_invalid_config_spec.rb @@ -1,7 +1,7 @@ require "rails_helper" describe ReportInvalidConfig do - describe ".run" do + describe ".call" do context "given a custom message" do it "reports the file as an invalid config file to Github" do commit_status = stubbed_commit_status(:set_config_error) @@ -11,7 +11,7 @@ linter_name = "ruby" message = "Invalid ruby file, woff" - ReportInvalidConfig.run( + ReportInvalidConfig.call( pull_request_number: pull_request_number, commit_sha: commit_sha, linter_name: linter_name, @@ -34,7 +34,7 @@ commit_sha = "abc123" linter_name = "ruby" - ReportInvalidConfig.run( + ReportInvalidConfig.call( pull_request_number: pull_request_number, commit_sha: commit_sha, linter_name: linter_name, diff --git a/spec/services/resolve_config_aliases_spec.rb b/spec/services/resolve_config_aliases_spec.rb index a3f7b2104..ff6e6f351 100644 --- a/spec/services/resolve_config_aliases_spec.rb +++ b/spec/services/resolve_config_aliases_spec.rb @@ -1,7 +1,7 @@ require "app/services/resolve_config_aliases" describe ResolveConfigAliases do - describe "#run" do + describe "#call" do context "when the config contains aliases" do it "renames them to the appropriate linter" do config = { @@ -9,7 +9,7 @@ "ruby" => { "enabled" => false }, } - expect(ResolveConfigAliases.run(config).keys). + expect(ResolveConfigAliases.call(config).keys). to match_array(["jshint", "ruby"]) end end diff --git a/spec/services/resolve_config_conflicts_spec.rb b/spec/services/resolve_config_conflicts_spec.rb index 220e6a10b..c5e2c8bd6 100644 --- a/spec/services/resolve_config_conflicts_spec.rb +++ b/spec/services/resolve_config_conflicts_spec.rb @@ -1,12 +1,12 @@ require "app/services/resolve_config_conflicts" describe ResolveConfigConflicts do - describe "#run" do + describe "#call" do context "given a config with conflicting linters" do it "disables the first conflicted linter found" do config = { "eslint" => { "enabled" => true } } - resolved_config = ResolveConfigConflicts.run(config) + resolved_config = ResolveConfigConflicts.call(config) expect(resolved_config["jshint"]).to eq("enabled" => false) expect(resolved_config["eslint"]).to eq("enabled" => true) diff --git a/spec/services/update_repo_status_spec.rb b/spec/services/update_repo_status_spec.rb index a74698443..7c2cc1174 100644 --- a/spec/services/update_repo_status_spec.rb +++ b/spec/services/update_repo_status_spec.rb @@ -1,7 +1,7 @@ require "rails_helper" describe UpdateRepoStatus do - describe "#run" do + describe "#call" do it "updates the repo name" do expected_repo_name = "foo/bar" repo = create(:repo, :active) @@ -12,7 +12,7 @@ private_repo?: repo.private, ) - UpdateRepoStatus.new(payload).run + UpdateRepoStatus.new(payload).call repo.reload expect(repo.name).to eq(expected_repo_name) @@ -28,7 +28,7 @@ private_repo?: expected_status, ) - UpdateRepoStatus.new(payload).run + UpdateRepoStatus.new(payload).call repo.reload expect(repo.private).to eq(expected_status) diff --git a/spec/support/background_jobs.rb b/spec/support/background_jobs.rb index 375c1026c..f43135e36 100644 --- a/spec/support/background_jobs.rb +++ b/spec/support/background_jobs.rb @@ -1,19 +1,19 @@ RSpec.configure do |config| config.around(:each, type: :feature) do |example| run_background_jobs_immediately do - example.run + example.call end end config.around(:each, type: :request) do |example| run_background_jobs_immediately do - example.run + example.call end end config.around(:each, type: :job) do |example| run_background_jobs_immediately do - example.run + example.call end end