diff --git a/lib/tasks/orders/import_orders_from_email.rake b/lib/tasks/orders/import_orders_from_email.rake
index 2558836..1deb19e 100644
--- a/lib/tasks/orders/import_orders_from_email.rake
+++ b/lib/tasks/orders/import_orders_from_email.rake
@@ -16,7 +16,10 @@ namespace :orders do
emails.each_with_index do |email,i|
failed_orders = []
- Rails.logger.info("Processing email #{i}")
+ Rails.logger.info("Processing email #{i}")
+
+ # We need this instantiated before we loop over emails
+ csv_source = nil
email.message.attachments.each do |a|
Rails.logger.info("Reading attachments")
@@ -35,12 +38,12 @@ namespace :orders do
Rails.logger.debug("Checking headers for determine csv source: #{headers}")
if source_check_headers.eql?(uncommon_goods_headers)
- @csv_source = 'uncommon_goods'
+ csv_source = 'uncommon_goods'
elsif source_check_headers.eql?(generic_csv_headers)
- @csv_source = 'generic'
+ csv_source = 'generic'
end
- raise UnknownOrderHeaders.new(source_check_headers) if @csv_source.nil?
+ raise UnknownOrderHeaders.new(source_check_headers) if csv_source.nil?
# For each row in the csv, map to TPR params and create order while handling input errors
csv.each do |row|
@@ -48,7 +51,7 @@ namespace :orders do
order = map_order_row(headers, row)
Rails.logger.debug("Mapped csv rows: #{order}")
begin
- case @csv_source
+ case csv_source
when 'uncommon_goods'
order_params = parse_ucg_row(order)
when 'generic'
@@ -89,10 +92,9 @@ namespace :orders do
end
end
email.read!
- end
-
- if ENV['SEND_IMPORT_NOTIFICATION_EMAILS'] == true || emails.count != 0
- TaskHelper.notify_of_import(@csv_source, all_failed_orders)
+ if ENV['SEND_IMPORT_NOTIFICATION_EMAILS'] == true || emails.count != 0
+ TaskHelper.notify_of_import(csv_source, all_failed_orders)
+ end
end
end
diff --git a/lib/tasks/shipments/shipments_tasks.rake b/lib/tasks/shipments/shipments_tasks.rake
index 47a9f0d..d82a132 100644
--- a/lib/tasks/shipments/shipments_tasks.rake
+++ b/lib/tasks/shipments/shipments_tasks.rake
@@ -20,7 +20,7 @@ namespace :shipments do
if shippo_response['tracking_status'].nil?
Rails.logger.error("Tracking status is nil")
else
- tracking_status = Shippo::Track.get(shipment.tracking_number, 'usps')['tracking_status']['status']
+ tracking_status = shippo_response['tracking_status']['status']
# Update shipment status
status_whitelist = %w{DELIVERED TRANSIT FAILURE RETURNED}
if status_whitelist.include?(tracking_status)
diff --git a/spec/fixtures/unknown_orders.csv b/spec/fixtures/unknown_orders.csv
index f566648..ba9840b 100644
--- a/spec/fixtures/unknown_orders.csv
+++ b/spec/fixtures/unknown_orders.csv
@@ -1,3 +1,3 @@
-date_created,expected_ship_date,order_id,quantity,sku,vendor_name,item_name,customer_name,st_address_line1,st_address_line2,city,state,postal_code,shipping_upgrade,shipment_id,external_order_id,bill_last_name,bill_address1,bill_address2,bill_city,bill_zip,bill_phonenum,bill_code,giftmessage,radio
+dat_created,expected_ship_date,order_id,quantity,sku,vendor_name,item_name,customer_name,st_address_line1,st_address_line2,city,state,postal_code,shipping_upgrade,shipment_id,external_order_id,bill_last_name,bill_address1,bill_address2,bill_city,bill_zip,bill_phonenum,bill_code,giftmessage,radio
07/25/2017 00:00:00,2017-11-15 00:00:00.0,7875723,1,468810000000,Centerline Labs LLC,The Public Radio ,mar medrd,238 Fairview Rd,,Raleigh,NC,27608,Economy 3-8 Business Days
(Final delivery likely to be by US Postal Service),8581381,0,mtha,meford,2308 Fairview Road,,Raleigh,27608,919-781-5957,,NC,,Choose a station- FM Frequency (US only):/^91.5
07/25/2017 00:00:00,2017-11-15 00:00:00.0,7875751,1,468810000000,Centerline Labs LLC,The Public Radio ,cathy mulvney,43 Green Valley Rd,,Wallingford,PA,19086-6050,Economy 3-8 Business Days
(Final delivery likely to be by US Postal Service),8581411,mulaney,43 Green Vally Rd,,Wallingford,19086-6050,610-608-7120,,PA,,Choose a station- FM Frequency (US only):/^100.1
\ No newline at end of file
diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb
index ce2747a..08365df 100644
--- a/spec/spec_helper.rb
+++ b/spec/spec_helper.rb
@@ -36,6 +36,7 @@
ENV['UNCOMMON_GOODS_INVOICING_EMAILS'] = 'orders@ucg.com,foo@bar.com'
ENV['INVOICE_FROM_EMAIL_ADDRESS'] = 'billing@foo.com'
ENV['EMAILS_TO_NOTIFY_OF_IMPORT'] = 'testnotify@foo.com'
+ENV['EMAILS_TO_NOTIFY_OF_ORDERS'] = 'testnotify@foo.com'
ENV['SQUARESPACE_API_KEY'] = 'test-key'
ENV['SQUARESPACE_APP_NAME'] = 'test-app'
ENV['TPR_ORDER_SOURCES'] = 'squarespace,kickstarter,uncommon_goods,other,WBEZ,warranty,KUER,LGA,WFAE,KERA,KXT'
diff --git a/spec/tasks/orders/import_orders_from_email_spec.rb b/spec/tasks/orders/import_orders_from_email_spec.rb
index b5ed9c7..91a99b7 100644
--- a/spec/tasks/orders/import_orders_from_email_spec.rb
+++ b/spec/tasks/orders/import_orders_from_email_spec.rb
@@ -24,7 +24,7 @@
let(:ucg_message) { double('message', attachments: [ucg_attachment]) }
let(:ucg_email) { double('ucg_email', message: ucg_message) }
- # UCG order fixture
+ # Unknown order fixture
let(:unknown_fixture) { load_order_fixture('unknown_orders') }
let(:unknown_attachment) { double('attachment', decoded: unknown_fixture) }
let(:unknown_message) { double('message', attachments: [unknown_attachment]) }
@@ -110,27 +110,14 @@
it 'raises a error when no order source can be matched' do
expect_any_instance_of(TaskHelper).to receive(:find_unread_emails).and_return([unknown_email])
- expect_any_instance_of(TaskHelper).to receive(:create_order)
expect(unknown_email).to receive(:message).and_return(unknown_message)
expect(unknown_message).to receive(:attachments).and_return([unknown_attachment])
- expect(unknown_attachment).to receive(:decoded).and_return(unknown_fixture)
- expect(unknown_email).to receive(:read!)
+ expect(unknown_attachment).to receive(:decoded).and_return(unknown_fixture)
expect{ task.execute }.to raise_error(UnknownOrderHeaders)
end
context 'cleans up any stray orders, shipments, and radios when the order' do
- # error_email_params = {
- # body: "There were 3 orders with errors. See 'error' collumn of attached csv for details."
- # add_file: 'some/error/csv'
- # }
-
- # error_order_csv = CSV.parse(error_fixture)
- # bad_address_params = error_order_csv[1]
- # bad_frequency_params = error_order_csv[2]
- # order_already_imported_params = error_order_csv[4]
- # expect_any_instance_of(TaskHelper).to receive(:send_reply).with(error_email_params)
-
before(:each) do
expect_any_instance_of(TaskHelper).to receive(:find_unread_emails).and_return([error_email])
expect_any_instance_of(TaskHelper).to receive(:send_email)
diff --git a/spec/tasks/orders/import_orders_from_squarespace_spec.rb b/spec/tasks/orders/import_orders_from_squarespace_spec.rb
index 53c094b..4b8305f 100644
--- a/spec/tasks/orders/import_orders_from_squarespace_spec.rb
+++ b/spec/tasks/orders/import_orders_from_squarespace_spec.rb
@@ -9,6 +9,7 @@
context 'from squarespace' do
it 'import all pendings orders' do
+ ENV['SEND_IMPORT_NOTIFICATION_EMAILS_SQUARESPACE'] = 'true'
api_key = ENV['SQUARESPACE_API_KEY']
app_name = ENV['SQUARESPACE_APP_NAME']
@@ -21,7 +22,6 @@
.and_return(stub_client)
expect(stub_client).to receive(:get_orders).with('pending').and_return(stub_orders)
- expect_any_instance_of(TaskHelper).to receive(:notify_of_import).with('squarespace', [])
squarespace_order_fixture['result'].each do |test_order|
shipping_address = test_order['shippingAddress']
diff --git a/spec/tasks/radios/send_radios_created_today_email_spec.rb b/spec/tasks/radios/send_radios_created_today_email_spec.rb
index ae719e9..1dba33f 100644
--- a/spec/tasks/radios/send_radios_created_today_email_spec.rb
+++ b/spec/tasks/radios/send_radios_created_today_email_spec.rb
@@ -6,7 +6,7 @@
expect(task.prerequisites).to include "environment"
end
- it 'notifies ops@tpr of how many orders were imported that day' do
+ it 'notifies of how many orders were imported that day' do
radio_count = 4
create(:radio_boxed)
create_list(:radio_inital_order, 3)
diff --git a/spec/tasks/shipments/shipments_task_spec.rb b/spec/tasks/shipments/shipments_task_spec.rb
index 00e5803..411841e 100644
--- a/spec/tasks/shipments/shipments_task_spec.rb
+++ b/spec/tasks/shipments/shipments_task_spec.rb
@@ -25,7 +25,7 @@
shippo_response['tracking_status']['status'] = k
# Mock the shippo call
- expect(Shippo::Track).to receive(:get).with(shipments[0].tracking_number, 'usps').and_return(shippo_response).exactly(3).times
+ expect(Shippo::Track).to receive(:get).with(shipments[0].tracking_number, 'usps').and_return(shippo_response).exactly(6).times
expect(Shippo::Track).to receive(:get).with(shipments[1].tracking_number, 'usps').and_return(shippo_response)
task.execute