51 lines
938 B
Ruby
51 lines
938 B
Ruby
# frozen_string_literal: true
|
|
|
|
require 'spec_helper'
|
|
|
|
RSpec.describe NullifyIfBlank do
|
|
let_it_be(:model) do
|
|
Class.new(ApplicationRecord) do
|
|
include NullifyIfBlank
|
|
|
|
nullify_if_blank :name
|
|
|
|
self.table_name = 'users'
|
|
end
|
|
end
|
|
|
|
context 'attribute exists' do
|
|
let(:instance) { model.new(name: name) }
|
|
|
|
subject { instance.name }
|
|
|
|
before do
|
|
instance.validate
|
|
end
|
|
|
|
context 'attribute is blank' do
|
|
let(:name) { '' }
|
|
|
|
it { is_expected.to be_nil }
|
|
end
|
|
|
|
context 'attribute is nil' do
|
|
let(:name) { nil }
|
|
|
|
it { is_expected.to be_nil }
|
|
end
|
|
|
|
context 'attribute is not blank' do
|
|
let(:name) { 'name' }
|
|
|
|
it { is_expected.to eq('name') }
|
|
end
|
|
end
|
|
|
|
context 'attribute does not exist' do
|
|
before do
|
|
model.table_name = 'issues'
|
|
end
|
|
|
|
it { expect { model.new.valid? }.to raise_error(ActiveModel::UnknownAttributeError) }
|
|
end
|
|
end
|