user upgrades: handle the refunded status on show page.

This commit is contained in:
evazion
2021-01-01 21:23:03 -06:00
parent 48676789f0
commit 014199ec2b
3 changed files with 29 additions and 8 deletions

View File

@@ -0,0 +1,9 @@
<%# user_upgrade %>
<% if policy(user_upgrade).receipt? %>
<%= link_to "View Receipt", receipt_user_upgrade_path(user_upgrade), target: "_blank" %>
<% end %>
<% if policy(user_upgrade).payment? %>
| <%= link_to "View Payment", payment_user_upgrade_path(user_upgrade), target: "_blank" %>
<% end %>

View File

@@ -9,12 +9,15 @@
<ul> <ul>
<li> <li>
<strong>Purchased</strong> <strong>Purchased</strong>
<%= time_ago_in_words_tagged @user_upgrade.updated_at %>
by <%= link_to_user @user_upgrade.purchaser %> by <%= link_to_user @user_upgrade.purchaser %>
<% if @user_upgrade.is_gift? %> <% if @user_upgrade.is_gift? %>
for <%= link_to_user @user_upgrade.recipient %> for <%= link_to_user @user_upgrade.recipient %>
<% end %> <% end %>
</li> </li>
<li>
<strong>Updated</strong>
<%= time_ago_in_words_tagged @user_upgrade.updated_at %>
</li>
<li> <li>
<strong>Upgrade Type</strong> <strong>Upgrade Type</strong>
<%= @user_upgrade.upgrade_type.humanize %> <%= @user_upgrade.upgrade_type.humanize %>
@@ -26,7 +29,7 @@
</ul> </ul>
</p> </p>
<% if @user_upgrade.status == "complete" %> <% if @user_upgrade.complete? %>
<% if @user_upgrade.is_gift? && CurrentUser.user == @user_upgrade.recipient %> <% if @user_upgrade.is_gift? && CurrentUser.user == @user_upgrade.recipient %>
<p><%= link_to_user @user_upgrade.purchaser %> has upgraded your account to <%= @user_upgrade.level_string %>. Enjoy your new account!</p> <p><%= link_to_user @user_upgrade.purchaser %> has upgraded your account to <%= @user_upgrade.level_string %>. Enjoy your new account!</p>
<% elsif @user_upgrade.is_gift? && CurrentUser.user == @user_upgrade.purchaser %> <% elsif @user_upgrade.is_gift? && CurrentUser.user == @user_upgrade.purchaser %>
@@ -35,13 +38,13 @@
<p>You are now a <%= @user_upgrade.level_string %> user. Thanks for supporting the site! A receipt has been sent to your email.</p> <p>You are now a <%= @user_upgrade.level_string %> user. Thanks for supporting the site! A receipt has been sent to your email.</p>
<% end %> <% end %>
<% if policy(@user_upgrade).receipt? %> <%= render "stripe_links", user_upgrade: @user_upgrade %>
<%= link_to "View Receipt", receipt_user_upgrade_path(@user_upgrade), target: "_blank" %> <% elsif @user_upgrade.refunded? %>
<% end %> <p>This purchase has been refunded. A receipt has been sent to your email. It can take up to
5-10 days for the refund to appear on your credit card or bank statement. If it takes longer,
please contact your bank for assistance.</p>
<% if policy(@user_upgrade).payment? %> <%= render "stripe_links", user_upgrade: @user_upgrade %>
| <%= link_to "View Payment", payment_user_upgrade_path(@user_upgrade), target: "_blank" %>
<% end %>
<% else %> <% else %>
<%= content_for :html_header do %> <%= content_for :html_header do %>
<meta http-equiv="refresh" content="5"> <meta http-equiv="refresh" content="5">

View File

@@ -123,6 +123,15 @@ class UserUpgradesControllerTest < ActionDispatch::IntegrationTest
end end
end end
context "for a refunded upgrade" do
should "render" do
@user_upgrade = create(:self_gold_upgrade, status: "refunded")
get_auth user_upgrade_path(@user_upgrade), @user_upgrade.purchaser
assert_response :success
end
end
context "for a pending upgrade" do context "for a pending upgrade" do
should "render" do should "render" do
@user_upgrade = create(:self_gold_upgrade, status: "pending") @user_upgrade = create(:self_gold_upgrade, status: "pending")