0
0
Fork 1
Spiegel von https://github.com/paviliondev/discourse-custom-wizard.git synchronisiert 2024-11-21 17:00:29 +01: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:
Angus McLeod 2023-11-25 13:16:55 +01:00
Ursprung 635700a51e
Commit 35021eb176
32 geänderte Dateien mit 6 neuen und 56 gelöschten Zeilen

Datei anzeigen

@ -9,3 +9,6 @@ RSpec/DescribeClass:
Discourse/TimeEqMatcher:
Enabled: false
Discourse/NoAddReferenceOrAliasesActiveRecordMigration:
Enabled: false

Datei anzeigen

@ -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'

Datei anzeigen

@ -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

Datei anzeigen

@ -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')

Datei anzeigen

@ -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

Datei anzeigen

@ -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

Datei anzeigen

@ -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

Datei anzeigen

@ -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

Datei anzeigen

@ -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

Datei anzeigen

@ -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

Datei anzeigen

@ -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"]

Datei anzeigen

@ -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

Datei anzeigen

@ -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

Datei anzeigen

@ -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

Datei anzeigen

@ -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

Datei anzeigen

@ -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

Datei anzeigen

@ -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

Datei anzeigen

@ -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

Datei anzeigen

@ -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

Datei anzeigen

@ -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"

Datei anzeigen

@ -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

Datei anzeigen

@ -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

Datei anzeigen

@ -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

Datei anzeigen

@ -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

Datei anzeigen

@ -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

Datei anzeigen

@ -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

Datei anzeigen

@ -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(

Datei anzeigen

@ -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

Datei anzeigen

@ -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)

Datei anzeigen

@ -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

Datei anzeigen

@ -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

Datei anzeigen

@ -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