spree_zaez_variants_labels 3.0.3 → 3.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (45) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +14 -0
  3. data/.rspec +1 -0
  4. data/.travis.yml +12 -0
  5. data/Gemfile +7 -0
  6. data/Guardfile +82 -0
  7. data/LICENSE +26 -0
  8. data/README.md +49 -0
  9. data/Rakefile +21 -0
  10. data/app/assets/javascripts/spree/backend/app/labels/label_controller.js.coffee +36 -0
  11. data/app/assets/javascripts/spree/backend/spectrum.js +2317 -0
  12. data/app/assets/javascripts/spree/backend/spree_zaez_variants_labels.js +2 -0
  13. data/app/assets/javascripts/spree/frontend/spree_zaez_variants_labels.js +2 -0
  14. data/app/assets/stylesheets/spree/backend/spectrum.css +507 -0
  15. data/app/assets/stylesheets/spree/backend/spectrum_overrides.css +29 -0
  16. data/app/assets/stylesheets/spree/backend/spree_zaez_variants_labels.css +4 -0
  17. data/app/assets/stylesheets/spree/frontend/spree_zaez_variants_labels.css +4 -0
  18. data/app/controllers/spree/admin/labels_controller.rb +23 -0
  19. data/app/models/spree/label.rb +8 -0
  20. data/app/models/spree/variant_decorator.rb +5 -0
  21. data/app/overrides/add_label_management_to_variants.rb +4 -0
  22. data/app/overrides/add_labels_to_menu.rb +4 -0
  23. data/app/views/spree/admin/labels/_form.html.erb +26 -0
  24. data/app/views/spree/admin/labels/edit.html.erb +17 -0
  25. data/app/views/spree/admin/labels/index.html.erb +59 -0
  26. data/app/views/spree/admin/labels/new.html.erb +14 -0
  27. data/app/views/spree/admin/variants/_labels.html.erb +12 -0
  28. data/bin/rails +7 -0
  29. data/config/locales/en.yml +14 -0
  30. data/config/locales/pt-br.yml +14 -0
  31. data/config/routes.rb +10 -0
  32. data/db/migrate/20150706192427_create_spree_labels.rb +8 -0
  33. data/db/migrate/20150707130840_create_spree_labels_variants.rb +8 -0
  34. data/lib/generators/spree_zaez_variants_labels/install/install_generator.rb +31 -0
  35. data/lib/spree_zaez_variants_labels.rb +2 -0
  36. data/lib/spree_zaez_variants_labels/engine.rb +20 -0
  37. data/lib/spree_zaez_variants_labels/factories.rb +13 -0
  38. data/spec/features/spree/admin/labels_spec.rb +174 -0
  39. data/spec/features/spree/admin/variants_spec.rb +23 -0
  40. data/spec/models/spree/label_spec.rb +16 -0
  41. data/spec/models/spree/variant_decorator_spec.rb +9 -0
  42. data/spec/spec_helper.rb +91 -0
  43. data/spec/support/capybara_helpers.rb +13 -0
  44. data/spree_zaez_variants_labels.gemspec +38 -0
  45. metadata +52 -3
