diff --git a/lib/pull_request.rb b/lib/pull_request.rb index 9333175..aaad718 100644 --- a/lib/pull_request.rb +++ b/lib/pull_request.rb @@ -40,7 +40,7 @@ def validate_single_commit def validate_files_changed commit = GitHubClient.instance.commit("alphagov/#{@api_response.base.repo.name}", @api_response.head.sha) files_changed = commit.files.map(&:filename) - allowed_files = ["yarn.lock", "Gemfile.lock", "Gemfile", "#{@api_response.base.repo.name}.gemspec"] + allowed_files = ["yarn.lock", "package.json", "Gemfile.lock", "Gemfile", "#{@api_response.base.repo.name}.gemspec"] (files_changed - allowed_files).empty? end diff --git a/spec/lib/pull_request_spec.rb b/spec/lib/pull_request_spec.rb index 053b60e..bc19518 100644 --- a/spec/lib/pull_request_spec.rb +++ b/spec/lib/pull_request_spec.rb @@ -219,6 +219,16 @@ def create_pull_request_instance expect(pr.validate_files_changed).to eq(true) end + it "returns true if PR changes package.json" do + pkg_json = head_commit_api_response[:files].first.dup + pkg_json[:filename] = "package.json" + head_commit_api_response[:files] << pkg_json + stub_remote_commit(head_commit_api_response) + + pr = PullRequest.new(pull_request_api_response) + expect(pr.validate_files_changed).to eq(true) + end + it "returns false if PR changes anything else" do head_commit_api_response[:files][0][:filename] = "something_else.rb" stub_remote_commit(head_commit_api_response)