From 35ec25dcb3d57b17a3dc174503b7d20dd4c46e43 Mon Sep 17 00:00:00 2001 From: HombreLaser Date: Mon, 27 Mar 2023 20:04:00 -0600 Subject: AƱade specs de Card MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- spec/models/card_spec.rb | 40 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) (limited to 'spec/models') 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 -- cgit v1.2.3