Skip to content

Commit

Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'main' into dependabot/bundler/rails-7.0.8.7
Browse files Browse the repository at this point in the history
PaulDoyle-EA authored Jan 6, 2025
2 parents f699058 + c02d3a1 commit c099fc2
Showing 18 changed files with 87 additions and 239 deletions.
8 changes: 5 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -66,12 +66,14 @@ jobs:
# https://community.sonarsource.com/t/code-coverage-doesnt-work-with-github-action/16747/6
- name: Run unit tests
run: |
bundle exec rails test
bundle exec rspec
sed -i 's/\/home\/runner\/work\/waste-carriers-engine\/waste-carriers-engine\//\/github\/workspace\//g' coverage/coverage.json
- name: Update coverage output
run: |
sed -i "s@/home/runner/work/DEFRA/pafs_core@/github/workspace@g" coverage/coverage.json
- name: Analyze with SonarCloud
uses: sonarsource/sonarcloud-github-action@master
uses: sonarsource/sonarqube-scan-action@master
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # This is provided automatically by GitHub
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} # This needs to be set in your repo; settings -> secrets
11 changes: 8 additions & 3 deletions Gemfile.lock
Original file line number Diff line number Diff line change
@@ -6,9 +6,10 @@ PATH
countries (~> 5.5.0)
defra_ruby_address (~> 0.1.0)
defra_ruby_alert (~> 2.2.1)
defra_ruby_companies_house
defra_ruby_email (~> 1.3.0)
defra_ruby_govpay
defra_ruby_validators (~> 2.6)
defra_ruby_validators (~> 3.0)
high_voltage (~> 3.1.2)
jbuilder (~> 2.11.5)
mongo_session_store (~> 3.2.1)
@@ -143,6 +144,9 @@ GEM
rest-client (~> 2.0)
defra_ruby_alert (2.2.1)
airbrake
defra_ruby_companies_house (1.0.0)
i18n
rest-client (~> 2.0)
defra_ruby_email (1.3.0)
notifications-ruby-client
rails
@@ -152,8 +156,9 @@ GEM
defra_ruby_style (0.3.0)
rubocop (>= 1.0, < 2.0)
defra_ruby_template (5.4.1)
defra_ruby_validators (2.7.2)
defra_ruby_validators (3.0.0)
activemodel
defra_ruby_companies_house
i18n
matrix
os_map_ref
@@ -273,7 +278,7 @@ GEM
parser (3.2.2.4)
ast (~> 2.4.1)
racc
phonelib (0.9.3)
phonelib (0.10.1)
protocol-hpack (1.4.2)
protocol-http (0.25.0)
protocol-http1 (0.16.0)
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# frozen_string_literal: true

require "defra_ruby_companies_house"
require "defra_ruby/companies_house"

module WasteCarriersEngine
class CheckRegisteredCompanyNameFormsController < ::WasteCarriersEngine::FormsController
@@ -26,7 +26,8 @@ def transient_registration_attributes
end

def company_name
DefraRubyCompaniesHouse.new(@transient_registration.company_no).company_name
company_details = DefraRuby::CompaniesHouse::API.run(company_number: @transient_registration.company_no)
company_details[:company_name]
end
end
end
Original file line number Diff line number Diff line change
@@ -8,11 +8,11 @@ class CheckRegisteredCompanyNameForm < ::WasteCarriersEngine::BaseForm
validates :temp_use_registered_company_details, "waste_carriers_engine/yes_no": true

def registered_company_name
companies_house_service.company_name
@registered_company_name ||= companies_house_details[:company_name]
end

def registered_office_address_lines
companies_house_service.registered_office_address_lines
@registered_office_address_lines ||= companies_house_details[:registered_office_address]
end

def submit(params)
@@ -26,8 +26,8 @@ def submit(params)

private

def companies_house_service
@_companies_house_service ||= DefraRubyCompaniesHouse.new(company_no)
def companies_house_details
@_companies_house_details ||= DefraRuby::CompaniesHouse::API.run(company_number: company_no)
end
end
end
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# frozen_string_literal: true

require "defra_ruby_companies_house"
require "defra_ruby/companies_house"

module WasteCarriersEngine
# rubocop:disable Metrics/ModuleLength
@@ -258,9 +258,11 @@ def company_status_invalid?
return false if company_no.blank? || overseas?

begin
company_status = DefraRubyCompaniesHouse.new(company_no).company_status
company_status = DefraRuby::CompaniesHouse::API.run(company_number: company_no)[:company_status]
!%w[active voluntary-arrangement].include?(company_status)
rescue StandardError
rescue StandardError => e
Rails.logger.error "Error checking company status: #{e}"
Airbrake.notify(e)
true
end
end
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
# frozen_string_literal: true

require "defra_ruby_companies_house"
require "defra_ruby/companies_house"

module WasteCarriersEngine
class RefreshCompaniesHouseNameService < WasteCarriersEngine::BaseService
def run(reg_identifier:)
registration = Registration.find_by(reg_identifier: reg_identifier)

