* Add ProMembership model * Implement ProMembershipsController#create * Implement basic ProMembershipsController#show * Add ProMembership to ledger * Populate user history after pro subscription is created * Add fields for expiration notifications * Add ProMemberships::ExpirationNotifier to notify users of expiring memberships * Add tasks for recurring jobs to notify users of expiration * Add auto_recharge column to ProMembership * Add ProMemberships::Biller (incomplete) * Fix specs * Add ProMembership to Administrate * Fix spec * Add has_enough_credits? to User and Organization * Add Payments::Customer class * Finish ProMembership::Biller functionality * Fix ProMemberships::Creator check for credits * Disable destroy actions for ProMembershipsController * Correctly authenticate ProMembershipsController actions * Make sure only pro user's history can be indexed * Add ProMembershipsController#update action for auto recharge * Use regular AR to save new credits and add touch to the purchaser * Clarify Pro membership create policy * Display information about an existing pro membership * Add UI to show page * Add system test for Pro membership creation * Implement edit membership * Make sure users with pro memberships can access history and dashboard pro * Fix padding issue * Show a different text for a user that has credits but not enough for Pro * Move Pro Membership functionality inside settings * Update Pro Membership link in email notifications * Bust all relevant caches * Add the Pro checkmark around the website * Use Users::ResaveArticlesJob instead of delay * Add/remove user from pro-members chat channel * Use the appropriate Pro checkmark * Remove unfinished pro elements * Remove checkmark JS
28 lines
819 B
Ruby
28 lines
819 B
Ruby
require "rails_helper"
|
|
|
|
RSpec.describe "History", type: :request do
|
|
let(:user) { create(:user) }
|
|
let(:pro_user) { create(:user, :pro) }
|
|
let(:pro_membership_user) { create(:user, :with_pro_membership) }
|
|
|
|
describe "GET /history" do
|
|
it "does not allow access to a regular user" do
|
|
sign_in user
|
|
expect { get history_path }.to raise_error(Pundit::NotAuthorizedError)
|
|
end
|
|
|
|
it "allows access to a pro user" do
|
|
sign_in pro_user
|
|
get history_path
|
|
expect(response).to have_http_status(:ok)
|
|
expect(response.body).to include("History")
|
|
end
|
|
|
|
it "allows access to a user with a pro membership" do
|
|
sign_in pro_membership_user
|
|
get history_path
|
|
expect(response).to have_http_status(:ok)
|
|
expect(response.body).to include("History")
|
|
end
|
|
end
|
|
end
|