@@ -0,0 +1,23 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe 'Labels management on variants', type: :feature do
4
+
5
+ let!(:user) {create(:admin_user)}
6
+ let!(:variant) {create(:variant)}
7
+ let!(:label){create(:label)}
8
+
9
+ before do
10
+ 4.times {create(:label)}
11
+ sign_in_admin! user
12
+ end
13
+
14
+ it 'must add a label to a variant' do
15
+ visit spree.edit_admin_product_variant_path(variant.product, variant.id)
16
+ expect(page).to have_selector('div[data-hook="labels"] ul li', minimum: 5)
17
+ check label.name
18
+ find('button[type="submit"]').click
19
+ expect(page).to have_content 'successfully updated!'
20
+ expect(variant.labels).to include(label)
21
+ end
22
+
23
+ end
@@ -0,0 +1,16 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe Spree::Label, type: :model do
4
+
5
+ let(:label) { create(:label) }
6
+
7
+ it {is_expected.to validate_presence_of(:name)}
8
+ it {is_expected.to validate_uniqueness_of(:name)}
9
+ it {is_expected.to validate_presence_of(:color)}
10
+ it {is_expected.to have_and_belong_to_many(:variants)}
11
+
12
+ it 'must have a valid factory' do
13
+ expect(build(:label)).to be_valid
14
+ end
15
+
16
+ end
@@ -0,0 +1,9 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe Spree::Variant, type: :model do
4
+
5
+ let(:variant) { create(:variant)}
6
+
7
+ it{is_expected.to have_and_belong_to_many(:labels)}
8
+
9
+ end
@@ -0,0 +1,91 @@
1
+ # Run Coverage report
2
+ require 'simplecov'
3
+ SimpleCov.start do
4
+ add_filter 'spec/dummy'
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
+
13
+ # Configure Rails Environment
14
+ ENV['RAILS_ENV'] = 'test'
15
+
16
+ require File.expand_path('../dummy/config/environment.rb', __FILE__)
17
+
18
+ require 'rspec/rails'
19
+ require 'shoulda/matchers'
20
+ require 'database_cleaner'
21
+ require 'ffaker'
22
+
23
+ require 'capybara/poltergeist'
24
+ Capybara.javascript_driver = :poltergeist
25
+
26
+ # Requires supporting ruby files with custom matchers and macros, etc,
27
+ # in spec/support/ and its subdirectories.
28
+ Dir[File.join(File.dirname(__FILE__), 'support/**/*.rb')].each { |f| require f }
29
+
30
+ # Requires factories and other useful helpers defined in spree_core.
31
+ require 'spree/testing_support/authorization_helpers'
32
+ require 'spree/testing_support/capybara_ext'
33
+ require 'spree/testing_support/controller_requests'
34
+ require 'spree/testing_support/factories'
35
+ require 'spree/testing_support/url_helpers'
36
+
37
+ # Requires factories defined in lib/spree_zaez_variants_labels/factories.rb
38
+ require 'spree_zaez_variants_labels/factories'
39
+
40
+ RSpec.configure do |config|
41
+ config.include FactoryGirl::Syntax::Methods
42
+
43
+ # Infer an example group's spec type from the file location.
44
+ config.infer_spec_type_from_file_location!
45
+
46
+ # == URL Helpers
47
+ #
48
+ # Allows access to Spree's routes in specs:
49
+ #
50
+ # visit spree.admin_path
51
+ # current_path.should eql(spree.products_path)
52
+ config.include Spree::TestingSupport::UrlHelpers
53
+
54
+ # == Mock Framework
55
+ #
56
+ # If you prefer to use mocha, flexmock or RR, uncomment the appropriate line:
57
+ #
58
+ # config.mock_with :mocha
59
+ # config.mock_with :flexmock
60
+ # config.mock_with :rr
61
+ config.mock_with :rspec
62
+ config.color = true
63
+
64
+ # Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
65
+ config.fixture_path = "#{::Rails.root}/spec/fixtures"
66
+
67
+ # Capybara javascript drivers require transactional fixtures set to false, and we use DatabaseCleaner
68
+ # to cleanup after each test instead. Without transactional fixtures set to false the records created
69
+ # to setup a test will be unavailable to the browser, which runs under a separate server instance.
70
+ config.use_transactional_fixtures = false
71
+
72
+ # Ensure Suite is set to use transactions for speed.
73
+ config.before :suite do
74
+ DatabaseCleaner.strategy = :transaction
75
+ DatabaseCleaner.clean_with :truncation
76
+ end
77
+
78
+ # Before each spec check if it is a Javascript test and switch between using database transactions or not where necessary.
79
+ config.before :each do
80
+ DatabaseCleaner.strategy = RSpec.current_example.metadata[:js] ? :truncation : :transaction
81
+ DatabaseCleaner.start
82
+ end
83
+
84
+ # After each spec clean the database.
85
+ config.after :each do
86
+ DatabaseCleaner.clean
87
+ end
88
+
89
+ config.fail_fast = ENV['FAIL_FAST'] || false
90
+ config.order = "random"
91
+ end
@@ -0,0 +1,13 @@
1
+ def sign_in_admin!(user)
2
+ visit '/admin'
3
+ fill_in 'Email', :with => user.email
4
+ fill_in 'Password', :with => user.password
5
+ click_button 'Login'
6
+ end
7
+
8
+ def sign_in_as!(user)
9
+ visit '/login'
10
+ fill_in 'Email', :with => user.email
11
+ fill_in 'Password', :with => user.password
12
+ click_button 'Login'
13
+ end
@@ -0,0 +1,38 @@
1
+ # encoding: UTF-8
2
+ Gem::Specification.new do |s|
3
+ s.platform = Gem::Platform::RUBY
4
+ s.name = 'spree_zaez_variants_labels'
5
+ s.version = '3.0.4'
6
+ s.summary = 'Implementa a criação de labels e a configuração dos mesmos para serem exibidos nas variantes dos produtos'
7
+ s.description = 'Permite que o administrador cadastre labels para as variantes dos produtos e as exiba na listagem de produtos'
8
+ s.required_ruby_version = '>= 2.0.0'
9
+
10
+ s.author = 'Elison de Campos'
11
+ s.email = 'elison.campos@zaez.net'
12
+ s.homepage = 'http://www.zaez.net'
13
+
14
+ s.files = `git ls-files`.split("\n")
15
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
16
+ s.require_path = 'lib'
17
+ s.requirements << 'none'
18
+
19
+ s.add_dependency 'spree_core', '~> 3.0.0'
20
+
21
+ s.add_development_dependency 'capybara', '~> 2.4'
22
+ s.add_development_dependency 'better_errors'
23
+ s.add_development_dependency 'binding_of_caller'
24
+ s.add_development_dependency 'poltergeist', '~> 1.5.0'
25
+ s.add_development_dependency 'coffee-rails'
26
+ s.add_development_dependency 'database_cleaner'
27
+ s.add_development_dependency 'factory_girl', '~> 4.5'
28
+ s.add_development_dependency 'ffaker'
29
+ s.add_development_dependency 'rspec-rails', '~> 3.1'
30
+ s.add_development_dependency 'shoulda-matchers', '~> 2.8'
31
+ s.add_development_dependency 'sass-rails', '~> 5.0.0.beta1'
32
+ s.add_development_dependency 'selenium-webdriver'
33
+ s.add_development_dependency 'simplecov'
34
+ s.add_development_dependency 'sqlite3'
35
+ s.add_development_dependency 'guard'
36
+ s.add_development_dependency 'guard-bundler'
37
+ s.add_development_dependency 'guard-rspec'
38
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spree_zaez_variants_labels
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.3
4
+ version: 3.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Elison de Campos
@@ -268,7 +268,50 @@ email: elison.campos@zaez.net
268
268
  executables: []