company_name = DefraRubyCompaniesHouse.new(registration.company_no).company_name
registration.registered_company_name = company_name
company_details = DefraRuby::CompaniesHouse::API.run(company_number: registration.company_no)

registration.registered_company_name = company_details[:company_name]
registration.companies_house_updated_at = Time.current
registration.save!

55 changes: 0 additions & 55 deletions lib/defra_ruby_companies_house.rb

This file was deleted.

4 changes: 2 additions & 2 deletions lib/waste_carriers_engine.rb
Original file line number Diff line number Diff line change
@@ -37,13 +37,13 @@ def initialize
end

def companies_house_host=(value)
DefraRuby::Validators.configure do |configuration|
DefraRuby::CompaniesHouse.configure do |configuration|
configuration.companies_house_host = value
end
end

def companies_house_api_key=(value)
DefraRuby::Validators.configure do |configuration|
DefraRuby::CompaniesHouse.configure do |configuration|
configuration.companies_house_api_key = value
end
end
2 changes: 1 addition & 1 deletion spec/dummy/config/application.rb
Original file line number Diff line number Diff line change
@@ -53,7 +53,7 @@ class Application < Rails::Application
config.airbrake_key = ENV["WCRS_RENEWALS_AIRBRAKE_PROJECT_KEY"] || "dummy"

# Companies House config
config.companies_house_host = ENV["WCRS_COMPANIES_HOUSE_URL"] || "https://api.companieshouse.gov.uk/company/"
config.companies_house_host = ENV["WCRS_COMPANIES_HOUSE_URL"] || "https://api.companieshouse.gov.uk/"
config.companies_house_api_key = ENV["WCRS_COMPANIES_HOUSE_API_KEY"]

# Paths
2 changes: 1 addition & 1 deletion spec/dummy/config/initializers/waste_carriers_engine.rb
Original file line number Diff line number Diff line change
@@ -2,7 +2,7 @@

WasteCarriersEngine.configure do |config|
# Companies House API config
config.companies_house_host = ENV["WCRS_COMPANIES_HOUSE_URL"] || "https://api.companieshouse.gov.uk/company/"
config.companies_house_host = ENV["WCRS_COMPANIES_HOUSE_URL"] || "https://api.companieshouse.gov.uk/"
config.companies_house_api_key = ENV["WCRS_COMPANIES_HOUSE_API_KEY"]

# Airbrake config
Original file line number Diff line number Diff line change
@@ -1,18 +1,23 @@
# frozen_string_literal: true

require "rails_helper"
require "defra_ruby_companies_house"
require "defra_ruby/companies_house"

module WasteCarriersEngine
RSpec.describe CheckRegisteredCompanyNameForm do
let(:registered_company_name) { Faker::Company.name }
let(:company_address) { ["10 Downing St", "Horizon House", "Bristol", "BS1 5AH"] }
let(:companies_house_service) { instance_double(DefraRubyCompaniesHouse) }
let(:companies_house_api) { instance_double(DefraRuby::CompaniesHouse::API) }
let(:companies_house_api_response) do
{
company_name: registered_company_name,
registered_office_address: company_address
}
end

before do
allow(DefraRubyCompaniesHouse).to receive(:new).and_return(companies_house_service)
allow(companies_house_service).to receive(:company_name).and_return(registered_company_name)
allow(companies_house_service).to receive(:registered_office_address_lines).and_return(company_address)
allow(DefraRuby::CompaniesHouse::API).to receive(:new).and_return(companies_house_api)
allow(companies_house_api).to receive(:run).and_return(companies_house_api_response)
end

describe "#submit" do
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
# frozen_string_literal: true

require "rails_helper"
require "defra_ruby_companies_house"

module WasteCarriersEngine
RSpec.describe UseTradingNameForm do
135 changes: 0 additions & 135 deletions spec/lib/defra_ruby_companies_house_spec.rb

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# frozen_string_literal: true

require "rails_helper"
require "defra_ruby_companies_house"
require "defra_ruby/companies_house"

module WasteCarriersEngine
RSpec.describe RenewingRegistration do
@@ -17,13 +17,19 @@ module WasteCarriersEngine
let(:tier) { WasteCarriersEngine::Registration::UPPER_TIER }
let(:business_type) { nil }
let(:location) { "england" }
let(:defra_ruby_companies_house) { instance_double(DefraRubyCompaniesHouse) }
let(:companies_house_api) { instance_double(DefraRuby::CompaniesHouse::API) }
let(:companies_house_api_reponse) do
{
company_status:
}
end

let(:company_status) { "active" }
let(:company_number) { "12345678" }

before do
allow(DefraRubyCompaniesHouse).to receive(:new).and_return(defra_ruby_companies_house)
allow(defra_ruby_companies_house).to receive(:company_status).and_return(company_status)
allow(DefraRuby::CompaniesHouse::API).to receive(:new).and_return(companies_house_api)
allow(companies_house_api).to receive(:run).and_return(companies_house_api_reponse)
end

describe "#workflow_state" do
@@ -119,7 +125,7 @@ module WasteCarriersEngine

