1
0
Fork 0
discourse-custom-wizard-unl.../spec/requests/custom_wizard/application_controller_spec.rb

69 Zeilen
1,7 KiB
Ruby

2021-03-11 07:30:15 +01:00
# frozen_string_literal: true
require_relative '../../plugin_helper'
2020-11-03 01:24:20 +01:00
describe ApplicationController do
fab!(:user) {
Fabricate(
:user,
username: 'angus',
email: "angus@email.com",
trust_level: TrustLevel[3]
2021-03-11 07:30:15 +01:00
)
2020-11-03 01:24:20 +01:00
}
before do
CustomWizard::Template.save(
JSON.parse(File.open(
"#{Rails.root}/plugins/discourse-custom-wizard/spec/fixtures/wizard.json"
).read),
skip_jobs: true)
@template = CustomWizard::Template.find('super_mega_fun_wizard')
end
2021-03-11 07:30:15 +01:00
2020-11-03 01:24:20 +01:00
context "with signed in user" do
before do
sign_in(user)
end
2021-03-11 07:30:15 +01:00
2020-11-03 01:24:20 +01:00
context "who is required to complete wizard" do
before do
user.custom_fields['redirect_to_wizard'] = 'super_mega_fun_wizard'
user.save_custom_fields(true)
end
2021-03-11 07:30:15 +01:00
2020-11-03 01:24:20 +01:00
it "redirects if user is required to complete a wizard" do
get "/"
expect(response).to redirect_to("/w/super-mega-fun-wizard")
end
2021-03-11 07:30:15 +01:00
2020-11-03 01:24:20 +01:00
it "saves original destination of user" do
get '/', headers: { 'REFERER' => "/t/2" }
expect(
CustomWizard::Wizard.create(@template['id'], user).submissions
.first.fields['redirect_to']
2020-11-03 01:24:20 +01:00
).to eq("/t/2")
end
it "does not redirect if wizard does not exist" do
CustomWizard::Template.remove('super_mega_fun_wizard')
get "/"
expect(response.status).to eq(200)
end
2020-11-03 01:24:20 +01:00
end
2021-03-11 07:30:15 +01:00
2020-11-03 01:24:20 +01:00
context "who is not required to complete wizard" do
it "does nothing" do
get "/"
expect(response.status).to eq(200)
end
end
end
2021-03-11 07:30:15 +01:00
2020-11-03 01:24:20 +01:00
context "with guest" do
it "does nothing" do
get "/"
expect(response.status).to eq(200)
end
end
2021-03-11 07:30:15 +01:00
end