diff options
author | Eugen Rochko <eugen@zeonfederated.com> | 2017-04-05 03:31:45 +0200 |
---|---|---|
committer | Eugen Rochko <eugen@zeonfederated.com> | 2017-04-05 03:31:45 +0200 |
commit | ccb6a658fd1a2e596c95d5b8e7a39f72a5f5b14b (patch) | |
tree | 7b846b51e3c91fb93aa379361dfe7a811bf5a01c /spec/models/user_spec.rb | |
parent | 94d00f278819d34ef97d59d17eb289e9be217dfe (diff) | |
parent | 667ffafef8c8b7956cdd31b8f65d5e82778211d8 (diff) |
Merge branch 'fakenine-add_more_tests_to_models'
Diffstat (limited to 'spec/models/user_spec.rb')
-rw-r--r-- | spec/models/user_spec.rb | 52 |
1 files changed, 49 insertions, 3 deletions
diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index aa777fd39..eb2a4aaea 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -1,7 +1,53 @@ require 'rails_helper' RSpec.describe User, type: :model do - let(:account) { Fabricate(:account, username: 'alice') } + describe 'validations' do + it 'is invalid without an account' do + user = Fabricate.build(:user, account: nil) + user.valid? + expect(user).to model_have_error_on_field(:account) + end + + it 'is invalid without a valid locale' do + user = Fabricate.build(:user, locale: 'toto') + user.valid? + expect(user).to model_have_error_on_field(:locale) + end + + it 'is invalid without a valid email' do + user = Fabricate.build(:user, email: 'john@') + user.valid? + expect(user).to model_have_error_on_field(:email) + end + end + + describe 'scopes' do + describe 'recent' do + it 'returns an array of recent users ordered by id' do + user_1 = Fabricate(:user) + user_2 = Fabricate(:user) + expect(User.recent).to match_array([user_2, user_1]) + end + end + + describe 'admins' do + it 'returns an array of users who are admin' do + user_1 = Fabricate(:user, admin: false) + user_2 = Fabricate(:user, admin: true) + expect(User.admins).to match_array([user_2]) + end + end + + describe 'confirmed' do + it 'returns an array of users who are confirmed' do + user_1 = Fabricate(:user, confirmed_at: nil) + user_2 = Fabricate(:user, confirmed_at: Time.now) + expect(User.confirmed).to match_array([user_2]) + end + end + end + + let(:account) { Fabricate(:account, username: 'alice') } let(:password) { 'abcd1234' } describe 'blacklist' do @@ -10,7 +56,7 @@ RSpec.describe User, type: :model do expect(user.valid?).to be_truthy end - + it 'should not allow a blacklisted user to be created' do user = User.new(email: 'foo@mvrht.com', account: account, password: password) @@ -37,6 +83,6 @@ RSpec.describe User, type: :model do it 'should allow a user to be created if they are whitelisted' do user = User.new(email: 'foo@mastodon.space', account: account, password: password) expect(user.valid?).to be_truthy - end + end end end |