context "when Companies House Api returns an error" do
before do
allow(defra_ruby_companies_house).to receive(:company_status).and_raise(StandardError)
allow(companies_house_api).to receive(:run).and_raise(StandardError)
end

context "when the business type is limitedCompany with non-UK company number" do
Original file line number Diff line number Diff line change
@@ -1,19 +1,24 @@
# frozen_string_literal: true

require "rails_helper"
require "defra_ruby_companies_house"
require "defra_ruby/companies_house"

module WasteCarriersEngine
RSpec.describe "CheckRegisteredCompanyNameForms" do

let(:company_name) { Faker::Company.name }
let(:company_address) { ["10 Downing St", "Horizon House", "Bristol", "BS1 5AH"] }
let(:companies_house_service) { instance_double(DefraRubyCompaniesHouse) }
let(:companies_house_api) { instance_double(DefraRuby::CompaniesHouse::API) }
let(:companies_house_api_reponse) do
{
company_name:,
registered_office_address: company_address
}
end

before do
allow(DefraRubyCompaniesHouse).to receive(:new).and_return(companies_house_service)
allow(companies_house_service).to receive(:company_name).and_return(company_name)
allow(companies_house_service).to receive(:registered_office_address_lines).and_return(company_address)
allow(DefraRuby::CompaniesHouse::API).to receive(:new).and_return(companies_house_api)
allow(companies_house_api).to receive(:run).and_return(companies_house_api_reponse)
end

include_examples "GET flexible form", "check_registered_company_name_form"
@@ -42,7 +47,7 @@ module WasteCarriersEngine

context "when the company house API is down" do
before do
allow(companies_house_service).to receive(:company_name).and_raise(StandardError)
allow(companies_house_api).to receive(:run).and_raise(StandardError)
end

it "raises an error" do
Original file line number Diff line number Diff line change
@@ -1,15 +1,20 @@
# frozen_string_literal: true

require "rails_helper"
require "defra_ruby_companies_house"
require "defra_ruby/companies_house"

module WasteCarriersEngine
RSpec.describe "RenewalInformationForms" do
let(:defra_ruby_companies_house) { instance_double(DefraRubyCompaniesHouse) }
let(:defra_ruby_companies_api) { instance_double(DefraRuby::CompaniesHouse::API) }
let(:companies_house_api_response) do
{
company_status: "active"
}
end

before do
allow(DefraRubyCompaniesHouse).to receive(:new).and_return(defra_ruby_companies_house)
allow(defra_ruby_companies_house).to receive(:company_status).and_return("active")
allow(DefraRuby::CompaniesHouse::API).to receive(:new).and_return(defra_ruby_companies_api)
allow(defra_ruby_companies_api).to receive(:run).and_return(companies_house_api_response)
end

include_examples "GET flexible form", "renewal_information_form"
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# frozen_string_literal: true

require "rails_helper"
require "defra_ruby_companies_house"
require "defra_ruby/companies_house"

RSpec.describe WasteCarriersEngine::RefreshCompaniesHouseNameService do

@@ -11,12 +11,16 @@
let(:registration) { create(:registration, :has_required_data, registered_company_name: old_registered_name) }
let(:reg_identifier) { registration.reg_identifier }
let(:companies_house_name) { new_registered_name }
let(:drch_instance) { instance_double(DefraRubyCompaniesHouse) }
let(:companies_house_api) { instance_double(DefraRuby::CompaniesHouse::API) }
let(:companies_house_api_reponse) do
{
company_name: companies_house_name
}
end

before do
allow(DefraRubyCompaniesHouse).to receive(:new).and_return(drch_instance)
allow(drch_instance).to receive(:load_company).and_return(true)
allow(drch_instance).to receive(:company_name).and_return(companies_house_name)
allow(DefraRuby::CompaniesHouse::API).to receive(:new).and_return(companies_house_api)
allow(companies_house_api).to receive(:run).and_return(companies_house_api_reponse)
end

context "with no previous companies house name" do
5 changes: 4 additions & 1 deletion waste_carriers_engine.gemspec
Original file line number Diff line number Diff line change
@@ -48,7 +48,7 @@ Gem::Specification.new do |s|
s.add_dependency "high_voltage", "~> 3.1.2"

# Validations
s.add_dependency "defra_ruby_validators", "~> 2.6"
s.add_dependency "defra_ruby_validators", "~> 3.0"
s.add_dependency "uk_postcode", "~> 2.1.8"

s.add_dependency "defra_ruby_govpay"
@@ -60,6 +60,9 @@ Gem::Specification.new do |s|
# EA Address Facade v1)
s.add_dependency "defra_ruby_address", "~> 0.1.0"

# # Used to access the Companies House API for company details validation
s.add_dependency "defra_ruby_companies_house"

# Used as part of testing. When enabled adds a /last-email route from which
# details of the last email sent by the app can be accessed
s.add_dependency "defra_ruby_email", "~> 1.3.0"

0 comments on commit c099fc2

Please sign in to comment.