Simplify basic presence validations (#29664)
This commit is contained in:
		
							parent
							
								
									bc435c63bd
								
							
						
					
					
						commit
						5acec087ca
					
				| @ -64,14 +64,7 @@ RSpec.describe Announcement do | |||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|   describe 'Validations' do |   describe 'Validations' do | ||||||
|     describe 'text' do |     it { is_expected.to validate_presence_of(:text) } | ||||||
|       it 'validates presence of attribute' do |  | ||||||
|         record = Fabricate.build(:announcement, text: nil) |  | ||||||
| 
 |  | ||||||
|         expect(record).to_not be_valid |  | ||||||
|         expect(record.errors[:text]).to be_present |  | ||||||
|       end |  | ||||||
|     end |  | ||||||
| 
 | 
 | ||||||
|     describe 'ends_at' do |     describe 'ends_at' do | ||||||
|       it 'validates presence when starts_at is present' do |       it 'validates presence when starts_at is present' do | ||||||
|  | |||||||
| @ -4,17 +4,8 @@ require 'rails_helper' | |||||||
| 
 | 
 | ||||||
| RSpec.describe Block do | RSpec.describe Block do | ||||||
|   describe 'validations' do |   describe 'validations' do | ||||||
|     it 'is invalid without an account' do |     it { is_expected.to belong_to(:account).required } | ||||||
|       block = Fabricate.build(:block, account: nil) |     it { is_expected.to belong_to(:target_account).required } | ||||||
|       block.valid? |  | ||||||
|       expect(block).to model_have_error_on_field(:account) |  | ||||||
|     end |  | ||||||
| 
 |  | ||||||
|     it 'is invalid without a target_account' do |  | ||||||
|       block = Fabricate.build(:block, target_account: nil) |  | ||||||
|       block.valid? |  | ||||||
|       expect(block).to model_have_error_on_field(:target_account) |  | ||||||
|     end |  | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|   it 'removes blocking cache after creation' do |   it 'removes blocking cache after creation' do | ||||||
|  | |||||||
| @ -4,11 +4,6 @@ require 'rails_helper' | |||||||
| 
 | 
 | ||||||
| RSpec.describe CustomEmojiCategory do | RSpec.describe CustomEmojiCategory do | ||||||
|   describe 'validations' do |   describe 'validations' do | ||||||
|     it 'validates name presence' do |     it { is_expected.to validate_presence_of(:name) } | ||||||
|       record = described_class.new(name: nil) |  | ||||||
| 
 |  | ||||||
|       expect(record).to_not be_valid |  | ||||||
|       expect(record).to model_have_error_on_field(:name) |  | ||||||
|     end |  | ||||||
|   end |   end | ||||||
| end | end | ||||||
|  | |||||||
| @ -4,19 +4,8 @@ require 'rails_helper' | |||||||
| 
 | 
 | ||||||
| RSpec.describe CustomFilter do | RSpec.describe CustomFilter do | ||||||
|   describe 'Validations' do |   describe 'Validations' do | ||||||
|     it 'requires presence of title' do |     it { is_expected.to validate_presence_of(:title) } | ||||||
|       record = described_class.new(title: '') |     it { is_expected.to validate_presence_of(:context) } | ||||||
|       record.valid? |  | ||||||
| 
 |  | ||||||
|       expect(record).to model_have_error_on_field(:title) |  | ||||||
|     end |  | ||||||
| 
 |  | ||||||
|     it 'requires presence of context' do |  | ||||||
|       record = described_class.new(context: nil) |  | ||||||
|       record.valid? |  | ||||||
| 
 |  | ||||||
|       expect(record).to model_have_error_on_field(:context) |  | ||||||
|     end |  | ||||||
| 
 | 
 | ||||||
|     it 'requires non-empty of context' do |     it 'requires non-empty of context' do | ||||||
|       record = described_class.new(context: []) |       record = described_class.new(context: []) | ||||||
|  | |||||||
| @ -4,11 +4,7 @@ require 'rails_helper' | |||||||
| 
 | 
 | ||||||
| RSpec.describe DomainAllow do | RSpec.describe DomainAllow do | ||||||
|   describe 'Validations' do |   describe 'Validations' do | ||||||
|     it 'is invalid without a domain' do |     it { is_expected.to validate_presence_of(:domain) } | ||||||
|       domain_allow = Fabricate.build(:domain_allow, domain: nil) |  | ||||||
|       domain_allow.valid? |  | ||||||
|       expect(domain_allow).to model_have_error_on_field(:domain) |  | ||||||
|     end |  | ||||||
| 
 | 
 | ||||||
|     it 'is invalid if the same normalized domain already exists' do |     it 'is invalid if the same normalized domain already exists' do | ||||||
|       _domain_allow = Fabricate(:domain_allow, domain: 'にゃん') |       _domain_allow = Fabricate(:domain_allow, domain: 'にゃん') | ||||||
|  | |||||||
| @ -4,11 +4,7 @@ require 'rails_helper' | |||||||
| 
 | 
 | ||||||
| RSpec.describe DomainBlock do | RSpec.describe DomainBlock do | ||||||
|   describe 'validations' do |   describe 'validations' do | ||||||
|     it 'is invalid without a domain' do |     it { is_expected.to validate_presence_of(:domain) } | ||||||
|       domain_block = Fabricate.build(:domain_block, domain: nil) |  | ||||||
|       domain_block.valid? |  | ||||||
|       expect(domain_block).to model_have_error_on_field(:domain) |  | ||||||
|     end |  | ||||||
| 
 | 
 | ||||||
|     it 'is invalid if the same normalized domain already exists' do |     it 'is invalid if the same normalized domain already exists' do | ||||||
|       _domain_block = Fabricate(:domain_block, domain: 'にゃん') |       _domain_block = Fabricate(:domain_block, domain: 'にゃん') | ||||||
|  | |||||||
| @ -9,17 +9,8 @@ RSpec.describe Follow do | |||||||
|   describe 'validations' do |   describe 'validations' do | ||||||
|     subject { described_class.new(account: alice, target_account: bob, rate_limit: true) } |     subject { described_class.new(account: alice, target_account: bob, rate_limit: true) } | ||||||
| 
 | 
 | ||||||
|     it 'is invalid without an account' do |     it { is_expected.to belong_to(:account).required } | ||||||
|       follow = Fabricate.build(:follow, account: nil) |     it { is_expected.to belong_to(:target_account).required } | ||||||
|       follow.valid? |  | ||||||
|       expect(follow).to model_have_error_on_field(:account) |  | ||||||
|     end |  | ||||||
| 
 |  | ||||||
|     it 'is invalid without a target_account' do |  | ||||||
|       follow = Fabricate.build(:follow, target_account: nil) |  | ||||||
|       follow.valid? |  | ||||||
|       expect(follow).to model_have_error_on_field(:target_account) |  | ||||||
|     end |  | ||||||
| 
 | 
 | ||||||
|     it 'is invalid if account already follows too many people' do |     it 'is invalid if account already follows too many people' do | ||||||
|       alice.update(following_count: FollowLimitValidator::LIMIT) |       alice.update(following_count: FollowLimitValidator::LIMIT) | ||||||
|  | |||||||
| @ -3,19 +3,8 @@ | |||||||
| require 'rails_helper' | require 'rails_helper' | ||||||
| 
 | 
 | ||||||
| RSpec.describe Import do | RSpec.describe Import do | ||||||
|   let(:account) { Fabricate(:account) } |   describe 'Validations' do | ||||||
|   let(:type) { 'following' } |     it { is_expected.to validate_presence_of(:type) } | ||||||
|   let(:data) { attachment_fixture('imports.txt') } |     it { is_expected.to validate_presence_of(:data) } | ||||||
| 
 |  | ||||||
|   describe 'validations' do |  | ||||||
|     it 'is invalid without an type' do |  | ||||||
|       import = described_class.create(account: account, data: data) |  | ||||||
|       expect(import).to model_have_error_on_field(:type) |  | ||||||
|     end |  | ||||||
| 
 |  | ||||||
|     it 'is invalid without a data' do |  | ||||||
|       import = described_class.create(account: account, type: type) |  | ||||||
|       expect(import).to model_have_error_on_field(:data) |  | ||||||
|     end |  | ||||||
|   end |   end | ||||||
| end | end | ||||||
|  | |||||||
| @ -4,19 +4,8 @@ require 'rails_helper' | |||||||
| 
 | 
 | ||||||
| RSpec.describe IpBlock do | RSpec.describe IpBlock do | ||||||
|   describe 'validations' do |   describe 'validations' do | ||||||
|     it 'validates ip presence', :aggregate_failures do |     it { is_expected.to validate_presence_of(:ip) } | ||||||
|       ip_block = described_class.new(ip: nil, severity: :no_access) |     it { is_expected.to validate_presence_of(:severity) } | ||||||
| 
 |  | ||||||
|       expect(ip_block).to_not be_valid |  | ||||||
|       expect(ip_block).to model_have_error_on_field(:ip) |  | ||||||
|     end |  | ||||||
| 
 |  | ||||||
|     it 'validates severity presence', :aggregate_failures do |  | ||||||
|       ip_block = described_class.new(ip: '127.0.0.1', severity: nil) |  | ||||||
| 
 |  | ||||||
|       expect(ip_block).to_not be_valid |  | ||||||
|       expect(ip_block).to model_have_error_on_field(:severity) |  | ||||||
|     end |  | ||||||
| 
 | 
 | ||||||
|     it 'validates ip uniqueness', :aggregate_failures do |     it 'validates ip uniqueness', :aggregate_failures do | ||||||
|       described_class.create!(ip: '127.0.0.1', severity: :no_access) |       described_class.create!(ip: '127.0.0.1', severity: :no_access) | ||||||
|  | |||||||
| @ -3,14 +3,7 @@ | |||||||
| require 'rails_helper' | require 'rails_helper' | ||||||
| 
 | 
 | ||||||
| RSpec.describe Marker do | RSpec.describe Marker do | ||||||
|   describe 'validations' do |   describe 'Validations' do | ||||||
|     describe 'timeline' do |     it { is_expected.to validate_inclusion_of(:timeline).in_array(described_class::TIMELINES) } | ||||||
|       it 'must be included in valid list' do |  | ||||||
|         record = described_class.new(timeline: 'not real timeline') |  | ||||||
| 
 |  | ||||||
|         expect(record).to_not be_valid |  | ||||||
|         expect(record).to model_have_error_on_field(:timeline) |  | ||||||
|       end |  | ||||||
|     end |  | ||||||
|   end |   end | ||||||
| end | end | ||||||
|  | |||||||
| @ -257,12 +257,7 @@ RSpec.describe MediaAttachment, :attachment_processing do | |||||||
|     end |     end | ||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|   it 'is invalid without file' do |   it { is_expected.to validate_presence_of(:file) } | ||||||
|     media = described_class.new |  | ||||||
| 
 |  | ||||||
|     expect(media.valid?).to be false |  | ||||||
|     expect(media).to model_have_error_on_field(:file) |  | ||||||
|   end |  | ||||||
| 
 | 
 | ||||||
|   describe 'size limit validation' do |   describe 'size limit validation' do | ||||||
|     it 'rejects video files that are too large' do |     it 'rejects video files that are too large' do | ||||||
|  | |||||||
| @ -4,16 +4,7 @@ require 'rails_helper' | |||||||
| 
 | 
 | ||||||
| RSpec.describe Mention do | RSpec.describe Mention do | ||||||
|   describe 'validations' do |   describe 'validations' do | ||||||
|     it 'is invalid without an account' do |     it { is_expected.to belong_to(:account).required } | ||||||
|       mention = Fabricate.build(:mention, account: nil) |     it { is_expected.to belong_to(:status).required } | ||||||
|       mention.valid? |  | ||||||
|       expect(mention).to model_have_error_on_field(:account) |  | ||||||
|     end |  | ||||||
| 
 |  | ||||||
|     it 'is invalid without a status' do |  | ||||||
|       mention = Fabricate.build(:mention, status: nil) |  | ||||||
|       mention.valid? |  | ||||||
|       expect(mention).to model_have_error_on_field(:status) |  | ||||||
|     end |  | ||||||
|   end |   end | ||||||
| end | end | ||||||
|  | |||||||
| @ -32,12 +32,9 @@ RSpec.describe Poll do | |||||||
| 
 | 
 | ||||||
|   describe 'validations' do |   describe 'validations' do | ||||||
|     context 'when not valid' do |     context 'when not valid' do | ||||||
|       let(:poll) { Fabricate.build(:poll, expires_at: nil) } |       subject { Fabricate.build(:poll) } | ||||||
| 
 | 
 | ||||||
|       it 'is invalid without an expire date' do |       it { is_expected.to validate_presence_of(:expires_at) } | ||||||
|         poll.valid? |  | ||||||
|         expect(poll).to model_have_error_on_field(:expires_at) |  | ||||||
|       end |  | ||||||
|     end |     end | ||||||
|   end |   end | ||||||
| end | end | ||||||
|  | |||||||
| @ -32,11 +32,7 @@ RSpec.describe User do | |||||||
|   end |   end | ||||||
| 
 | 
 | ||||||
|   describe 'validations' do |   describe 'validations' do | ||||||
|     it 'is invalid without an account' do |     it { is_expected.to belong_to(:account).required } | ||||||
|       user = Fabricate.build(:user, account: nil) |  | ||||||
|       user.valid? |  | ||||||
|       expect(user).to model_have_error_on_field(:account) |  | ||||||
|     end |  | ||||||
| 
 | 
 | ||||||
|     it 'is invalid without a valid email' do |     it 'is invalid without a valid email' do | ||||||
|       user = Fabricate.build(:user, email: 'john@') |       user = Fabricate.build(:user, email: 'john@') | ||||||
|  | |||||||
| @ -4,37 +4,10 @@ require 'rails_helper' | |||||||
| 
 | 
 | ||||||
| RSpec.describe WebauthnCredential do | RSpec.describe WebauthnCredential do | ||||||
|   describe 'validations' do |   describe 'validations' do | ||||||
|     it 'is invalid without an external id' do |     it { is_expected.to validate_presence_of(:external_id) } | ||||||
|       webauthn_credential = Fabricate.build(:webauthn_credential, external_id: nil) |     it { is_expected.to validate_presence_of(:public_key) } | ||||||
| 
 |     it { is_expected.to validate_presence_of(:nickname) } | ||||||
|       webauthn_credential.valid? |     it { is_expected.to validate_presence_of(:sign_count) } | ||||||
| 
 |  | ||||||
|       expect(webauthn_credential).to model_have_error_on_field(:external_id) |  | ||||||
|     end |  | ||||||
| 
 |  | ||||||
|     it 'is invalid without a public key' do |  | ||||||
|       webauthn_credential = Fabricate.build(:webauthn_credential, public_key: nil) |  | ||||||
| 
 |  | ||||||
|       webauthn_credential.valid? |  | ||||||
| 
 |  | ||||||
|       expect(webauthn_credential).to model_have_error_on_field(:public_key) |  | ||||||
|     end |  | ||||||
| 
 |  | ||||||
|     it 'is invalid without a nickname' do |  | ||||||
|       webauthn_credential = Fabricate.build(:webauthn_credential, nickname: nil) |  | ||||||
| 
 |  | ||||||
|       webauthn_credential.valid? |  | ||||||
| 
 |  | ||||||
|       expect(webauthn_credential).to model_have_error_on_field(:nickname) |  | ||||||
|     end |  | ||||||
| 
 |  | ||||||
|     it 'is invalid without a sign_count' do |  | ||||||
|       webauthn_credential = Fabricate.build(:webauthn_credential, sign_count: nil) |  | ||||||
| 
 |  | ||||||
|       webauthn_credential.valid? |  | ||||||
| 
 |  | ||||||
|       expect(webauthn_credential).to model_have_error_on_field(:sign_count) |  | ||||||
|     end |  | ||||||
| 
 | 
 | ||||||
|     it 'is invalid if already exist a webauthn credential with the same external id' do |     it 'is invalid if already exist a webauthn credential with the same external id' do | ||||||
|       Fabricate(:webauthn_credential, external_id: '_Typ0ygudDnk9YUVWLQayw') |       Fabricate(:webauthn_credential, external_id: '_Typ0ygudDnk9YUVWLQayw') | ||||||
|  | |||||||
| @ -6,12 +6,7 @@ RSpec.describe Webhook do | |||||||
|   let(:webhook) { Fabricate(:webhook) } |   let(:webhook) { Fabricate(:webhook) } | ||||||
| 
 | 
 | ||||||
|   describe 'Validations' do |   describe 'Validations' do | ||||||
|     it 'requires presence of events' do |     it { is_expected.to validate_presence_of(:events) } | ||||||
|       record = described_class.new(events: nil) |  | ||||||
|       record.valid? |  | ||||||
| 
 |  | ||||||
|       expect(record).to model_have_error_on_field(:events) |  | ||||||
|     end |  | ||||||
| 
 | 
 | ||||||
|     it 'requires non-empty events value' do |     it 'requires non-empty events value' do | ||||||
|       record = described_class.new(events: []) |       record = described_class.new(events: []) | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user