* WIP chat channel for orgs * Finalize * Enable upsert functionality for role switch * Private group chat * Rearrange permissions code * fix typo
34 lines
1.6 KiB
Ruby
34 lines
1.6 KiB
Ruby
require "rails_helper"
|
|
|
|
RSpec.describe OrganizationMembership, type: :model do
|
|
describe "validations" do
|
|
subject { build(:organization_membership) }
|
|
|
|
let(:organization) { create(:organization) }
|
|
|
|
it { is_expected.to validate_presence_of(:user_id) }
|
|
it { is_expected.to validate_presence_of(:organization_id) }
|
|
it { is_expected.to validate_presence_of(:type_of_user) }
|
|
it { is_expected.to validate_uniqueness_of(:user_id).scoped_to(:organization_id) }
|
|
it { is_expected.to validate_inclusion_of(:type_of_user).in_array(OrganizationMembership::USER_TYPES) }
|
|
|
|
it "creates member chat channel after save" do
|
|
create(:organization_membership, type_of_user: "member", organization: organization)
|
|
expect(ChatChannelMembership.last.role).to eq("member")
|
|
expect(ChatChannelMembership.last.chat_channel.channel_name).to eq("@#{organization.slug} private group chat")
|
|
end
|
|
|
|
it "adds user to existing org chat channel after save" do
|
|
chat_channel = create(:chat_channel, channel_name: "@#{organization.slug} private group chat")
|
|
organization_membership = create(:organization_membership, type_of_user: "member", organization: organization)
|
|
expect(chat_channel.active_users).to include(organization_membership.user)
|
|
end
|
|
|
|
it "updates chat channel membership if org membership is updated" do
|
|
organization_membership = create(:organization_membership, type_of_user: "member", organization: organization)
|
|
expect(ChatChannelMembership.last.role).to eq("member")
|
|
organization_membership.update(type_of_user: "admin")
|
|
expect(ChatChannelMembership.last.role).to eq("mod")
|
|
end
|
|
end
|
|
end
|