Skip to content

Commit

Permalink
[CI] Handle HIDE_THINGS differently in tests (#1207)
Browse files Browse the repository at this point in the history
* [CI] Handle HIDE_THINGS differently in tests

* linter

* why is this test failing...

* a little clean up
  • Loading branch information
jagthedrummer authored Nov 29, 2023
1 parent 43ff07b commit 64d2a83
Show file tree
Hide file tree
Showing 10 changed files with 887 additions and 797 deletions.
99 changes: 53 additions & 46 deletions test/concerns/fields/super_select_support_concern_test.rb
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
Original file line number Diff line number Diff line change
Expand Up @@ -3,55 +3,63 @@
class Account::Scaffolding::AbsolutelyAbstract::CreativeConceptsControllerTest < 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
@creative_concept = create(:scaffolding_absolutely_abstract_creative_concept, team: @team)
end
def setup
super
@user = create(:onboarded_user)
sign_in @user
@team = @user.current_team
@creative_concept = create(:scaffolding_absolutely_abstract_creative_concept, team: @team)

test "should get index" do
skip("Controller uses uses temporary redirect")
get account_team_scaffolding_absolutely_abstract_creative_concepts_url(@team)
assert_response :success
end
@original_hide_things = ENV["HIDE_THINGS"]
ENV["HIDE_THINGS"] = "false"
Rails.application.reload_routes!
end

test "should get new" do
get new_account_team_scaffolding_absolutely_abstract_creative_concept_url(@team)
assert_response :success
end
def teardown
super
ENV["HIDE_THINGS"] = @original_hide_things
Rails.application.reload_routes!
end

test "should create creative_concept" do
assert_difference("Scaffolding::AbsolutelyAbstract::CreativeConcept.count") do
post account_team_scaffolding_absolutely_abstract_creative_concepts_url(@team), params: {scaffolding_absolutely_abstract_creative_concept: {name: @creative_concept.name}}
end
test "should get index" do
skip("Controller uses uses temporary redirect")
get account_team_scaffolding_absolutely_abstract_creative_concepts_url(@team)
assert_response :success
end

assert_redirected_to account_scaffolding_absolutely_abstract_creative_concept_path(Scaffolding::AbsolutelyAbstract::CreativeConcept.last)
end
test "should get new" do
get new_account_team_scaffolding_absolutely_abstract_creative_concept_url(@team)
assert_response :success
end

test "should show creative_concept" do
get account_scaffolding_absolutely_abstract_creative_concept_url(@creative_concept)
assert_response :success
test "should create creative_concept" do
assert_difference("Scaffolding::AbsolutelyAbstract::CreativeConcept.count") do
post account_team_scaffolding_absolutely_abstract_creative_concepts_url(@team), params: {scaffolding_absolutely_abstract_creative_concept: {name: @creative_concept.name}}
end

test "should get edit" do
get edit_account_scaffolding_absolutely_abstract_creative_concept_url(@creative_concept)
assert_response :success
end
assert_redirected_to account_scaffolding_absolutely_abstract_creative_concept_path(Scaffolding::AbsolutelyAbstract::CreativeConcept.last)
end

test "should update creative_concept" do
patch account_scaffolding_absolutely_abstract_creative_concept_url(@creative_concept), params: {scaffolding_absolutely_abstract_creative_concept: {name: @creative_concept.name}}
assert_redirected_to account_scaffolding_absolutely_abstract_creative_concept_url(@creative_concept)
end
test "should show creative_concept" do
get account_scaffolding_absolutely_abstract_creative_concept_url(@creative_concept)
assert_response :success
end

test "should destroy creative_concept" do
assert_difference("Scaffolding::AbsolutelyAbstract::CreativeConcept.count", -1) do
delete account_scaffolding_absolutely_abstract_creative_concept_url(@creative_concept)
end
test "should get edit" do
get edit_account_scaffolding_absolutely_abstract_creative_concept_url(@creative_concept)
assert_response :success
end

test "should update creative_concept" do
patch account_scaffolding_absolutely_abstract_creative_concept_url(@creative_concept), params: {scaffolding_absolutely_abstract_creative_concept: {name: @creative_concept.name}}
assert_redirected_to account_scaffolding_absolutely_abstract_creative_concept_url(@creative_concept)
end

assert_redirected_to account_team_scaffolding_absolutely_abstract_creative_concepts_url(@team)
test "should destroy creative_concept" do
assert_difference("Scaffolding::AbsolutelyAbstract::CreativeConcept.count", -1) do
delete account_scaffolding_absolutely_abstract_creative_concept_url(@creative_concept)
end

assert_redirected_to account_team_scaffolding_absolutely_abstract_creative_concepts_url(@team)
end
end
Original file line number Diff line number Diff line change
Expand Up @@ -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
Loading

0 comments on commit 64d2a83

Please sign in to comment.