forked from joshsoftware/code-curiosity
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
refs#13 Added testcases for redeem_requests_controller, redeem_contro…
…ller, redeem_mailer, redeem_request_model
- Loading branch information
1 parent
1bedd31
commit bdcd3c6
Showing
5 changed files
with
139 additions
and
8 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,9 +1,60 @@ | ||
require "test_helper" | ||
|
||
class Admin::RedeemRequestsControllerTest < ActionController::TestCase | ||
def test_index | ||
get :index | ||
class Admin::RedeemRequestsControllerTest < ActionController::TestCase | ||
|
||
def test_must_get_users_redemption_requests | ||
seed_data | ||
xhr :get, :index, parameters, format: :js, :id => @user.id | ||
assert_response :success | ||
end | ||
|
||
def test_should_not_update_redeem_request_without_any_parameter | ||
seed_data | ||
redeem_request = create(:redeem_request,:points => 100, user: @user) | ||
assert_raises ActionController::ParameterMissing do | ||
put :update, :id => redeem_request.id | ||
end | ||
end | ||
|
||
def test_must_update_redeem_requests_parameters | ||
seed_data | ||
redeem_request = create(:redeem_request,:points => 100, user: @user) | ||
updated_coupon_code = 'josh24' | ||
patch :update, :id => redeem_request.id, redeem_request: {:coupon_code => updated_coupon_code} | ||
redeem_request.reload | ||
assert_equal updated_coupon_code, redeem_request.coupon_code | ||
assert_response :redirect | ||
end | ||
|
||
def test_should_destroy_redeem_request | ||
seed_data | ||
redeem_request = create(:redeem_request,:points => 100, user: @user) | ||
assert_difference('RedeemRequest.count', -1) do | ||
delete :destroy, id: redeem_request.id | ||
end | ||
assert_response :redirect | ||
end | ||
|
||
def test_should_destroy_transaction_corresponding_to_redeem_request | ||
seed_data | ||
redeem_request = create(:redeem_request,:points => 100, user: @user) | ||
assert_difference('Transaction.count', -1) do | ||
delete :destroy, id: redeem_request.id | ||
end | ||
assert_response :redirect | ||
end | ||
|
||
def seed_data | ||
round = create(:round, :status => 'open') | ||
role = create(:role, :name => 'Admin') | ||
@user = create(:user, :auth_token => 'dah123rty', goal: create(:goal)) | ||
@user.roles << role | ||
sign_in @user | ||
transaction = create(:transaction, :type => 'credit', :points => 120, user: @user) | ||
end | ||
|
||
def parameters | ||
{"redeem_request"=>{'coupon_code' => 'josh12' ,'points' => '100'}} | ||
end | ||
|
||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,7 +1,50 @@ | ||
require "test_helper" | ||
|
||
class RedeemControllerTest < ActionController::TestCase | ||
def test_sanity | ||
flunk "Need real tests" | ||
|
||
def test_controller_and_action_name | ||
seed_round_and_user | ||
xhr :post, :create, redeem_request: {:retailer => 'github', :points => 100}, :id => @user.id | ||
assert_equal "text/javascript", @response.content_type | ||
assert_equal "create", @controller.action_name | ||
end | ||
|
||
def test_redeem_request_not_created_if_points_is_0 | ||
seed_round_and_user | ||
xhr :post, :create, redeem_request: {:retailer => 'github', :points => 0}, :id => @user.id | ||
assert_equal RedeemRequest.count, 0 | ||
end | ||
|
||
def test_it_must_create_redeem_request_if_points_is_greater_than_zero | ||
seed_round_and_user | ||
xhr :post, :create, redeem_request: {:retailer => 'github', :points => 100}, :id => @user.id | ||
assert_equal RedeemRequest.count, 1 | ||
assert_response :success | ||
end | ||
|
||
def test_redeem_request_when_retailer_is_github | ||
seed_round_and_user | ||
xhr :post, :create, redeem_request: {:retailer => 'github', :points => 121}, :id => @user.id | ||
assert_template 'redeem/_github' | ||
end | ||
|
||
def test_redeem_request_when_retailer_is_amazon | ||
seed_round_and_user | ||
xhr :post, :create, redeem_request: {:retailer => 'amazon', :points => 121}, :id => @user.id | ||
assert_template 'redeem/_amazon' | ||
end | ||
|
||
def test_redeem_request_when_retailer_is_others | ||
seed_round_and_user | ||
xhr :post, :create, redeem_request: {:retailer => 'other', :points => 121}, :id => @user.id | ||
assert_template 'redeem/_other' | ||
end | ||
|
||
def seed_round_and_user | ||
round = create(:round, :status => 'open') | ||
@user = create(:user, :auth_token => 'dah123rty', goal: create(:goal)) | ||
sign_in @user | ||
transaction = create(:transaction, :type => 'credit', :points => 120, user: @user) | ||
end | ||
|
||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,7 +1,35 @@ | ||
require "test_helper" | ||
|
||
class RedeemMailerTest < ActionMailer::TestCase | ||
def test_sanity | ||
flunk "Need real tests" | ||
include ActiveJob::TestHelper | ||
|
||
def test_mail_is_enqueued_to_be_delivered_later | ||
user = create(:user) | ||
transaction = create(:transaction, :type => 'credit', :points => 20, user: user) | ||
r = create(:redeem_request, :points => 2, user: user) | ||
assert_enqueued_jobs 1 do | ||
RedeemMailer.redeem_request(r).deliver_later | ||
end | ||
end | ||
|
||
def test_mail_should_be_delivered | ||
user = create(:user) | ||
transaction = create(:transaction, :type => 'credit', :points => 20, user: user) | ||
r = create(:redeem_request, :points => 2, user: user) | ||
assert_difference 'ActionMailer::Base.deliveries.size', +1 do | ||
RedeemMailer.redeem_request(r).deliver_now | ||
end | ||
end | ||
|
||
def test_mail_is_delivered_with_expected_content | ||
user = create(:user) | ||
transaction = create(:transaction, :type => 'credit', :points => 20, user: user) | ||
r = create(:redeem_request, :points => 2, user: user) | ||
perform_enqueued_jobs do | ||
mail = RedeemMailer.redeem_request(r).deliver_now | ||
delivered_email = ActionMailer::Base.deliveries.last | ||
assert_includes delivered_email.to, mail.to.first | ||
end | ||
end | ||
|
||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters