49 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			49 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Ruby
		
	
	
	
require 'spec_helper'
 | 
						|
 | 
						|
describe 'Gitlab::FileSizeValidatorSpec' do
 | 
						|
  let(:validator) { FileSizeValidator.new(options) }
 | 
						|
  let(:attachment) { AttachmentUploader.new }
 | 
						|
  let(:note) { create(:note) }
 | 
						|
 | 
						|
  describe 'options uses an integer' do
 | 
						|
    let(:options) { { maximum: 10, attributes: { attachment: attachment } } }
 | 
						|
 | 
						|
    it 'attachment exceeds maximum limit' do
 | 
						|
        allow(attachment).to receive(:size) { 100 }
 | 
						|
        validator.validate_each(note, :attachment, attachment)
 | 
						|
        expect(note.errors).to have_key(:attachment)
 | 
						|
    end
 | 
						|
 | 
						|
    it 'attachment under maximum limit' do
 | 
						|
      allow(attachment).to receive(:size) { 1 }
 | 
						|
      validator.validate_each(note, :attachment, attachment)
 | 
						|
      expect(note.errors).not_to have_key(:attachment)
 | 
						|
    end
 | 
						|
  end
 | 
						|
 | 
						|
  describe 'options uses a symbol' do
 | 
						|
    let(:options) do
 | 
						|
      {
 | 
						|
        maximum: :test,
 | 
						|
        attributes: { attachment: attachment }
 | 
						|
      }
 | 
						|
    end
 | 
						|
 | 
						|
    before do
 | 
						|
      allow(note).to receive(:test) { 10 }
 | 
						|
    end
 | 
						|
 | 
						|
    it 'attachment exceeds maximum limit' do
 | 
						|
      allow(attachment).to receive(:size) { 100 }
 | 
						|
      validator.validate_each(note, :attachment, attachment)
 | 
						|
      expect(note.errors).to have_key(:attachment)
 | 
						|
    end
 | 
						|
 | 
						|
    it 'attachment under maximum limit' do
 | 
						|
      allow(attachment).to receive(:size) { 1 }
 | 
						|
      validator.validate_each(note, :attachment, attachment)
 | 
						|
      expect(note.errors).not_to have_key(:attachment)
 | 
						|
    end
 | 
						|
  end
 | 
						|
end
 |