Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Updated for Spree 3.0 stable branch #4

Merged
merged 3 commits into from
Apr 1, 2015
Merged
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 1 addition & 1 deletion Gemfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
source 'https://rubygems.org'

# Provides basic authentication functionality for testing parts of your engine
gem 'spree_auth_devise', github: 'spree/spree_auth_devise', branch: '2-2-stable'
gem 'spree_auth_devise', github: 'spree/spree_auth_devise', branch: '3-0-stable'

gemspec
4 changes: 2 additions & 2 deletions app/models/concerns/stock_notification.rb
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,13 @@ module StockNotification
def notify_out_of_stock
out_of_stock = crossed(0)
yield
StockMailer.out_of_stock(self).deliver if out_of_stock
StockMailer.out_of_stock(self).deliver_later if out_of_stock
end

def notify_low_stock
low_stock = crossed(Spree::Config.low_stock_threshold)
yield
StockMailer.low_stock(self).deliver if low_stock
StockMailer.low_stock(self).deliver_later if low_stock
end

def crossed(threshold)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
Spree.config do |config|
# create a list of admin emails
admin_role = Spree::Role.find_by_name('admin')
admin_emails = admin_role.users.map(&:email).join(',')
if ENV['RAILS_ENV'] == 'test'
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hey @farneman,

Feel its better to not add this to the initializer, since all sites will then have this code. Would prefer to do it in a before block in the specs.

Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe its better for the generator to leave all config options commented.

admin_emails = "john@example.com, jane@example.com"
else
admin_role = Spree::Role.find_by_name('admin')
admin_emails = admin_role.users.map(&:email).join(',')
end

# set comma separated list of emails
config.stock_notifications_list = admin_emails
Expand Down
4 changes: 2 additions & 2 deletions spec/mailers/stock_mailer_spec.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
require "spec_helper"

describe StockMailer do
pending "add some examples to (or delete) #{__FILE__}"
describe StockMailer, :type => :mailer do
skip "add some examples to (or delete) #{__FILE__}"
end
12 changes: 6 additions & 6 deletions spec/models/stock_item_spec.rb
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
require 'spec_helper'

describe Spree::StockItem do
describe Spree::StockItem, type: :model do
let(:variant) { create(:variant) }
let(:stock_item) { variant.stock_items.first}
let(:mail) { double(:mail) }

it "sends notification when out of stock" do
StockMailer.should_receive(:out_of_stock).once.with(stock_item).and_return(mail)
mail.should_receive(:deliver)
expect(StockMailer).to receive(:low_stock).once.with(stock_item).and_return(mail)
expect(mail).to receive(:deliver_later)

stock_item.adjust_count_on_hand(10)
stock_item.adjust_count_on_hand(-5)
Expand All @@ -17,8 +17,8 @@
it "sends notification when low stock" do
Spree::Config.low_stock_threshold = 5

StockMailer.should_receive(:low_stock).once.with(stock_item).and_return(mail)
mail.should_receive(:deliver)
expect(StockMailer).to receive(:low_stock).once.with(stock_item).and_return(mail)
expect(mail).to receive(:deliver_later)

stock_item.adjust_count_on_hand(10)
stock_item.adjust_count_on_hand(-3)
Expand All @@ -28,7 +28,7 @@
it "doesnt sends notification when low stock threshold is nil" do
Spree::Config.low_stock_threshold = nil

StockMailer.should_not_receive(:low_stock)
expect(StockMailer).not_to receive(:low_stock)

stock_item.adjust_count_on_hand(10)
stock_item.adjust_count_on_hand(-3)
Expand Down
5 changes: 4 additions & 1 deletion spec/spec_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
# Requires factories defined in lib/spree_stock_notifications/factories.rb
require 'spree_stock_notifications/factories'


RSpec.configure do |config|
config.include FactoryGirl::Syntax::Methods

Expand All @@ -53,6 +54,8 @@
config.mock_with :rspec
config.color = true

config.infer_spec_type_from_file_location!

# Remove this line if you're not using ActiveRecord or ActiveRecord fixtures
config.fixture_path = "#{::Rails.root}/spec/fixtures"

Expand All @@ -68,7 +71,7 @@
end

# Before each spec check if it is a Javascript test and switch between using database transactions or not where necessary.
config.before :each do
config.before :each do |example|
DatabaseCleaner.strategy = example.metadata[:js] ? :truncation : :transaction
DatabaseCleaner.start
end
Expand Down
18 changes: 10 additions & 8 deletions spree_stock_notifications.gemspec
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
# encoding: UTF-8
version = '3.0.0'

Gem::Specification.new do |s|
s.platform = Gem::Platform::RUBY
s.name = 'spree_stock_notifications'
s.version = '2.2.0'
s.version = version
s.summary = 'Stock notifications'
s.description = 'Notifies when stock levels are low or item goes out of stock'
s.required_ruby_version = '>= 1.9.3'
s.required_ruby_version = '>= 2.0.0'

s.author = 'Joshua Nussbaum'
s.email = 'joshnuss@gmail.com'
Expand All @@ -16,15 +18,15 @@ Gem::Specification.new do |s|
s.require_path = 'lib'
s.requirements << 'none'

s.add_dependency 'spree_core', '~> 2.2.0'
s.add_dependency 'spree_backend'
s.add_dependency 'spree_core', version
s.add_dependency 'spree_backend', version

s.add_development_dependency 'capybara', '~> 2.1'
s.add_development_dependency 'capybara', '~> 2.4'
s.add_development_dependency 'coffee-rails'
s.add_development_dependency 'database_cleaner'
s.add_development_dependency 'factory_girl', '~> 4.2'
s.add_development_dependency 'database_cleaner', '~> 1.4'
s.add_development_dependency 'factory_girl', '~> 4.5'
s.add_development_dependency 'ffaker'
s.add_development_dependency 'rspec-rails', '~> 2.13'
s.add_development_dependency 'rspec-rails', '~> 3.2'
s.add_development_dependency 'sass-rails'
s.add_development_dependency 'selenium-webdriver'
s.add_development_dependency 'simplecov'
Expand Down