houdini/spec/models/nonprofit_spec.rb

49 lines
1.4 KiB
Ruby
Raw Normal View History

# frozen_string_literal: true
# License: AGPL-3.0-or-later WITH Web-Template-Output-Additional-Permission-3.0-or-later
require 'rails_helper'
RSpec.describe Nonprofit, type: :model do
describe 'with cards' do
before(:each) do
@nonprofit = create(:nonprofit_with_cards)
end
before (:each) do
cards = @nonprofit.cards.to_ary
@card1 = cards.first { |i| i.name == 'card1' }
@card2 = cards.first { |i| i.name == 'card2' }
@card3 = cards.first { |i| i.name == 'card3' }
end
describe '.active_cards' do
it 'should return all cards' do
cards = @nonprofit.active_cards
expect(cards.length).to eq(2)
end
end
describe '.active_card' do
it 'should return one' do
card = @nonprofit.active_card
expect(card).to_not be_nil
end
end
describe '.create_active_card' do
it 'should become active and turn others inactive' do
previously_active_cards = @nonprofit.active_cards
card = @nonprofit.create_active_card(name: 'card 4')
expect(card).to_not be_nil
expect(card.name).to eq(@nonprofit.active_card.name)
expect(!card.inactive)
end
end
end
describe '.currency_symbol' do
let(:nonprofit) { force_create(:nonprofit, currency: 'eur') }
let(:euro) { '€' }
it 'finds correct currency symbol for nonprofit' do
expect(nonprofit.currency_symbol).to eq euro
end
end
end