-
-
Notifications
You must be signed in to change notification settings - Fork 264
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[CI] Handle HIDE_THINGS differently in tests (#1207)
* [CI] Handle HIDE_THINGS differently in tests * linter * why is this test failing... * a little clean up
- Loading branch information
1 parent
43ff07b
commit 64d2a83
Showing
10 changed files
with
887 additions
and
797 deletions.
There are no files selected for viewing
99 changes: 53 additions & 46 deletions
99
test/concerns/fields/super_select_support_concern_test.rb
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,67 +1,74 @@ | ||
require "test_helper" | ||
|
||
unless scaffolding_things_disabled? | ||
class Fields::SuperSelectSupportConcernTest < ActiveSupport::TestCase | ||
class FakeController < Account::ApplicationController | ||
include Fields::SuperSelectSupport | ||
end | ||
class Fields::SuperSelectSupportConcernTest < ActiveSupport::TestCase | ||
class FakeController < Account::ApplicationController | ||
include Fields::SuperSelectSupport | ||
end | ||
|
||
setup do | ||
@controller = FakeController.new | ||
@user = FactoryBot.create :onboarded_user | ||
@team = @user.current_team | ||
end | ||
setup do | ||
@controller = FakeController.new | ||
@user = FactoryBot.create :onboarded_user | ||
@team = @user.current_team | ||
|
||
@original_hide_things = ENV["HIDE_THINGS"] | ||
ENV["HIDE_THINGS"] = "false" | ||
Rails.application.reload_routes! | ||
end | ||
|
||
test "should not create new model for authorized singular id" do | ||
creative_concept = FactoryBot.create :creative_concept, team: @team | ||
strong_params = {id: creative_concept.id.to_s} | ||
teardown do | ||
ENV["HIDE_THINGS"] = @original_hide_things | ||
Rails.application.reload_routes! | ||
end | ||
|
||
strong_params[:id] = @controller.ensure_backing_models_on(@team.scaffolding_absolutely_abstract_creative_concepts, id: strong_params[:id]) do |scope, id| | ||
scope.find_or_create_by(name: id) | ||
end | ||
test "should not create new model for authorized singular id" do | ||
creative_concept = FactoryBot.create :creative_concept, team: @team | ||
strong_params = {id: creative_concept.id.to_s} | ||
|
||
assert_equal strong_params[:id], creative_concept.id.to_s | ||
strong_params[:id] = @controller.ensure_backing_models_on(@team.scaffolding_absolutely_abstract_creative_concepts, id: strong_params[:id]) do |scope, id| | ||
scope.find_or_create_by(name: id) | ||
end | ||
|
||
test "should create new model for unauthorized singular numerical id" do | ||
@other_user = FactoryBot.create :onboarded_user | ||
@other_team = @other_user.current_team | ||
unauthorized_creative_concept = FactoryBot.create :creative_concept, team: @other_team | ||
strong_params = {id: unauthorized_creative_concept.id.to_s} | ||
assert_equal strong_params[:id], creative_concept.id.to_s | ||
end | ||
|
||
strong_params[:id] = @controller.ensure_backing_models_on(@team.scaffolding_absolutely_abstract_creative_concepts, id: strong_params[:id]) do |scope, id| | ||
scope.find_or_create_by(name: id) | ||
end | ||
test "should create new model for unauthorized singular numerical id" do | ||
@other_user = FactoryBot.create :onboarded_user | ||
@other_team = @other_user.current_team | ||
unauthorized_creative_concept = FactoryBot.create :creative_concept, team: @other_team | ||
strong_params = {id: unauthorized_creative_concept.id.to_s} | ||
|
||
assert_not_equal strong_params[:id], unauthorized_creative_concept.id.to_s | ||
strong_params[:id] = @controller.ensure_backing_models_on(@team.scaffolding_absolutely_abstract_creative_concepts, id: strong_params[:id]) do |scope, id| | ||
scope.find_or_create_by(name: id) | ||
end | ||
|
||
test "should create new model for unauthorized singular new_text as id" do | ||
creative_concept = nil | ||
strong_params = {id: "creative concept one"} | ||
assert_not_equal strong_params[:id], unauthorized_creative_concept.id.to_s | ||
end | ||
|
||
strong_params[:id] = @controller.ensure_backing_models_on(@team.scaffolding_absolutely_abstract_creative_concepts, id: strong_params[:id]) do |scope, id| | ||
creative_concept = scope.find_or_create_by(name: id) | ||
creative_concept | ||
end | ||
test "should create new model for unauthorized singular new_text as id" do | ||
creative_concept = nil | ||
strong_params = {id: "creative concept one"} | ||
|
||
assert_equal strong_params[:id], creative_concept.id.to_s | ||
assert_equal @team.scaffolding_absolutely_abstract_creative_concepts.find(strong_params[:id])&.name, "creative concept one" | ||
strong_params[:id] = @controller.ensure_backing_models_on(@team.scaffolding_absolutely_abstract_creative_concepts, id: strong_params[:id]) do |scope, id| | ||
creative_concept = scope.find_or_create_by(name: id) | ||
creative_concept | ||
end | ||
|
||
test "should handle a list with authorized id and new text string" do | ||
known_creative_concept = FactoryBot.create :creative_concept, team: @team | ||
new_creative_concept = nil | ||
strong_params = {ids: [known_creative_concept.id.to_s, "creative concept one"]} | ||
assert_equal strong_params[:id], creative_concept.id.to_s | ||
assert_equal @team.scaffolding_absolutely_abstract_creative_concepts.find(strong_params[:id])&.name, "creative concept one" | ||
end | ||
|
||
strong_params[:ids] = @controller.ensure_backing_models_on(@team.scaffolding_absolutely_abstract_creative_concepts, ids: strong_params[:ids]) do |scope, id| | ||
new_creative_concept = scope.find_or_create_by(name: id) | ||
new_creative_concept | ||
end | ||
test "should handle a list with authorized id and new text string" do | ||
known_creative_concept = FactoryBot.create :creative_concept, team: @team | ||
new_creative_concept = nil | ||
strong_params = {ids: [known_creative_concept.id.to_s, "creative concept one"]} | ||
|
||
assert strong_params[:ids].include?(known_creative_concept.id.to_s) | ||
assert strong_params[:ids].include?(new_creative_concept.id.to_s) | ||
assert_equal @team.scaffolding_absolutely_abstract_creative_concepts.find(new_creative_concept.id)&.name, "creative concept one" | ||
strong_params[:ids] = @controller.ensure_backing_models_on(@team.scaffolding_absolutely_abstract_creative_concepts, ids: strong_params[:ids]) do |scope, id| | ||
new_creative_concept = scope.find_or_create_by(name: id) | ||
new_creative_concept | ||
end | ||
|
||
assert strong_params[:ids].include?(known_creative_concept.id.to_s) | ||
assert strong_params[:ids].include?(new_creative_concept.id.to_s) | ||
assert_equal @team.scaffolding_absolutely_abstract_creative_concepts.find(new_creative_concept.id)&.name, "creative concept one" | ||
end | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -3,90 +3,98 @@ | |
class Account::Scaffolding::CompletelyConcrete::TangibleThingsControllerTest < ActionDispatch::IntegrationTest | ||
include Devise::Test::IntegrationHelpers | ||
|
||
unless scaffolding_things_disabled? # π skip when scaffolding. | ||
def setup | ||
super | ||
@user = create(:onboarded_user) | ||
sign_in @user | ||
@team = @user.current_team | ||
# π skip this section when scaffolding. | ||
@absolutely_abstract_creative_concept = create(:scaffolding_absolutely_abstract_creative_concept, team: @team) | ||
@tangible_thing = create(:scaffolding_completely_concrete_tangible_thing, absolutely_abstract_creative_concept: @absolutely_abstract_creative_concept) | ||
# π stop any skipping we're doing now. | ||
# π super scaffolding will insert factory setup in place of this line. | ||
end | ||
|
||
test "should get index" do | ||
get url_for([:account, @absolutely_abstract_creative_concept, :completely_concrete_tangible_things]) | ||
assert_response :success | ||
end | ||
def setup | ||
super | ||
@user = create(:onboarded_user) | ||
sign_in @user | ||
@team = @user.current_team | ||
# π skip this section when scaffolding. | ||
@absolutely_abstract_creative_concept = create(:scaffolding_absolutely_abstract_creative_concept, team: @team) | ||
@tangible_thing = create(:scaffolding_completely_concrete_tangible_thing, absolutely_abstract_creative_concept: @absolutely_abstract_creative_concept) | ||
# π stop any skipping we're doing now. | ||
# π super scaffolding will insert factory setup in place of this line. | ||
|
||
test "should get new" do | ||
get url_for([:new, :account, @absolutely_abstract_creative_concept, :completely_concrete_tangible_thing]) | ||
assert_response :success | ||
end | ||
|
||
test "should create tangible_thing" do | ||
assert_difference("Scaffolding::CompletelyConcrete::TangibleThing.count") do | ||
post url_for([:account, @absolutely_abstract_creative_concept, :completely_concrete_tangible_things]), params: { | ||
scaffolding_completely_concrete_tangible_thing: { | ||
# π skip this section when scaffolding. | ||
text_field_value: "Alternative String Value", | ||
button_value: @tangible_thing.button_value, | ||
cloudinary_image_value: @tangible_thing.cloudinary_image_value, | ||
date_field_value: @tangible_thing.date_field_value, | ||
email_field_value: "[email protected]", | ||
password_field_value: "Alternative String Value", | ||
phone_field_value: "+19053871234", | ||
super_select_value: @tangible_thing.super_select_value, | ||
text_area_value: "Alternative String Value", | ||
action_text_value: @tangible_thing.action_text_value, | ||
# π stop any skipping we're doing now. | ||
# π super scaffolding will insert new fields above this line. | ||
} | ||
} | ||
end | ||
@original_hide_things = ENV["HIDE_THINGS"] | ||
ENV["HIDE_THINGS"] = "false" | ||
Rails.application.reload_routes! | ||
end | ||
|
||
assert_redirected_to url_for([:account, Scaffolding::CompletelyConcrete::TangibleThing.last]) | ||
end | ||
def teardown | ||
super | ||
ENV["HIDE_THINGS"] = @original_hide_things | ||
Rails.application.reload_routes! | ||
end | ||
|
||
test "should show tangible_thing" do | ||
get url_for([:account, @tangible_thing]) | ||
assert_response :success | ||
end | ||
test "should get index" do | ||
get url_for([:account, @absolutely_abstract_creative_concept, :completely_concrete_tangible_things]) | ||
assert_response :success | ||
end | ||
|
||
test "should get edit" do | ||
get url_for([:edit, :account, @tangible_thing]) | ||
assert_response :success | ||
end | ||
test "should get new" do | ||
get url_for([:new, :account, @absolutely_abstract_creative_concept, :completely_concrete_tangible_thing]) | ||
assert_response :success | ||
end | ||
|
||
test "should update tangible_thing" do | ||
patch url_for([:account, @tangible_thing]), params: { | ||
test "should create tangible_thing" do | ||
assert_difference("Scaffolding::CompletelyConcrete::TangibleThing.count") do | ||
post url_for([:account, @absolutely_abstract_creative_concept, :completely_concrete_tangible_things]), params: { | ||
scaffolding_completely_concrete_tangible_thing: { | ||
# π skip this section when scaffolding. | ||
text_field_value: @tangible_thing.text_field_value, | ||
text_field_value: "Alternative String Value", | ||
button_value: @tangible_thing.button_value, | ||
cloudinary_image_value: @tangible_thing.cloudinary_image_value, | ||
date_field_value: @tangible_thing.date_field_value, | ||
email_field_value: @tangible_thing.email_field_value, | ||
password_field_value: @tangible_thing.password_field_value, | ||
phone_field_value: @tangible_thing.phone_field_value, | ||
email_field_value: "[email protected]", | ||
password_field_value: "Alternative String Value", | ||
phone_field_value: "+19053871234", | ||
super_select_value: @tangible_thing.super_select_value, | ||
text_area_value: @tangible_thing.text_area_value, | ||
text_area_value: "Alternative String Value", | ||
action_text_value: @tangible_thing.action_text_value, | ||
# π stop any skipping we're doing now. | ||
# π super scaffolding will also insert new fields above this line. | ||
# π super scaffolding will insert new fields above this line. | ||
} | ||
} | ||
assert_redirected_to url_for([:account, @tangible_thing]) | ||
end | ||
|
||
test "should destroy tangible_thing" do | ||
assert_difference("Scaffolding::CompletelyConcrete::TangibleThing.count", -1) do | ||
delete url_for([:account, @tangible_thing]) | ||
end | ||
assert_redirected_to url_for([:account, Scaffolding::CompletelyConcrete::TangibleThing.last]) | ||
end | ||
|
||
test "should show tangible_thing" do | ||
get url_for([:account, @tangible_thing]) | ||
assert_response :success | ||
end | ||
|
||
assert_redirected_to url_for([:account, @absolutely_abstract_creative_concept, :completely_concrete_tangible_things]) | ||
test "should get edit" do | ||
get url_for([:edit, :account, @tangible_thing]) | ||
assert_response :success | ||
end | ||
|
||
test "should update tangible_thing" do | ||
patch url_for([:account, @tangible_thing]), params: { | ||
scaffolding_completely_concrete_tangible_thing: { | ||
# π skip this section when scaffolding. | ||
text_field_value: @tangible_thing.text_field_value, | ||
button_value: @tangible_thing.button_value, | ||
cloudinary_image_value: @tangible_thing.cloudinary_image_value, | ||
date_field_value: @tangible_thing.date_field_value, | ||
email_field_value: @tangible_thing.email_field_value, | ||
password_field_value: @tangible_thing.password_field_value, | ||
phone_field_value: @tangible_thing.phone_field_value, | ||
super_select_value: @tangible_thing.super_select_value, | ||
text_area_value: @tangible_thing.text_area_value, | ||
action_text_value: @tangible_thing.action_text_value, | ||
# π stop any skipping we're doing now. | ||
# π super scaffolding will also insert new fields above this line. | ||
} | ||
} | ||
assert_redirected_to url_for([:account, @tangible_thing]) | ||
end | ||
|
||
test "should destroy tangible_thing" do | ||
assert_difference("Scaffolding::CompletelyConcrete::TangibleThing.count", -1) do | ||
delete url_for([:account, @tangible_thing]) | ||
end | ||
|
||
assert_redirected_to url_for([:account, @absolutely_abstract_creative_concept, :completely_concrete_tangible_things]) | ||
end | ||
end |
Oops, something went wrong.