Chore: Enable Users to create multiple accounts (#440)

Addresses: #402
- migrations to split roles and other attributes from users table
- make changes in code to accommodate this change

Co-authored-by: Sojan Jose <sojan@pepalo.com>
Co-authored-by: Pranav Raj Sreepuram <pranavrajs@gmail.com>
This commit is contained in:
Sojan Jose
2020-03-07 12:18:16 +05:30
committed by GitHub
co-authored by Pranav Raj Sreepuram
parent b2d5cc7b05
commit 8b4df986bf
25 changed files with 264 additions and 74 deletions
+2 -1
View File
@@ -5,7 +5,8 @@ require 'rails_helper'
RSpec.describe Account do
it { is_expected.to validate_presence_of(:name) }
it { is_expected.to have_many(:users).dependent(:destroy) }
it { is_expected.to have_many(:users).through(:account_users) }
it { is_expected.to have_many(:account_users) }
it { is_expected.to have_many(:inboxes).dependent(:destroy) }
it { is_expected.to have_many(:conversations).dependent(:destroy) }
it { is_expected.to have_many(:contacts).dependent(:destroy) }
+16
View File
@@ -0,0 +1,16 @@
# frozen_string_literal: true
require 'rails_helper'
RSpec.describe User do
let!(:account_user) { create(:account_user) }
describe 'notification_settings' do
it 'gets created with the right default settings' do
expect(account_user.user.notification_settings).not_to eq(nil)
expect(account_user.user.notification_settings.first.conversation_creation?).to eq(false)
expect(account_user.user.notification_settings.first.conversation_assignment?).to eq(true)
end
end
end
+2 -12
View File
@@ -8,12 +8,11 @@ RSpec.describe User do
context 'validations' do
it { is_expected.to validate_presence_of(:email) }
it { is_expected.to validate_presence_of(:name) }
it { is_expected.to validate_presence_of(:account_id) }
end
context 'associations' do
it { is_expected.to belong_to(:account) }
it { is_expected.to belong_to(:inviter).class_name('User').required(false) }
it { is_expected.to have_many(:accounts).through(:account_users) }
it { is_expected.to have_many(:account_users) }
it { is_expected.to have_many(:assigned_conversations).class_name('Conversation').dependent(:nullify) }
it { is_expected.to have_many(:inbox_members).dependent(:destroy) }
it { is_expected.to have_many(:notification_settings).dependent(:destroy) }
@@ -27,13 +26,4 @@ RSpec.describe User do
it { expect(user.pubsub_token).not_to eq(nil) }
it { expect(user.saved_changes.keys).not_to eq('pubsub_token') }
end
describe 'notification_settings' do
it 'gets created with the right default settings' do
expect(user.notification_settings).not_to eq(nil)
expect(user.notification_settings.first.conversation_creation?).to eq(false)
expect(user.notification_settings.first.conversation_assignment?).to eq(true)
end
end
end