Skip to content

Instantly share code, notes, and snippets.

@gmgent
Created March 24, 2011 19:26
Show Gist options
  • Save gmgent/885676 to your computer and use it in GitHub Desktop.
Save gmgent/885676 to your computer and use it in GitHub Desktop.
require File.dirname(__FILE__) + '/../test_helper'
require "reports_controller"
include AuthSys
class ReportsControllerTest < ActionController::TestCase
def setup
@u_admin_gmg = new_test_user(:role => roles(:admin), :partner => partners(:gmg))
@account = new_test_account
@inbound = Inbound.create(:account => @account, :file_name => "test.csv", :run_code => @runcode)
@retailer = new_test_retailer
password_authentication(@u_admin_gmg.login, @u_admin_gmg.password)
end
test "post dashboard with current_user" do
@sale = fake_sale(:inbound => @inbound, :serial_number => 99999,
:item_date => (Date.today - 1.day).strftime("%Y-%m-%d"),
:amount => 99, :rec_type => "Sales", :was_redeemed => true,
:retailer => @retailer )
@sale2 = fake_sale(:inbound => @inbound, :serial_number => 99999,
:item_date => (Date.today - 2.day).strftime("%Y-%m-%d"),
:amount => 77, :rec_type => "Sales", :was_redeemed => true,
:retailer => @retailer )
from_date = "#{(Date.today - 2.day).strftime('%B')} #{@sale2.item_date.split("-")[2]}, #{@sale.item_date.split("-")[0]}"
to_date = "#{(Date.today - 1.day).strftime('%B')} #{@sale.item_date.split("-")[2]}, #{@sale.item_date.split("-")[0]}"
post :dashboard, :connect => {"zone"=>"xx", "select"=>"0", "state"=>"xx"},
:rtype=>"Sales - Daily",
:from_date => from_date,
:to_date => to_date
assert_response :success
assert @response.body.scan("$176.00 Total Sales for GMG").first
assert_nil @response.body.scan("$333.33 Total Sales for GMG").first
post :dashboard, :connect => {"zone"=>"xx", "select"=>"0", "state"=>"xx"},
:rtype=>"Sales by Retailer",
:from_date => from_date,
:to_date => to_date
assert_response :success
assert @response.body.scan("$176.00 Total Sales by Retailer for GMG").first
assert_nil @response.body.scan("$333.33 Total Sales by Retailer for GMG").first
post :dashboard, :connect => {"zone"=>"xx", "select"=>"0", "state"=>"xx"},
:rtype=>"Sales by Denomination",
:from_date => from_date,
:to_date => to_date
assert_response :success
assert @response.body.scan("$176.00 Total Sales by Denomination for GMG").first
assert_nil @response.body.scan("$333.33 Total Sales by Denomination for GMG").first
post :dashboard, :connect => {"zone"=>"xx", "select"=>"0", "state"=>"xx"},
:rtype=>"Redemptions",
:from_date => from_date,
:to_date => to_date
assert_response :success
assert @response.body.scan("$176.00 Total Sales for GMG").first
assert_nil @response.body.scan("$333.33 Total Sales for GMG").first
#make sure $176 dollars lies within the redeemed html fragment
found_string = @response.body.scan(/(<table class="denom">)(\s{0,})(.{0,})(\s{0,})(.{0,})/)
assert found_string
assert found_string.to_s.scan("$176.00").first
post :dashboard, :connect => {"zone"=>"xx", "select"=>"0", "state"=>"xx"},
:rtype=>"Sales by Partner",
:from_date => from_date,
:to_date => to_date
assert_response :success
assert @response.body.scan("$176.00 Total Sales by Partner for GMG").first
assert_nil @response.body.scan("$333.33 Total Sales by Partner for GMG").first
end
test "post regional with current_user" do
@sale = fake_sale(:inbound => @inbound, :serial_number => 99999,
:item_date => (Date.today - 1.day).strftime("%Y-%m-%d"),
:amount => 99, :rec_type => "Sales", :was_redeemed => true,
:retailer => @retailer )
@sale2 = fake_sale(:inbound => @inbound, :serial_number => 99999,
:item_date => (Date.today - 2.day).strftime("%Y-%m-%d"),
:amount => 77, :rec_type => "Sales", :was_redeemed => true,
:retailer => @retailer )
from_date = "#{(Date.today - 2.day).strftime('%B')} #{@sale2.item_date.split("-")[2]}, #{@sale.item_date.split("-")[0]}"
to_date = "#{(Date.today - 1.day).strftime('%B')} #{@sale.item_date.split("-")[2]}, #{@sale.item_date.split("-")[0]}"
post :regional, :connect => {:select=>"0"},
:rtype=>"state - units",
:from_date => from_date,
:to_date => to_date
assert_response :success
assert @response.body.scan("2 additional sales online or unmapped.").first
assert_nil @response.body.scan("0 additional sales online or unmapped.").first
post :regional, :connect => {:select=>"0"},
:rtype=>"state - dollar",
:from_date => from_date,
:to_date => to_date
assert_response :success
assert @response.body.scan("$176 additional sales online or unmapped.").first
assert_nil @response.body.scan("0 additional sales online or unmapped.").first
end
test "post dashboard with current_user assert nil for promo" do
@sale = fake_sale(:inbound => @inbound, :serial_number => 99999,
:item_date => (Date.today - 1.day).strftime("%Y-%m-%d"),
:amount => 99, :rec_type => "Promo", :was_redeemed => true,
:retailer => @retailer )
@sale2 = fake_sale(:inbound => @inbound, :serial_number => 99999,
:item_date => (Date.today - 2.day).strftime("%Y-%m-%d"),
:amount => 77, :rec_type => "Promo", :was_redeemed => true,
:retailer => @retailer )
from_date = "#{(Date.today - 2.day).strftime('%B')} #{@sale2.item_date.split("-")[2]}, #{@sale.item_date.split("-")[0]}"
to_date = "#{(Date.today - 1.day).strftime('%B')} #{@sale.item_date.split("-")[2]}, #{@sale.item_date.split("-")[0]}"
post :dashboard, :connect => {"zone"=>"xx", "select"=>"0", "state"=>"xx"},
:rtype=>"Sales - Daily",
:from_date => from_date,
:to_date => to_date
assert_response :success
assert_nil @response.body.scan("$176.00 Total Sales for GMG").first
post :dashboard, :connect => {"zone"=>"xx", "select"=>"0", "state"=>"xx"},
:rtype=>"Sales by Retailer",
:from_date => from_date,
:to_date => to_date
assert_response :success
assert_nil @response.body.scan("$176.00 Total Sales by Retailer for GMG").first
post :dashboard, :connect => {"zone"=>"xx", "select"=>"0", "state"=>"xx"},
:rtype=>"Sales by Denomination",
:from_date => from_date,
:to_date => to_date
assert_response :success
assert_nil @response.body.scan("$176.00 Total Sales by Denomination for GMG").first
post :dashboard, :connect => {"zone"=>"xx", "select"=>"0", "state"=>"xx"},
:rtype=>"Redemptions",
:from_date => from_date,
:to_date => to_date
assert_response :success
assert_nil @response.body.scan("$176.00 Total Sales for GMG").first
#make sure $176 dollars does not lie within the redeemed html fragment
found_string = @response.body.scan(/(<table class="denom">)(\s{0,})(.{0,})(\s{0,})(.{0,})/)
assert found_string
assert_nil found_string.to_s.scan("$176.00").first
post :dashboard, :connect => {"zone"=>"xx", "select"=>"0", "state"=>"xx"},
:rtype=>"Sales by Partner",
:from_date => from_date,
:to_date => to_date
assert_response :success
assert_nil @response.body.scan("$176.00 Total Sales by Partner for GMG").first
end
test "post regional with current_user assert nil for promo" do
@sale = fake_sale(:inbound => @inbound, :serial_number => 99999,
:item_date => (Date.today - 1.day).strftime("%Y-%m-%d"),
:amount => 99, :rec_type => "Promo", :was_redeemed => true,
:retailer => @retailer )
@sale2 = fake_sale(:inbound => @inbound, :serial_number => 99999,
:item_date => (Date.today - 2.day).strftime("%Y-%m-%d"),
:amount => 77, :rec_type => "Promo", :was_redeemed => true,
:retailer => @retailer )
from_date = "#{(Date.today - 2.day).strftime('%B')} #{@sale2.item_date.split("-")[2]}, #{@sale.item_date.split("-")[0]}"
to_date = "#{(Date.today - 1.day).strftime('%B')} #{@sale.item_date.split("-")[2]}, #{@sale.item_date.split("-")[0]}"
post :regional, :connect => {:select=>"0"},
:rtype=>"state - units",
:from_date => from_date,
:to_date => to_date
assert_response :success
assert @response.body.scan("0 additional sales online or unmapped.").first
assert_nil @response.body.scan("2 additional sales online or unmapped.").first
post :regional, :connect => {:select=>"0"},
:rtype=>"state - dollar",
:from_date => from_date,
:to_date => to_date
assert_response :success
assert_nil @response.body.scan("$176 additional sales online or unmapped.").first
assert @response.body.scan("$0 additional sales online or unmapped.").first
end
test "post by_year with current user" do
@sale = fake_sale(:inbound => @inbound, :serial_number => 99999,
:item_date => (Date.today - 1.month).strftime("%Y-%m-%d"),
:amount => 99, :rec_type => "Sales", :was_redeemed => true,
:retailer => @retailer,
:item_month => (Date.today - 1.month).month,
:item_year => (Date.today - 1.month).year )
@sale2 = fake_sale(:inbound => @inbound, :serial_number => 99999,
:item_date => (Date.today - 2.month).strftime("%Y-%m-%d"),
:amount => 77, :rec_type => "Sales", :was_redeemed => true,
:retailer => @retailer,
:item_month => (Date.today - 2.month).month,
:item_year => (Date.today - 2.month).year )
from_date = "#{(Date.today - 2.day).strftime('%B')} #{@sale2.item_date.split("-")[2]}, #{@sale.item_date.split("-")[0]}"
to_date = "#{(Date.today - 1.day).strftime('%B')} #{@sale.item_date.split("-")[2]}, #{@sale.item_date.split("-")[0]}"
#run non stacked, all years
post :by_year, :commit => "run report",
:connect => {"year" => "0", "select"=>"0"},
:stacked => {:do_it => "0"}
assert_response :success
assert @response.body.scan("subcaption='$176.00'").first
#run stacked, all years
post :by_year, :commit => "run report",
:connect => {"year" => "0", "select"=>"0"},
:stacked => {:do_it => "1"}
assert_response :success
assert @response.body.scan("subcaption='$176.00'").first
end
test "post by_year with current user assert nil for promo" do
@sale = fake_sale(:inbound => @inbound, :serial_number => 99999,
:item_date => (Date.today - 1.month).strftime("%Y-%m-%d"),
:amount => 99, :rec_type => "Promo", :was_redeemed => true,
:retailer => @retailer,
:item_month => (Date.today - 1.month).month,
:item_year => (Date.today - 1.month).year )
@sale2 = fake_sale(:inbound => @inbound, :serial_number => 99999,
:item_date => (Date.today - 2.month).strftime("%Y-%m-%d"),
:amount => 77, :rec_type => "Promo", :was_redeemed => true,
:retailer => @retailer,
:item_month => (Date.today - 2.month).month,
:item_year => (Date.today - 2.month).year )
from_date = "#{(Date.today - 2.day).strftime('%B')} #{@sale2.item_date.split("-")[2]}, #{@sale.item_date.split("-")[0]}"
to_date = "#{(Date.today - 1.day).strftime('%B')} #{@sale.item_date.split("-")[2]}, #{@sale.item_date.split("-")[0]}"
#run non stacked, all years
post :by_year, :commit => "run report",
:connect => {"year" => "0", "select"=>"0"},
:stacked => {:do_it => "0"}
assert_response :success
assert_nil @response.body.scan("subcaption='$176.00'").first
#run stacked, all years
post :by_year, :commit => "run report",
:connect => {"year" => "0", "select"=>"0"},
:stacked => {:do_it => "1"}
assert_response :success
assert_nil @response.body.scan("subcaption='$176.00'").first
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment