12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- require 'rails_helper'
- describe User do
- let(:bob) { users(:bob) }
- describe "validations" do
- describe "invitation_code" do
- context "when configured to use invitation codes" do
- before do
- allow(User).to receive(:using_invitation_code?) {true}
- end
-
- it "only accepts valid invitation codes" do
- User::INVITATION_CODES.each do |v|
- should allow_value(v).for(:invitation_code)
- end
- end
-
- it "can reject invalid invitation codes" do
- %w['foo', 'bar'].each do |v|
- should_not allow_value(v).for(:invitation_code)
- end
- end
- it "requires no authentication code when requires_no_invitation_code! is called" do
- u = User.new(username: 'test', email: 'test@test.com', password: '12345678', password_confirmation: '12345678')
- u.requires_no_invitation_code!
- expect(u).to be_valid
- end
- end
-
- context "when configured not to use invitation codes" do
- before do
- allow(User).to receive(:using_invitation_code?) {false}
- end
-
- it "skips this validation" do
- %w['foo', 'bar', nil, ''].each do |v|
- should allow_value(v).for(:invitation_code)
- end
- end
- end
- end
- end
- context '#deactivate!' do
- it "deactivates the user and all her agents" do
- agent = agents(:jane_website_agent)
- users(:jane).deactivate!
- agent.reload
- expect(agent.deactivated).to be_truthy
- expect(users(:jane).deactivated_at).not_to be_nil
- end
- end
- context '#activate!' do
- before do
- users(:bob).deactivate!
- end
- it 'activates the user and all his agents' do
- agent = agents(:bob_website_agent)
- users(:bob).activate!
- agent.reload
- expect(agent.deactivated).to be_falsy
- expect(users(:bob).deactivated_at).to be_nil
- end
- end
- context '#undefined_agent_types' do
- it 'returns an empty array when no agents are undefined' do
- expect(bob.undefined_agent_types).to be_empty
- end
- it 'returns the undefined agent types' do
- agent = agents(:bob_website_agent)
- agent.update_attribute(:type, 'Agents::UndefinedAgent')
- expect(bob.undefined_agent_types).to match_array(['Agents::UndefinedAgent'])
- end
- end
- context '#undefined_agents' do
- it 'returns an empty array when no agents are undefined' do
- expect(bob.undefined_agents).to be_empty
- end
- it 'returns the undefined agent types' do
- agent = agents(:bob_website_agent)
- agent.update_attribute(:type, 'Agents::UndefinedAgent')
- expect(bob.undefined_agents).not_to be_empty
- expect(bob.undefined_agents.first).to be_a(Agent)
- end
- end
- end
|