16 changed files with 106 additions and 32 deletions
@ -1,6 +1,6 @@
|
||||
module Constants::Organisation |
||||
ORG_TYPE = { |
||||
"LA" => 1, |
||||
"PRP" => 2, |
||||
PROVIDER_TYPE = { |
||||
LA: 1, |
||||
PRP: 2, |
||||
}.freeze |
||||
end |
||||
|
@ -1,7 +1,7 @@
|
||||
module Constants::User |
||||
ROLES = { |
||||
"data_accessor" => 0, |
||||
"data_provider" => 1, |
||||
"data_coordinator" => 2, |
||||
data_accessor: 0, |
||||
data_provider: 1, |
||||
data_coordinator: 2, |
||||
}.freeze |
||||
end |
||||
|
@ -0,0 +1,13 @@
|
||||
class AdditionalUserFields2 < ActiveRecord::Migration[7.0] |
||||
def up |
||||
change_table :users, bulk: true do |t| |
||||
t.column :phone, :string |
||||
end |
||||
end |
||||
|
||||
def down |
||||
change_table :users, bulk: true do |t| |
||||
t.remove :phone |
||||
end |
||||
end |
||||
end |
@ -0,0 +1,9 @@
|
||||
class RenameProviderType < ActiveRecord::Migration[7.0] |
||||
def up |
||||
rename_column :organisations, :providertype, :provider_type |
||||
end |
||||
|
||||
def down |
||||
rename_column :organisations, :provider_type, :providertype |
||||
end |
||||
end |
@ -0,0 +1,13 @@
|
||||
<user:user xmlns:user="dclg:user"> |
||||
<user:id>fc7625a02b24ae16162aa63ae7cb33feeec0c373</user:id> |
||||
<user:password>xxx</user:password> |
||||
<user:full-name>John Doe</user:full-name> |
||||
<user:user-name>john.doe@gov.uk</user:user-name> |
||||
<user:institution>7c5bd5fb549c09a2c55d7cb90d7ba84927e64618</user:institution> |
||||
<user:email>john.doe@gov.uk</user:email> |
||||
<user:user-type>Data Provider</user:user-type> |
||||
<user:active>true</user:active> |
||||
<user:deleted>false</user:deleted> |
||||
<user:contact-priority-id>None</user:contact-priority-id> |
||||
<user:telephone-no>02012345678</user:telephone-no> |
||||
</user:user> |
@ -0,0 +1,37 @@
|
||||
require "rails_helper" |
||||
|
||||
RSpec.describe Imports::UserImportService do |
||||
let(:fixture_directory) { "spec/fixtures/softwire_imports/users" } |
||||
let(:user_file) { File.open("#{fixture_directory}/fc7625a02b24ae16162aa63ae7cb33feeec0c373.xml") } |
||||
let(:storage_service) { instance_double(StorageService) } |
||||
|
||||
context "when importing users" do |
||||
subject(:import_service) { described_class.new(storage_service) } |
||||
|
||||
before do |
||||
allow(storage_service).to receive(:list_files) |
||||
.and_return(["user_directory/fc7625a02b24ae16162aa63ae7cb33feeec0c373.xml"]) |
||||
allow(storage_service).to receive(:get_file_io) |
||||
.with("user_directory/fc7625a02b24ae16162aa63ae7cb33feeec0c373.xml") |
||||
.and_return(user_file) |
||||
end |
||||
|
||||
it "successfully create a user with the expected data" do |
||||
FactoryBot.create(:organisation, old_org_id: "7c5bd5fb549c09a2c55d7cb90d7ba84927e64618") |
||||
import_service.create_users("user_directory") |
||||
|
||||
user = User.find_by(old_user_id: "fc7625a02b24ae16162aa63ae7cb33feeec0c373") |
||||
expect(user.name).to eq("John Doe") |
||||
expect(user.email).to eq("john.doe@gov.uk") |
||||
expect(user.encrypted_password).not_to be_nil |
||||
expect(user.phone).to eq("02012345678") |
||||
expect(user).to be_data_provider |
||||
expect(user.organisation.old_org_id).to eq("7c5bd5fb549c09a2c55d7cb90d7ba84927e64618") |
||||
end |
||||
|
||||
it "refuses to create a user belonging to a non existing organisation" do |
||||
expect { import_service.create_users("user_directory") } |
||||
.to raise_error(ActiveRecord::RecordInvalid, /Organisation must exist/) |
||||
end |
||||
end |
||||
end |
Loading…
Reference in new issue