spree_frontend 3.1.5 → 3.1.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/controllers/spree/products_controller.rb +1 -1
- data/app/views/spree/shared/_taxonomies.html.erb +4 -2
- data/spree_frontend.gemspec +1 -2
- metadata +8 -84
- data/spec/controllers/controller_extension_spec.rb +0 -126
- data/spec/controllers/controller_helpers_spec.rb +0 -122
- data/spec/controllers/spree/checkout_controller_spec.rb +0 -462
- data/spec/controllers/spree/checkout_controller_with_views_spec.rb +0 -36
- data/spec/controllers/spree/content_controller_spec.rb +0 -12
- data/spec/controllers/spree/current_order_tracking_spec.rb +0 -44
- data/spec/controllers/spree/home_controller_spec.rb +0 -47
- data/spec/controllers/spree/orders_controller_ability_spec.rb +0 -96
- data/spec/controllers/spree/orders_controller_spec.rb +0 -134
- data/spec/controllers/spree/orders_controller_transitions_spec.rb +0 -31
- data/spec/controllers/spree/products_controller_spec.rb +0 -87
- data/spec/controllers/spree/taxons_controller_spec.rb +0 -12
- data/spec/features/address_spec.rb +0 -93
- data/spec/features/automatic_promotion_adjustments_spec.rb +0 -47
- data/spec/features/caching/products_spec.rb +0 -59
- data/spec/features/caching/taxons_spec.rb +0 -22
- data/spec/features/cart_spec.rb +0 -90
- data/spec/features/checkout_spec.rb +0 -572
- data/spec/features/checkout_unshippable_spec.rb +0 -34
- data/spec/features/coupon_code_spec.rb +0 -88
- data/spec/features/currency_spec.rb +0 -18
- data/spec/features/free_shipping_promotions_spec.rb +0 -59
- data/spec/features/locale_spec.rb +0 -60
- data/spec/features/microdata_spec.rb +0 -0
- data/spec/features/order_spec.rb +0 -74
- data/spec/features/page_promotions_spec.rb +0 -36
- data/spec/features/products_spec.rb +0 -334
- data/spec/features/taxons_spec.rb +0 -147
- data/spec/features/template_rendering_spec.rb +0 -19
- data/spec/fixtures/thinking-cat.jpg +0 -0
- data/spec/helpers/frontend_helper_spec.rb +0 -57
- data/spec/helpers/order_helper_spec.rb +0 -12
- data/spec/helpers/taxons_helper_spec.rb +0 -17
- data/spec/spec_helper.rb +0 -126
- data/spec/support/shared_contexts/checkout_setup.rb +0 -10
- data/spec/support/shared_contexts/custom_products.rb +0 -25
- data/spec/support/shared_contexts/product_prototypes.rb +0 -30
- data/spec/views/spree/checkout/_summary_spec.rb +0 -11
@@ -1,147 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe "viewing products", type: :feature, inaccessible: true do
|
4
|
-
let!(:taxonomy) { create(:taxonomy, name: "Category") }
|
5
|
-
let!(:super_clothing) { taxonomy.root.children.create(name: "Super Clothing") }
|
6
|
-
let!(:t_shirts) { super_clothing.children.create(name: "T-Shirts") }
|
7
|
-
let!(:xxl) { t_shirts.children.create(name: "XXL") }
|
8
|
-
let!(:product) do
|
9
|
-
product = create(:product, name: "Superman T-Shirt")
|
10
|
-
product.taxons << t_shirts
|
11
|
-
end
|
12
|
-
let(:metas) { { meta_description: 'Brand new Ruby on Rails TShirts', meta_title: "Ruby On Rails TShirt", meta_keywords: 'ror, tshirt, ruby' } }
|
13
|
-
let(:store_name) do
|
14
|
-
((first_store = Spree::Store.first) && first_store.name).to_s
|
15
|
-
end
|
16
|
-
|
17
|
-
# Regression test for #1796
|
18
|
-
it "can see a taxon's products, even if that taxon has child taxons" do
|
19
|
-
visit '/t/category/super-clothing/t-shirts'
|
20
|
-
expect(page).to have_content("Superman T-Shirt")
|
21
|
-
end
|
22
|
-
|
23
|
-
it "shouldn't show nested taxons with a search" do
|
24
|
-
visit '/t/category/super-clothing?keywords=shirt'
|
25
|
-
expect(page).to have_content("Superman T-Shirt")
|
26
|
-
expect(page).not_to have_selector("div[data-hook='taxon_children']")
|
27
|
-
end
|
28
|
-
|
29
|
-
describe 'breadcrumbs' do
|
30
|
-
before do
|
31
|
-
visit '/t/category/super-clothing/t-shirts'
|
32
|
-
end
|
33
|
-
it "should render breadcrumbs" do
|
34
|
-
expect(page.find("#breadcrumbs")).to have_link("T-Shirts")
|
35
|
-
end
|
36
|
-
it "should mark last breadcrumb as active" do
|
37
|
-
expect(page.find('#breadcrumbs .active')).to have_link("T-Shirts")
|
38
|
-
end
|
39
|
-
end
|
40
|
-
|
41
|
-
describe 'meta tags and title' do
|
42
|
-
it 'displays metas' do
|
43
|
-
t_shirts.update_attributes metas
|
44
|
-
visit '/t/category/super-clothing/t-shirts'
|
45
|
-
expect(page).to have_meta(:description, 'Brand new Ruby on Rails TShirts')
|
46
|
-
expect(page).to have_meta(:keywords, 'ror, tshirt, ruby')
|
47
|
-
end
|
48
|
-
|
49
|
-
it 'display title if set' do
|
50
|
-
t_shirts.update_attributes metas
|
51
|
-
visit '/t/category/super-clothing/t-shirts'
|
52
|
-
expect(page).to have_title("Ruby On Rails TShirt")
|
53
|
-
end
|
54
|
-
|
55
|
-
it 'displays title from taxon root and taxon name' do
|
56
|
-
visit '/t/category/super-clothing/t-shirts'
|
57
|
-
expect(page).to have_title('Category - T-Shirts - ' + store_name)
|
58
|
-
end
|
59
|
-
|
60
|
-
# Regression test for #2814
|
61
|
-
it "doesn't use meta_title as heading on page" do
|
62
|
-
t_shirts.update_attributes metas
|
63
|
-
visit '/t/category/super-clothing/t-shirts'
|
64
|
-
within("h1.taxon-title") do
|
65
|
-
expect(page).to have_content(t_shirts.name)
|
66
|
-
end
|
67
|
-
end
|
68
|
-
|
69
|
-
it 'uses taxon name in title when meta_title set to empty string' do
|
70
|
-
t_shirts.update_attributes meta_title: ''
|
71
|
-
visit '/t/category/super-clothing/t-shirts'
|
72
|
-
expect(page).to have_title('Category - T-Shirts - ' + store_name)
|
73
|
-
end
|
74
|
-
end
|
75
|
-
|
76
|
-
context "taxon pages" do
|
77
|
-
include_context "custom products"
|
78
|
-
before do
|
79
|
-
visit spree.root_path
|
80
|
-
end
|
81
|
-
|
82
|
-
it "should be able to visit brand Ruby on Rails" do
|
83
|
-
within(:css, '#taxonomies') { click_link "Ruby on Rails" }
|
84
|
-
|
85
|
-
expect(page.all('#products .product-list-item').size).to eq(7)
|
86
|
-
tmp = page.all('#products .product-list-item a').map(&:text).flatten.compact
|
87
|
-
tmp.delete("")
|
88
|
-
array = ["Ruby on Rails Bag",
|
89
|
-
"Ruby on Rails Baseball Jersey",
|
90
|
-
"Ruby on Rails Jr. Spaghetti",
|
91
|
-
"Ruby on Rails Mug",
|
92
|
-
"Ruby on Rails Ringer T-Shirt",
|
93
|
-
"Ruby on Rails Stein",
|
94
|
-
"Ruby on Rails Tote"]
|
95
|
-
expect(tmp.sort!).to eq(array)
|
96
|
-
end
|
97
|
-
|
98
|
-
it "should be able to visit brand Ruby" do
|
99
|
-
within(:css, '#taxonomies') { click_link "Ruby" }
|
100
|
-
|
101
|
-
expect(page.all('#products .product-list-item').size).to eq(1)
|
102
|
-
tmp = page.all('#products .product-list-item a').map(&:text).flatten.compact
|
103
|
-
tmp.delete("")
|
104
|
-
expect(tmp.sort!).to eq(["Ruby Baseball Jersey"])
|
105
|
-
end
|
106
|
-
|
107
|
-
it "should be able to visit brand Apache" do
|
108
|
-
within(:css, '#taxonomies') { click_link "Apache" }
|
109
|
-
|
110
|
-
expect(page.all('#products .product-list-item').size).to eq(1)
|
111
|
-
tmp = page.all('#products .product-list-item a').map(&:text).flatten.compact
|
112
|
-
tmp.delete("")
|
113
|
-
expect(tmp.sort!).to eq(["Apache Baseball Jersey"])
|
114
|
-
end
|
115
|
-
|
116
|
-
it "should be able to visit category Clothing" do
|
117
|
-
click_link "Clothing"
|
118
|
-
|
119
|
-
expect(page.all('#products .product-list-item').size).to eq(5)
|
120
|
-
tmp = page.all('#products .product-list-item a').map(&:text).flatten.compact
|
121
|
-
tmp.delete("")
|
122
|
-
expect(tmp.sort!).to eq(["Apache Baseball Jersey",
|
123
|
-
"Ruby Baseball Jersey",
|
124
|
-
"Ruby on Rails Baseball Jersey",
|
125
|
-
"Ruby on Rails Jr. Spaghetti",
|
126
|
-
"Ruby on Rails Ringer T-Shirt"])
|
127
|
-
end
|
128
|
-
|
129
|
-
it "should be able to visit category Mugs" do
|
130
|
-
click_link "Mugs"
|
131
|
-
|
132
|
-
expect(page.all('#products .product-list-item').size).to eq(2)
|
133
|
-
tmp = page.all('#products .product-list-item a').map(&:text).flatten.compact
|
134
|
-
tmp.delete("")
|
135
|
-
expect(tmp.sort!).to eq(["Ruby on Rails Mug", "Ruby on Rails Stein"])
|
136
|
-
end
|
137
|
-
|
138
|
-
it "should be able to visit category Bags" do
|
139
|
-
click_link "Bags"
|
140
|
-
|
141
|
-
expect(page.all('#products .product-list-item').size).to eq(2)
|
142
|
-
tmp = page.all('#products .product-list-item a').map(&:text).flatten.compact
|
143
|
-
tmp.delete("")
|
144
|
-
expect(tmp.sort!).to eq(["Ruby on Rails Bag", "Ruby on Rails Tote"])
|
145
|
-
end
|
146
|
-
end
|
147
|
-
end
|
@@ -1,19 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe "Template rendering", type: :feature do
|
4
|
-
|
5
|
-
after do
|
6
|
-
Capybara.ignore_hidden_elements = true
|
7
|
-
end
|
8
|
-
|
9
|
-
before do
|
10
|
-
Capybara.ignore_hidden_elements = false
|
11
|
-
end
|
12
|
-
|
13
|
-
it 'layout should have canonical tag referencing site url' do
|
14
|
-
Spree::Store.create!(code: 'spree', name: 'My Spree Store', url: 'spreestore.example.com', mail_from_address: 'test@example.com')
|
15
|
-
|
16
|
-
visit spree.root_path
|
17
|
-
expect(find('link[rel=canonical]')[:href]).to eql('http://spreestore.example.com/')
|
18
|
-
end
|
19
|
-
end
|
Binary file
|
@@ -1,57 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
module Spree
|
4
|
-
describe FrontendHelper, type: :helper do
|
5
|
-
# Regression test for #2034
|
6
|
-
context "flash_message" do
|
7
|
-
let(:flash) { { "notice" => "ok", "foo" => "foo", "bar" => "bar" } }
|
8
|
-
|
9
|
-
it "should output all flash content" do
|
10
|
-
flash_messages
|
11
|
-
html = Nokogiri::HTML(helper.output_buffer)
|
12
|
-
expect(html.css(".alert-notice").text).to eq("ok")
|
13
|
-
expect(html.css(".alert-foo").text).to eq("foo")
|
14
|
-
expect(html.css(".alert-bar").text).to eq("bar")
|
15
|
-
end
|
16
|
-
|
17
|
-
it "should output flash content except one key" do
|
18
|
-
flash_messages(ignore_types: :bar)
|
19
|
-
html = Nokogiri::HTML(helper.output_buffer)
|
20
|
-
expect(html.css(".alert-notice").text).to eq("ok")
|
21
|
-
expect(html.css(".alert-foo").text).to eq("foo")
|
22
|
-
expect(html.css(".alert-bar").text).to be_empty
|
23
|
-
end
|
24
|
-
|
25
|
-
it "should output flash content except some keys" do
|
26
|
-
flash_messages(ignore_types: [:foo, :bar])
|
27
|
-
html = Nokogiri::HTML(helper.output_buffer)
|
28
|
-
expect(html.css(".alert-notice").text).to eq("ok")
|
29
|
-
expect(html.css(".alert-foo").text).to be_empty
|
30
|
-
expect(html.css(".alert-bar").text).to be_empty
|
31
|
-
expect(helper.output_buffer).to eq("<div class=\"alert alert-notice\">ok</div>")
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
# Regression test for #2759
|
36
|
-
it "nested_taxons_path works with a Taxon object" do
|
37
|
-
taxon = create(:taxon, name: "iphone")
|
38
|
-
expect(spree.nested_taxons_path(taxon)).to eq("/t/iphone")
|
39
|
-
end
|
40
|
-
|
41
|
-
context '#checkout_progress' do
|
42
|
-
before do
|
43
|
-
@order = create(:order, state: 'address')
|
44
|
-
end
|
45
|
-
|
46
|
-
it 'does not include numbers by default' do
|
47
|
-
output = checkout_progress
|
48
|
-
expect(output).to_not include('1.')
|
49
|
-
end
|
50
|
-
|
51
|
-
it 'has option to include numbers' do
|
52
|
-
output = checkout_progress(numbers: true)
|
53
|
-
expect(output).to include('1.')
|
54
|
-
end
|
55
|
-
end
|
56
|
-
end
|
57
|
-
end
|
@@ -1,12 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
module Spree
|
4
|
-
describe Spree::OrdersHelper, :type => :helper do
|
5
|
-
# Regression test for #2518 + #2323
|
6
|
-
it "truncates HTML correctly in product description" do
|
7
|
-
product = double(:description => "<strong>" + ("a" * 95) + "</strong> This content is invisible.")
|
8
|
-
expected = "<strong>" + ("a" * 95) + "</strong>..."
|
9
|
-
expect(truncated_product_description(product)).to eq(expected)
|
10
|
-
end
|
11
|
-
end
|
12
|
-
end
|
@@ -1,17 +0,0 @@
|
|
1
|
-
require 'spec_helper'
|
2
|
-
|
3
|
-
describe Spree::TaxonsHelper, :type => :helper do
|
4
|
-
# Regression test for #4382
|
5
|
-
it "#taxon_preview" do
|
6
|
-
taxon = create(:taxon)
|
7
|
-
child_taxon = create(:taxon, parent: taxon)
|
8
|
-
product_1 = create(:product)
|
9
|
-
product_2 = create(:product)
|
10
|
-
product_3 = create(:product)
|
11
|
-
taxon.products << product_1
|
12
|
-
taxon.products << product_2
|
13
|
-
child_taxon.products << product_3
|
14
|
-
|
15
|
-
expect(taxon_preview(taxon.reload)).to eql([product_1, product_2, product_3])
|
16
|
-
end
|
17
|
-
end
|
data/spec/spec_helper.rb
DELETED
@@ -1,126 +0,0 @@
|
|
1
|
-
if ENV["COVERAGE"]
|
2
|
-
# Run Coverage report
|
3
|
-
require 'simplecov'
|
4
|
-
SimpleCov.start do
|
5
|
-
add_group 'Controllers', 'app/controllers'
|
6
|
-
add_group 'Helpers', 'app/helpers'
|
7
|
-
add_group 'Mailers', 'app/mailers'
|
8
|
-
add_group 'Models', 'app/models'
|
9
|
-
add_group 'Views', 'app/views'
|
10
|
-
add_group 'Libraries', 'lib'
|
11
|
-
end
|
12
|
-
end
|
13
|
-
|
14
|
-
# This file is copied to ~/spec when you run 'ruby script/generate rspec'
|
15
|
-
# from the project root directory.
|
16
|
-
ENV["RAILS_ENV"] ||= 'test'
|
17
|
-
|
18
|
-
begin
|
19
|
-
require File.expand_path("../dummy/config/environment", __FILE__)
|
20
|
-
rescue LoadError
|
21
|
-
puts "Could not load dummy application. Please ensure you have run `bundle exec rake test_app`"
|
22
|
-
exit
|
23
|
-
end
|
24
|
-
|
25
|
-
require 'rspec/rails'
|
26
|
-
require 'ffaker'
|
27
|
-
|
28
|
-
# Requires supporting files with custom matchers and macros, etc,
|
29
|
-
# in ./support/ and its subdirectories.
|
30
|
-
Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
|
31
|
-
|
32
|
-
require 'database_cleaner'
|
33
|
-
|
34
|
-
if ENV["CHECK_TRANSLATIONS"]
|
35
|
-
require "spree/testing_support/i18n"
|
36
|
-
end
|
37
|
-
|
38
|
-
require 'spree/testing_support/authorization_helpers'
|
39
|
-
require 'spree/testing_support/capybara_ext'
|
40
|
-
require 'spree/testing_support/factories'
|
41
|
-
require 'spree/testing_support/preferences'
|
42
|
-
require 'spree/testing_support/controller_requests'
|
43
|
-
require 'spree/testing_support/flash'
|
44
|
-
require 'spree/testing_support/url_helpers'
|
45
|
-
require 'spree/testing_support/order_walkthrough'
|
46
|
-
require 'spree/testing_support/caching'
|
47
|
-
require 'spree/testing_support/shoulda_matcher_configuration'
|
48
|
-
require 'spree/testing_support/microdata'
|
49
|
-
|
50
|
-
require 'paperclip/matchers'
|
51
|
-
|
52
|
-
require 'capybara-screenshot/rspec'
|
53
|
-
Capybara.save_and_open_page_path = ENV['CIRCLE_ARTIFACTS'] if ENV['CIRCLE_ARTIFACTS']
|
54
|
-
|
55
|
-
if ENV['WEBDRIVER'] == 'accessible'
|
56
|
-
require 'capybara/accessible'
|
57
|
-
Capybara.javascript_driver = :accessible
|
58
|
-
else
|
59
|
-
require 'capybara/poltergeist'
|
60
|
-
Capybara.javascript_driver = :poltergeist
|
61
|
-
end
|
62
|
-
|
63
|
-
RSpec.configure do |config|
|
64
|
-
config.color = true
|
65
|
-
config.fail_fast = ENV['FAIL_FAST'] || false
|
66
|
-
config.fixture_path = File.join(File.expand_path(File.dirname(__FILE__)), "fixtures")
|
67
|
-
config.infer_spec_type_from_file_location!
|
68
|
-
config.mock_with :rspec
|
69
|
-
config.raise_errors_for_deprecations!
|
70
|
-
|
71
|
-
# If you're not using ActiveRecord, or you'd prefer not to run each of your
|
72
|
-
# examples within a transaction, comment the following line or assign false
|
73
|
-
# instead of true.
|
74
|
-
config.use_transactional_fixtures = false
|
75
|
-
|
76
|
-
if ENV['WEBDRIVER'] == 'accessible'
|
77
|
-
config.around(:each, :inaccessible => true) do |example|
|
78
|
-
Capybara::Accessible.skip_audit { example.run }
|
79
|
-
end
|
80
|
-
end
|
81
|
-
|
82
|
-
# Ensure DB is clean, so that transaction isolated specs see
|
83
|
-
# pristine state.
|
84
|
-
config.before(:suite) do
|
85
|
-
DatabaseCleaner.strategy = :truncation
|
86
|
-
DatabaseCleaner.clean
|
87
|
-
end
|
88
|
-
|
89
|
-
config.before(:each) do
|
90
|
-
WebMock.disable!
|
91
|
-
if RSpec.current_example.metadata[:js]
|
92
|
-
DatabaseCleaner.strategy = :truncation
|
93
|
-
else
|
94
|
-
DatabaseCleaner.strategy = :transaction
|
95
|
-
end
|
96
|
-
# TODO: Find out why open_transactions ever gets below 0
|
97
|
-
# See issue #3428
|
98
|
-
if ActiveRecord::Base.connection.open_transactions < 0
|
99
|
-
ActiveRecord::Base.connection.increment_open_transactions
|
100
|
-
end
|
101
|
-
DatabaseCleaner.start
|
102
|
-
reset_spree_preferences
|
103
|
-
end
|
104
|
-
|
105
|
-
config.after(:each) do
|
106
|
-
DatabaseCleaner.clean
|
107
|
-
end
|
108
|
-
|
109
|
-
config.after(:each, :type => :feature) do |example|
|
110
|
-
missing_translations = page.body.scan(/translation missing: #{I18n.locale}\.(.*?)[\s<\"&]/)
|
111
|
-
if missing_translations.any?
|
112
|
-
puts "Found missing translations: #{missing_translations.inspect}"
|
113
|
-
puts "In spec: #{example.location}"
|
114
|
-
end
|
115
|
-
end
|
116
|
-
|
117
|
-
|
118
|
-
config.include FactoryGirl::Syntax::Methods
|
119
|
-
|
120
|
-
config.include Spree::TestingSupport::Preferences
|
121
|
-
config.include Spree::TestingSupport::UrlHelpers
|
122
|
-
config.include Spree::TestingSupport::ControllerRequests, type: :controller
|
123
|
-
config.include Spree::TestingSupport::Flash
|
124
|
-
|
125
|
-
config.include Paperclip::Shoulda::Matchers
|
126
|
-
end
|
@@ -1,10 +0,0 @@
|
|
1
|
-
shared_context 'checkout setup' do
|
2
|
-
let!(:country) { create(:country, states_required: true) }
|
3
|
-
let!(:state) { create(:state, country: country) }
|
4
|
-
let!(:shipping_method) { create(:shipping_method) }
|
5
|
-
let!(:stock_location) { create(:stock_location) }
|
6
|
-
let!(:mug) { create(:product, name: "RoR Mug") }
|
7
|
-
let!(:payment_method) { create(:check_payment_method) }
|
8
|
-
let!(:zone) { create(:zone) }
|
9
|
-
let!(:store) { create(:store) }
|
10
|
-
end
|
@@ -1,25 +0,0 @@
|
|
1
|
-
shared_context "custom products" do
|
2
|
-
before(:each) do
|
3
|
-
taxonomy = FactoryGirl.create(:taxonomy, :name => 'Categories')
|
4
|
-
root = taxonomy.root
|
5
|
-
clothing_taxon = FactoryGirl.create(:taxon, :name => 'Clothing', :parent_id => root.id)
|
6
|
-
bags_taxon = FactoryGirl.create(:taxon, :name => 'Bags', :parent_id => root.id)
|
7
|
-
mugs_taxon = FactoryGirl.create(:taxon, :name => 'Mugs', :parent_id => root.id)
|
8
|
-
|
9
|
-
taxonomy = FactoryGirl.create(:taxonomy, :name => 'Brands')
|
10
|
-
root = taxonomy.root
|
11
|
-
apache_taxon = FactoryGirl.create(:taxon, :name => 'Apache', :parent_id => root.id)
|
12
|
-
rails_taxon = FactoryGirl.create(:taxon, :name => 'Ruby on Rails', :parent_id => root.id)
|
13
|
-
ruby_taxon = FactoryGirl.create(:taxon, :name => 'Ruby', :parent_id => root.id)
|
14
|
-
|
15
|
-
FactoryGirl.create(:custom_product, :name => 'Ruby on Rails Ringer T-Shirt', :price => '19.99', :taxons => [rails_taxon, clothing_taxon])
|
16
|
-
FactoryGirl.create(:custom_product, :name => 'Ruby on Rails Mug', :price => '15.99', :taxons => [rails_taxon, mugs_taxon])
|
17
|
-
FactoryGirl.create(:custom_product, :name => 'Ruby on Rails Tote', :price => '15.99', :taxons => [rails_taxon, bags_taxon])
|
18
|
-
FactoryGirl.create(:custom_product, :name => 'Ruby on Rails Bag', :price => '22.99', :taxons => [rails_taxon, bags_taxon])
|
19
|
-
FactoryGirl.create(:custom_product, :name => 'Ruby on Rails Baseball Jersey', :price => '19.99', :taxons => [rails_taxon, clothing_taxon])
|
20
|
-
FactoryGirl.create(:custom_product, :name => 'Ruby on Rails Stein', :price => '16.99', :taxons => [rails_taxon, mugs_taxon])
|
21
|
-
FactoryGirl.create(:custom_product, :name => 'Ruby on Rails Jr. Spaghetti', :price => '19.99', :taxons => [rails_taxon, clothing_taxon])
|
22
|
-
FactoryGirl.create(:custom_product, :name => 'Ruby Baseball Jersey', :price => '19.99', :taxons => [ruby_taxon, clothing_taxon])
|
23
|
-
FactoryGirl.create(:custom_product, :name => 'Apache Baseball Jersey', :price => '19.99', :taxons => [apache_taxon, clothing_taxon])
|
24
|
-
end
|
25
|
-
end
|
@@ -1,30 +0,0 @@
|
|
1
|
-
shared_context "product prototype" do
|
2
|
-
|
3
|
-
def build_option_type_with_values(name, values)
|
4
|
-
ot = FactoryGirl.create(:option_type, :name => name)
|
5
|
-
values.each do |val|
|
6
|
-
ot.option_values.create(:name => val.downcase, :presentation => val)
|
7
|
-
end
|
8
|
-
ot
|
9
|
-
end
|
10
|
-
|
11
|
-
let(:product_attributes) do
|
12
|
-
# FactoryGirl.attributes_for is un-deprecated!
|
13
|
-
# https://github.com/thoughtbot/factory_girl/issues/274#issuecomment-3592054
|
14
|
-
FactoryGirl.attributes_for(:base_product)
|
15
|
-
end
|
16
|
-
|
17
|
-
let(:prototype) do
|
18
|
-
size = build_option_type_with_values("size", %w(Small Medium Large))
|
19
|
-
FactoryGirl.create(:prototype, :name => "Size", :option_types => [ size ])
|
20
|
-
end
|
21
|
-
|
22
|
-
let(:option_values_hash) do
|
23
|
-
hash = {}
|
24
|
-
prototype.option_types.each do |i|
|
25
|
-
hash[i.id.to_s] = i.option_value_ids
|
26
|
-
end
|
27
|
-
hash
|
28
|
-
end
|
29
|
-
|
30
|
-
end
|