module ShoppyCartus
  describe Order, type: :model do
    context 'validates' do
      it 'invalid without state' do
        is_expected.to validate_presence_of(:state)
      end
    end

    context 'check relations' do
      %i[user credit_card delivery].each do |field|
        it "belongs to #{field}" do
          is_expected.to belong_to(field)
        end
      end

      %i[addresses order_items].each do |field|
        it "has many #{field}" do
          is_expected.to have_many(field)
        end
      end

      it 'has one coupon' do
        is_expected.to have_one(:coupon)
      end
    end
  end
end