Install shoulda matchers, improve guests specs and change enum syntax
This commit is contained in:
parent
60a7b1342f
commit
9035df5178
3
Gemfile
3
Gemfile
@ -24,9 +24,10 @@ gem 'rubytree'
|
||||
group :development, :test do
|
||||
gem 'debug', platforms: %i[mri windows]
|
||||
gem 'factory_bot_rails'
|
||||
gem 'license_finder'
|
||||
gem 'pry'
|
||||
gem 'rspec-rails', '~> 7.0.0'
|
||||
gem 'license_finder'
|
||||
gem 'shoulda-matchers', '~> 6.0'
|
||||
end
|
||||
|
||||
group :development do
|
||||
|
@ -289,6 +289,8 @@ GEM
|
||||
json (~> 2.0, > 2.3.1)
|
||||
rubyzip (2.3.2)
|
||||
securerandom (0.3.1)
|
||||
shoulda-matchers (6.4.0)
|
||||
activesupport (>= 5.2.0)
|
||||
solid_queue (1.0.1)
|
||||
activejob (>= 7.1)
|
||||
activerecord (>= 7.1)
|
||||
@ -361,6 +363,7 @@ DEPENDENCIES
|
||||
rspec-rails (~> 7.0.0)
|
||||
rubocop
|
||||
rubytree
|
||||
shoulda-matchers (~> 6.0)
|
||||
solid_queue (~> 1.0)
|
||||
sprockets-rails
|
||||
stimulus-rails
|
||||
|
@ -3,7 +3,7 @@
|
||||
class Guest < ApplicationRecord
|
||||
belongs_to :group
|
||||
|
||||
enum status: {
|
||||
enum :status, {
|
||||
considered: 0,
|
||||
invited: 10,
|
||||
confirmed: 20,
|
||||
|
@ -3,5 +3,37 @@
|
||||
require 'rails_helper'
|
||||
|
||||
RSpec.describe Guest, type: :model do
|
||||
pending "add some examples to (or delete) #{__FILE__}"
|
||||
it do
|
||||
should define_enum_for(:status).with_values(
|
||||
considered: 0,
|
||||
invited: 10,
|
||||
confirmed: 20,
|
||||
declined: 30,
|
||||
tentative: 40
|
||||
)
|
||||
end
|
||||
|
||||
it { should belong_to(:group) }
|
||||
|
||||
describe 'scopes' do
|
||||
describe '.potential' do
|
||||
it 'returns guests that are not declined or considered' do
|
||||
_declined_guest = create(:guest, status: :declined)
|
||||
_considered_guest = create(:guest, status: :considered)
|
||||
invited_guest = create(:guest, status: :invited)
|
||||
confirmed_guest = create(:guest, status: :confirmed)
|
||||
tentative_guest = create(:guest, status: :tentative)
|
||||
|
||||
expect(Guest.potential).to match_array([invited_guest, confirmed_guest, tentative_guest])
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
describe '#full_name' do
|
||||
it 'returns the full name of the guest' do
|
||||
guest = create(:guest, first_name: 'John', last_name: 'Doe')
|
||||
|
||||
expect(guest.full_name).to eq('John Doe')
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -66,3 +66,10 @@ RSpec.configure do |config|
|
||||
# config.filter_gems_from_backtrace("gem name")
|
||||
config.include FactoryBot::Syntax::Methods
|
||||
end
|
||||
|
||||
Shoulda::Matchers.configure do |config|
|
||||
config.integrate do |with|
|
||||
with.test_framework :rspec
|
||||
with.library :rails
|
||||
end
|
||||
end
|
||||
|
Loading…
x
Reference in New Issue
Block a user