269
269
  extensions: []
270
270
  extra_rdoc_files: []
271
- files: []
271
+ files:
272
+ - ".gitignore"
273
+ - ".rspec"
274
+ - ".travis.yml"
275
+ - Gemfile
276
+ - Guardfile
277
+ - LICENSE
278
+ - README.md
279
+ - Rakefile
280
+ - app/assets/javascripts/spree/backend/app/labels/label_controller.js.coffee
281
+ - app/assets/javascripts/spree/backend/spectrum.js
282
+ - app/assets/javascripts/spree/backend/spree_zaez_variants_labels.js
283
+ - app/assets/javascripts/spree/frontend/spree_zaez_variants_labels.js
284
+ - app/assets/stylesheets/spree/backend/spectrum.css
285
+ - app/assets/stylesheets/spree/backend/spectrum_overrides.css
286
+ - app/assets/stylesheets/spree/backend/spree_zaez_variants_labels.css
287
+ - app/assets/stylesheets/spree/frontend/spree_zaez_variants_labels.css
288
+ - app/controllers/spree/admin/labels_controller.rb
289
+ - app/models/spree/label.rb
290
+ - app/models/spree/variant_decorator.rb
291
+ - app/overrides/add_label_management_to_variants.rb
292
+ - app/overrides/add_labels_to_menu.rb
293
+ - app/views/spree/admin/labels/_form.html.erb
294
+ - app/views/spree/admin/labels/edit.html.erb
295
+ - app/views/spree/admin/labels/index.html.erb
296
+ - app/views/spree/admin/labels/new.html.erb
297
+ - app/views/spree/admin/variants/_labels.html.erb
298
+ - bin/rails
299
+ - config/locales/en.yml
300
+ - config/locales/pt-br.yml
301
+ - config/routes.rb
302
+ - db/migrate/20150706192427_create_spree_labels.rb
303
+ - db/migrate/20150707130840_create_spree_labels_variants.rb
304
+ - lib/generators/spree_zaez_variants_labels/install/install_generator.rb
305
+ - lib/spree_zaez_variants_labels.rb
306
+ - lib/spree_zaez_variants_labels/engine.rb
307
+ - lib/spree_zaez_variants_labels/factories.rb
308
+ - spec/features/spree/admin/labels_spec.rb
309
+ - spec/features/spree/admin/variants_spec.rb
310
+ - spec/models/spree/label_spec.rb
311
+ - spec/models/spree/variant_decorator_spec.rb
312
+ - spec/spec_helper.rb
313
+ - spec/support/capybara_helpers.rb
314
+ - spree_zaez_variants_labels.gemspec
272
315
  homepage: http://www.zaez.net
273
316
  licenses: []
274
317
  metadata: {}
@@ -294,4 +337,10 @@ signing_key:
294
337
  specification_version: 4
295
338
  summary: Implementa a criação de labels e a configuração dos mesmos para serem exibidos
296
339
  nas variantes dos produtos
297
- test_files: []
340
+ test_files:
341
+ - spec/features/spree/admin/labels_spec.rb
342
+ - spec/features/spree/admin/variants_spec.rb
343
+ - spec/models/spree/label_spec.rb
344
+ - spec/models/spree/variant_decorator_spec.rb
345
+ - spec/spec_helper.rb
346
+ - spec/support/capybara_helpers.rb