Browse Source

Instantiate logs only where needed

pull/1710/head
Jack S 3 years ago
parent
commit
6094f41aa0
  1. 54
      spec/models/user_spec.rb

54
spec/models/user_spec.rb

@ -4,6 +4,12 @@ RSpec.describe User, type: :model do
describe "#new" do describe "#new" do
let(:user) { create(:user, old_user_id: "3") } let(:user) { create(:user, old_user_id: "3") }
let(:other_organisation) { create(:organisation) } let(:other_organisation) { create(:organisation) }
it "belongs to an organisation" do
expect(user.organisation).to be_a(Organisation)
end
describe "#owned_lettings_logs" do
let!(:owned_lettings_log) do let!(:owned_lettings_log) do
create( create(
:lettings_log, :lettings_log,
@ -12,6 +18,13 @@ RSpec.describe User, type: :model do
created_by: user, created_by: user,
) )
end end
it "has owned lettings logs through their organisation" do
expect(user.owned_lettings_logs.first).to eq(owned_lettings_log)
end
end
describe "#managed_lettings_logs" do
let!(:managed_lettings_log) do let!(:managed_lettings_log) do
create( create(
:lettings_log, :lettings_log,
@ -20,21 +33,32 @@ RSpec.describe User, type: :model do
) )
end end
it "belongs to an organisation" do it "has managed lettings logs through their organisation" do
expect(user.organisation).to be_a(Organisation) expect(user.managed_lettings_logs.first).to eq(managed_lettings_log)
end end
it "has owned lettings logs through their organisation" do
expect(user.owned_lettings_logs.first).to eq(owned_lettings_log)
end end
it "has managed lettings logs through their organisation" do describe "#lettings_logs" do
expect(user.managed_lettings_logs.first).to eq(managed_lettings_log) let!(:owned_lettings_log) do
create(
:lettings_log,
:completed,
managing_organisation: other_organisation,
created_by: user,
)
end
let!(:managed_lettings_log) do
create(
:lettings_log,
created_by: user,
owning_organisation: other_organisation,
)
end end
it "has lettings logs through their organisation" do it "has lettings logs through their organisation" do
expect(user.lettings_logs.to_a).to match_array([owned_lettings_log, managed_lettings_log]) expect(user.lettings_logs.to_a).to match_array([owned_lettings_log, managed_lettings_log])
end end
end
it "has a role" do it "has a role" do
expect(user.role).to eq("data_provider") expect(user.role).to eq("data_provider")
@ -136,6 +160,22 @@ RSpec.describe User, type: :model do
context "when the user is a Customer Support person" do context "when the user is a Customer Support person" do
let(:user) { create(:user, :support) } let(:user) { create(:user, :support) }
let!(:other_orgs_log) { create(:lettings_log) } let!(:other_orgs_log) { create(:lettings_log) }
let!(:owned_lettings_log) do
create(
:lettings_log,
:completed,
managing_organisation: other_organisation,
created_by: user,
)
end
let!(:managed_lettings_log) do
create(
:lettings_log,
created_by: user,
owning_organisation: other_organisation,
)
end
it "has access to logs from all organisations" do it "has access to logs from all organisations" do
expect(user.lettings_logs.to_a).to match_array([owned_lettings_log, managed_lettings_log, other_orgs_log]) expect(user.lettings_logs.to_a).to match_array([owned_lettings_log, managed_lettings_log, other_orgs_log])

Loading…
Cancel
Save