require File.dirname(__FILE__) + '/../spec_helper'

describe ProductsHelper do

# Temporarily commented out tests until i can figure out what's going wrong.
=begin
  describe "product_price" do
    before :each do
      @price = 100
      @variant = mock_model(Variant, :price => @price)
      @options = {}
      Locale.code = "en-US"
    end

    before(:each) { @options[:format_as_currency] = true }
    describe "with options[:format_as_currency] => true" do
      it "should format the price with a vat label when options[:show_vat_text] => true" do
        @options[:show_vat_text] = true
        helper.should_receive(:format_price)#.with(variant.price, {:show_vat_text => true})
        helper.product_price(@variant, @options)
      end
      it "should format the price without a vat label when options[:show_vat_text] => false" do
        @options[:show_vat_text] = false
        helper.should_receive(:format_price)#.with(@variant.price, {:show_vat_text => false})
        helper.product_price(@variant, @options)
      end
      describe "options[:show_vat_text] => nil" do
        it "should format the price using the currency symbol and vat label when Spree::Tax::Config[:show_price_inc_vat] => true"
        it "should format the price using the currency symbol only when Spree::Tax::Config[:show_price_inc_vat] => false"
      end      
    end
    
    before(:each) { @options[:format_as_currency] = false }
    describe "with options[:format_as_currency] => false" do
      it "should format the price using vat label only when options[:show_vat_text] => true"
      it "should return an unformatted price when options[:show_vat_text] => false"

      before(:each) { @options[:show_vat_text] = nil }
      describe "options[:show_vat_text] => nil" do
        it "should format the price using the vat label only when Spree::Tax::Config[:show_price_inc_vat] => true"
        it "should return an unformatted price" do
          helper.product_price(@variant, @options).should == @price
        end
      end      
    end
    
  end
=end

  describe "format_price" do
    before :each do
      @price = 100
      I18n.locale = "en-US"
    end
    describe "localization in general" do
      it "should format the price using $ when locale is en-US" do
        helper.format_price(@price).should include("$100.00")
      end
      it "should format the price using $ when locale is es" do
        I18n.locale = "es"
        helper.format_price(@price).should include("100,00 €")
      end
    end
    describe "with options[:show_vat_text] => true" do
      it "should include the '(inc. VAT)' text" do
        helper.format_price(@price, :show_vat_text => true).should == "$100.00 (inc. VAT)"
      end
    end
    describe "with options[:show_vat_text] => false" do
      it "should not include the '(inc. VAT)' text" do
        helper.format_price(@price, :show_vat_text => false).should == "$100.00"
      end
    end
    describe "with options[:show_vat_text] => nil" do
      it "should include the '(inc. VAT)' text when Spree::Tax::Config[:show_price_inc_vat] => true" do
        Spree::Tax::Config.stub!(:[]).with(:show_price_inc_vat).and_return(true)
        helper.format_price(@price).should == "$100.00 (inc. VAT)"
      end
      it "should not include the '(inc. VAT)' text when Spree::Tax::Config[:show_price_inc_vat] => false" do
        Spree::Tax::Config.stub!(:[]).with(:show_price_inc_vat).and_return(false)
        helper.format_price(@price).should == "$100.00"
      end
    end    
  end
end