docbrown/spec/requests/history_spec.rb
rhymes c8abbe9d60 Pro: memberships (#3461)
* 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
2019-09-24 10:38:54 -07:00

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