diff options
Diffstat (limited to 'spec/models/card_spec.rb')
-rw-r--r-- | spec/models/card_spec.rb | 40 |
1 files changed, 39 insertions, 1 deletions
diff --git a/spec/models/card_spec.rb b/spec/models/card_spec.rb index 6f49b4a..11bee2d 100644 --- a/spec/models/card_spec.rb +++ b/spec/models/card_spec.rb @@ -1,5 +1,43 @@ +# frozen_string_literal: true + require 'rails_helper' RSpec.describe Card, type: :model do - pending "add some examples to (or delete) #{__FILE__}" + let(:card) { build(:card) } + + it { should belong_to(:user_account)} + it { should validate_presence_of(:number) } + it { should validate_presence_of(:security_code) } + it { should validate_presence_of(:expiration_year) } + it { should validate_presence_of(:expiration_month) } + it { should validate_presence_of(:expiration_day) } + it { should validate_numericality_of(:expiration_year) } + + describe 'expiration_month' do + it "can't be less than 1 or greater than 12" do + card.expiration_month = 0 + expect(card.save).to be_falsey + card.expiration_month = 13 + expect(card.save).to be_falsey + end + end + + describe 'expiration_day' do + it "can't be less than 1 or greater than 31" do + card.expiration_day = 0 + expect(card.save).to be_falsey + card.expiration_day = 32 + expect(card.save).to be_falsey + end + end + + describe '#expiration_date' do + it 'renders the expiration date in a friendly format' do + card.expiration_year = 2025 + card.expiration_month = 3 + card.expiration_day = 24 + + expect(card.expiration_date).to eq('24/3/2025') + end + end end |