Browse Source

Use ENV var rather than param for host

pull/566/head
baarkerlounger 3 years ago
parent
commit
d39a8d7da9
  1. 2
      .env.example
  2. 6
      lib/tasks/onboarding_emails.rake
  3. 8
      spec/lib/tasks/onboarding_emails_spec.rb

2
.env.example

@ -3,3 +3,5 @@ DB_PASSWORD=postgres-password
GOVUK_NOTIFY_API_KEY=<notify-key-here-if-testing-emails-or-admin-users>
OTP_SECRET_ENCRYPTION_KEY="<Generate this using bundle exec rake secret>"
APP_HOST="http://localhost:3000"

6
lib/tasks/onboarding_emails.rake

@ -1,10 +1,10 @@
namespace :onboarding_emails do
desc "Send onboarding emails to private beta users"
task :send, %i[organisation_id host] => :environment do |_task, args|
task :send, %i[organisation_id] => :environment do |_task, args|
organisation_id = args[:organisation_id]
host = args[:host]
host = ENV["APP_HOST"]
raise "Organisation id must be provided" unless organisation_id
raise "host must be provided" unless host
raise "Host is not set" unless host
organisation = Organisation.find(organisation_id)
raise "Organisation #{organisation_id} does not exist" unless organisation

8
spec/lib/tasks/onboarding_emails_spec.rb

@ -9,14 +9,18 @@ describe "rake onboarding_emails:send", type: task do
let(:notify_client) { instance_double(Notifications::Client) }
let(:devise_notify_mailer) { DeviseNotifyMailer.new }
let(:reset_password_token) { "MCDH5y6Km-U7CFPgAMVS" }
let(:host) { "http://localhost:3000" }
before do
Rake.application.rake_require("tasks/onboarding_emails")
Rake::Task.define_task(:environment)
task.reenable
allow(DeviseNotifyMailer).to receive(:new).and_return(devise_notify_mailer)
allow(devise_notify_mailer).to receive(:notify_client).and_return(notify_client)
allow(notify_client).to receive(:send_email).and_return(true)
allow(Devise.token_generator).to receive(:generate).and_return(reset_password_token)
allow(ENV).to receive(:[])
allow(ENV).to receive(:[]).with("APP_HOST").and_return(host)
end
it "can send the onboarding emails" do
@ -26,12 +30,12 @@ describe "rake onboarding_emails:send", type: task do
template_id: "b48bc2cd-5887-4611-8296-d0ab3ed0e7fd",
personalisation: {
name: user.name,
link: "http://localhost:3000/account/password/edit?reset_password_token=#{reset_password_token}",
link: "#{host}/account/password/edit?reset_password_token=#{reset_password_token}",
},
},
)
task.invoke(user.organisation.id, "http://localhost:3000")
task.invoke(user.organisation.id)
end
end
end

Loading…
Cancel
Save