Spiegel von
https://github.com/paviliondev/discourse-custom-wizard.git
synchronisiert 2024-09-07 19:09:38 +02:00
DEV: Integrate subscription gem classes in rspec suite
I've tweaked the subscription client gem so we can just use the gem's models and tables in this plugin's rspec, which makes duplicating and stubbing them unnecessary. See further https://github.com/paviliondev/discourse_subscription_client
Dieser Commit ist enthalten in:
Ursprung
635700a51e
Commit
35021eb176
32 geänderte Dateien mit 6 neuen und 56 gelöschten Zeilen
|
@ -9,3 +9,6 @@ RSpec/DescribeClass:
|
|||
|
||||
Discourse/TimeEqMatcher:
|
||||
Enabled: false
|
||||
|
||||
Discourse/NoAddReferenceOrAliasesActiveRecordMigration:
|
||||
Enabled: false
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
# subscription_url: https://coop.pavilion.tech
|
||||
|
||||
gem 'liquid', '5.0.1', require: true
|
||||
gem "discourse_subscription_client", "0.1.0.pre15", require_name: "discourse_subscription_client"
|
||||
gem "discourse_subscription_client", "0.1.1", require_name: "discourse_subscription_client"
|
||||
gem 'discourse_plugin_statistics', '0.1.0.pre7', require: true
|
||||
register_asset 'stylesheets/common/admin.scss'
|
||||
register_asset 'stylesheets/common/wizard.scss'
|
||||
|
|
|
@ -42,7 +42,6 @@ describe CustomWizard::Action do
|
|||
}
|
||||
|
||||
before do
|
||||
stub_out_subscription_classes
|
||||
Group.refresh_automatic_group!(:trust_level_2)
|
||||
update_template(wizard_template)
|
||||
end
|
||||
|
|
|
@ -29,7 +29,6 @@ describe CustomWizard::Builder do
|
|||
}
|
||||
|
||||
before do
|
||||
stub_out_subscription_classes
|
||||
Group.refresh_automatic_group!(:trust_level_3)
|
||||
CustomWizard::Template.save(wizard_template, skip_jobs: true)
|
||||
@template = CustomWizard::Template.find('super_mega_fun_wizard')
|
||||
|
|
|
@ -5,7 +5,6 @@ describe CustomWizard::CustomField do
|
|||
let(:custom_field_subscription_json) { get_wizard_fixture("custom_field/subscription_custom_fields") }
|
||||
|
||||
before do
|
||||
stub_out_subscription_classes
|
||||
CustomWizard::CustomField.invalidate_cache
|
||||
end
|
||||
|
||||
|
|
|
@ -7,7 +7,6 @@ describe CustomWizard::Submission do
|
|||
let(:guest_id) { CustomWizard::Wizard.generate_guest_id }
|
||||
|
||||
before do
|
||||
stub_out_subscription_classes
|
||||
CustomWizard::Template.save(template_json, skip_jobs: true)
|
||||
@wizard = CustomWizard::Wizard.create(template_json["id"], user)
|
||||
described_class.new(@wizard, step_1_field_1: "I am user submission").save
|
||||
|
|
|
@ -14,10 +14,6 @@ describe CustomWizard::Subscription do
|
|||
}
|
||||
|
||||
context "with subscription client gem mocked out" do
|
||||
before do
|
||||
stub_out_subscription_classes
|
||||
end
|
||||
|
||||
context "without a subscription" do
|
||||
before do
|
||||
DiscourseSubscriptionClient.stubs(:find_subscriptions).returns(nil)
|
||||
|
@ -40,9 +36,9 @@ describe CustomWizard::Subscription do
|
|||
|
||||
def get_subscription_result(product_ids)
|
||||
result = DiscourseSubscriptionClient::Subscriptions::Result.new
|
||||
result.supplier = SubscriptionClientSupplier.new(product_slugs)
|
||||
result.supplier = SubscriptionClientSupplier.new(products: product_slugs)
|
||||
result.resource = SubscriptionClientResource.new
|
||||
result.subscriptions = product_ids.map { |product_id| ::SubscriptionClientSubscription.new(product_id) }
|
||||
result.subscriptions = product_ids.map { |product_id| ::SubscriptionClientSubscription.new(product_id: product_id) }
|
||||
result.products = product_slugs
|
||||
result
|
||||
end
|
||||
|
|
|
@ -7,7 +7,6 @@ describe CustomWizard::Template do
|
|||
fab!(:upload) { Fabricate(:upload) }
|
||||
|
||||
before do
|
||||
stub_out_subscription_classes
|
||||
CustomWizard::Template.save(template_json, skip_jobs: true)
|
||||
end
|
||||
|
||||
|
|
|
@ -39,10 +39,6 @@ describe CustomWizard::TemplateValidator do
|
|||
expect(validator.errors.first.message).to eq("Liquid syntax error in #{object_id}: #{message}")
|
||||
end
|
||||
|
||||
before do
|
||||
stub_out_subscription_classes
|
||||
end
|
||||
|
||||
it "validates valid templates" do
|
||||
expect(
|
||||
CustomWizard::TemplateValidator.new(template).perform
|
||||
|
|
|
@ -6,7 +6,6 @@ describe CustomWizard::UpdateValidator do
|
|||
let(:url_field) { get_wizard_fixture("field/url") }
|
||||
|
||||
before do
|
||||
stub_out_subscription_classes
|
||||
CustomWizard::Template.save(template, skip_jobs: true)
|
||||
@template = CustomWizard::Template.find('super_mega_fun_wizard')
|
||||
end
|
||||
|
|
|
@ -10,7 +10,6 @@ describe CustomWizard::Wizard do
|
|||
let(:step_json) { get_wizard_fixture("step/step") }
|
||||
|
||||
before do
|
||||
stub_out_subscription_classes
|
||||
Group.refresh_automatic_group!(:trust_level_3)
|
||||
@permitted_template = template_json.dup
|
||||
@permitted_template["permitted"] = permitted_json["permitted"]
|
||||
|
|
|
@ -11,7 +11,6 @@ describe "custom field extensions" do
|
|||
let(:subscription_custom_field_json) { get_wizard_fixture("custom_field/subscription_custom_fields") }
|
||||
|
||||
before do
|
||||
stub_out_subscription_classes
|
||||
custom_field_json['custom_fields'].each do |field_json|
|
||||
custom_field = CustomWizard::CustomField.new(nil, field_json)
|
||||
custom_field.save
|
||||
|
|
|
@ -7,7 +7,6 @@ describe ExtraLocalesControllerCustomWizard, type: :request do
|
|||
let(:permitted) { get_wizard_fixture("wizard/permitted") }
|
||||
|
||||
before do
|
||||
stub_out_subscription_classes
|
||||
CustomWizard::Template.save(template, skip_jobs: true)
|
||||
end
|
||||
|
||||
|
|
|
@ -33,7 +33,6 @@ describe ::Guardian do
|
|||
end
|
||||
|
||||
before do
|
||||
stub_out_subscription_classes
|
||||
CustomWizard::Template.save(wizard_template, skip_jobs: true)
|
||||
@template = CustomWizard::Template.find('super_mega_fun_wizard')
|
||||
end
|
||||
|
|
|
@ -6,7 +6,6 @@ describe InvitesControllerCustomWizard, type: :request do
|
|||
let(:template) { get_wizard_fixture("wizard") }
|
||||
|
||||
before do
|
||||
stub_out_subscription_classes
|
||||
@controller = InvitesController.new
|
||||
end
|
||||
|
||||
|
|
|
@ -4,7 +4,6 @@ describe CustomWizardUsersController, type: :request do
|
|||
let(:template) { get_wizard_fixture("wizard") }
|
||||
|
||||
before do
|
||||
stub_out_subscription_classes
|
||||
@controller = UsersController.new
|
||||
end
|
||||
|
||||
|
|
|
@ -9,13 +9,11 @@ def get_wizard_fixture(path)
|
|||
end
|
||||
|
||||
def enable_subscription(type)
|
||||
stub_out_subscription_classes
|
||||
CustomWizard::Subscription.stubs("#{type}?".to_sym).returns(true)
|
||||
CustomWizard::Subscription.any_instance.stubs("#{type}?".to_sym).returns(true)
|
||||
end
|
||||
|
||||
def disable_subscriptions
|
||||
stub_out_subscription_classes
|
||||
%w[
|
||||
standard
|
||||
business
|
||||
|
@ -25,12 +23,3 @@ def disable_subscriptions
|
|||
CustomWizard::Subscription.any_instance.stubs("#{type}?".to_sym).returns(false)
|
||||
end
|
||||
end
|
||||
|
||||
def unstub_out_subscription_classes
|
||||
Object.send(:remove_const, :DiscourseSubscriptionClient) if Object.constants.include?(:DiscourseSubscriptionClient)
|
||||
Object.send(:remove_const, :SubscriptionClientSubscription) if Object.constants.include?(:SubscriptionClientSubscription)
|
||||
end
|
||||
|
||||
def stub_out_subscription_classes
|
||||
load File.expand_path("#{Rails.root}/plugins/discourse-custom-wizard/spec/fixtures/subscription_client.rb", __FILE__)
|
||||
end
|
||||
|
|
|
@ -5,7 +5,6 @@ describe CustomWizard::AdminApiController do
|
|||
let(:api_json) { get_wizard_fixture("api/api") }
|
||||
|
||||
before do
|
||||
stub_out_subscription_classes
|
||||
sign_in(admin_user)
|
||||
end
|
||||
|
||||
|
|
|
@ -5,7 +5,6 @@ describe CustomWizard::AdminCustomFieldsController do
|
|||
let(:custom_field_json) { get_wizard_fixture("custom_field/custom_fields") }
|
||||
|
||||
before do
|
||||
stub_out_subscription_classes
|
||||
custom_field_json['custom_fields'].each do |field_json|
|
||||
CustomWizard::CustomField.new(nil, field_json).save
|
||||
end
|
||||
|
|
|
@ -5,7 +5,6 @@ describe CustomWizard::AdminLogsController do
|
|||
let(:template) { get_wizard_fixture("wizard") }
|
||||
|
||||
before do
|
||||
stub_out_subscription_classes
|
||||
["first", "second", "third"].each_with_index do |key, index|
|
||||
temp = template.dup
|
||||
temp["id"] = "#{key}_test_wizard"
|
||||
|
|
|
@ -5,7 +5,6 @@ describe CustomWizard::AdminManagerController do
|
|||
let(:template) { get_wizard_fixture("wizard") }
|
||||
|
||||
before do
|
||||
stub_out_subscription_classes
|
||||
sign_in(admin_user)
|
||||
|
||||
template_2 = template.dup
|
||||
|
|
|
@ -16,7 +16,6 @@ describe CustomWizard::SubscriptionController do
|
|||
context "without a subscription" do
|
||||
before do
|
||||
disable_subscriptions
|
||||
stub_out_subscription_classes
|
||||
end
|
||||
|
||||
it "returns the right subscription details" do
|
||||
|
@ -29,7 +28,6 @@ describe CustomWizard::SubscriptionController do
|
|||
context "with a subscription" do
|
||||
before do
|
||||
enable_subscription("standard")
|
||||
stub_out_subscription_classes
|
||||
end
|
||||
|
||||
it "returns the right subscription details" do
|
||||
|
|
|
@ -5,7 +5,6 @@ describe ApplicationController do
|
|||
let(:wizard_template) { get_wizard_fixture("wizard") }
|
||||
|
||||
before do
|
||||
stub_out_subscription_classes
|
||||
CustomWizard::Template.save(wizard_template, skip_jobs: true)
|
||||
@template = CustomWizard::Template.find('super_mega_fun_wizard')
|
||||
end
|
||||
|
|
|
@ -10,7 +10,6 @@ describe "custom field extensions" do
|
|||
let(:subscription_custom_field_json) { get_wizard_fixture("custom_field/subscription_custom_fields") }
|
||||
|
||||
before do
|
||||
stub_out_subscription_classes
|
||||
custom_field_json['custom_fields'].each do |field_json|
|
||||
custom_field = CustomWizard::CustomField.new(nil, field_json)
|
||||
custom_field.save
|
||||
|
|
|
@ -11,7 +11,6 @@ describe CustomWizard::StepsController do
|
|||
let(:guests_permitted) { get_wizard_fixture("wizard/guests_permitted") }
|
||||
|
||||
before do
|
||||
stub_out_subscription_classes
|
||||
CustomWizard::Template.save(wizard_template, skip_jobs: true)
|
||||
end
|
||||
|
||||
|
|
|
@ -6,7 +6,6 @@ describe CustomWizard::WizardController do
|
|||
let(:permitted_json) { get_wizard_fixture("wizard/permitted") }
|
||||
|
||||
before do
|
||||
stub_out_subscription_classes
|
||||
CustomWizard::Template.save(wizard_template, skip_jobs: true)
|
||||
@template = CustomWizard::Template.find("super_mega_fun_wizard")
|
||||
end
|
||||
|
|
|
@ -4,10 +4,6 @@ describe CustomWizard::BasicWizardSerializer do
|
|||
fab!(:user) { Fabricate(:user) }
|
||||
let(:template) { get_wizard_fixture("wizard") }
|
||||
|
||||
before do
|
||||
stub_out_subscription_classes
|
||||
end
|
||||
|
||||
it 'should return basic wizard attributes' do
|
||||
CustomWizard::Template.save(template, skip_jobs: true)
|
||||
json = CustomWizard::BasicWizardSerializer.new(
|
||||
|
|
|
@ -4,10 +4,6 @@ describe CustomWizard::CustomFieldSerializer do
|
|||
fab!(:user) { Fabricate(:user) }
|
||||
let(:custom_field_json) { get_wizard_fixture("custom_field/custom_fields") }
|
||||
|
||||
before do
|
||||
stub_out_subscription_classes
|
||||
end
|
||||
|
||||
it 'should return custom field attributes' do
|
||||
custom_field_json['custom_fields'].each do |field_json|
|
||||
CustomWizard::CustomField.new(nil, field_json).save
|
||||
|
|
|
@ -13,7 +13,6 @@ describe CustomWizard::SubmissionSerializer do
|
|||
}
|
||||
|
||||
before do
|
||||
stub_out_subscription_classes
|
||||
CustomWizard::Template.save(template_json, skip_jobs: true)
|
||||
|
||||
wizard = CustomWizard::Wizard.create(template_json["id"], user1)
|
||||
|
|
|
@ -5,7 +5,6 @@ describe CustomWizard::FieldSerializer do
|
|||
let(:template) { get_wizard_fixture("wizard") }
|
||||
|
||||
before do
|
||||
stub_out_subscription_classes
|
||||
CustomWizard::Template.save(template, skip_jobs: true)
|
||||
@wizard = CustomWizard::Builder.new("super_mega_fun_wizard", user).build
|
||||
end
|
||||
|
|
|
@ -8,7 +8,6 @@ describe CustomWizard::WizardSerializer do
|
|||
let(:advanced_fields) { get_wizard_fixture("field/advanced_types") }
|
||||
|
||||
before do
|
||||
stub_out_subscription_classes
|
||||
CustomWizard::Template.save(template, skip_jobs: true)
|
||||
@template = CustomWizard::Template.find('super_mega_fun_wizard')
|
||||
end
|
||||
|
|
|
@ -6,7 +6,6 @@ describe CustomWizard::StepSerializer do
|
|||
let(:required_data_json) { get_wizard_fixture("step/required_data") }
|
||||
|
||||
before do
|
||||
stub_out_subscription_classes
|
||||
CustomWizard::Template.save(wizard_template, skip_jobs: true)
|
||||
@wizard = CustomWizard::Builder.new("super_mega_fun_wizard", user).build
|
||||
end
|
||||
|
|
Laden …
In neuem Issue referenzieren