Skip to content

Commit

Permalink
Merge pull request #1797 from MushroomObserver/jdc-1778-create-observ…
Browse files Browse the repository at this point in the history
…ation-name-blank

Create Observation blank Scientific Name
  • Loading branch information
nimmolo committed Jan 13, 2024
2 parents d239896 + 8da9f60 commit 5be3743
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 10 deletions.
24 changes: 14 additions & 10 deletions app/controllers/observations_controller/validators.rb
Original file line number Diff line number Diff line change
Expand Up @@ -23,26 +23,30 @@ def validate_params(params)
end

def validate_name(params)
given_name = params.dig(:naming, :name).to_s
chosen_name = params.dig(:chosen_name, :name_id).to_s
@resolver = Naming::NameResolver.new(
given_name, params[:approved_name], chosen_name
)
# NOTE: views could be refactored to access properties of the @resolver,
# e.g. `@resolver.valid_names`, instead of these ivars.
# All but success, @what, @name are only used by form_name_feedback.
(success, @what, @name, @names, @valid_names,
@parent_deprecated, @suggest_corrections) = @resolver.ivar_array
@parent_deprecated, @suggest_corrections) = resolve_name_ivars(params)
if @name
@naming.name = @name
else
elsif !success
@naming.errors.add(:name,
:form_observations_there_is_a_problem_with_name.t)
flash_object_errors(@naming)
end
success
end

def resolve_name_ivars(params)
given_name = params.dig(:naming, :name).to_s
chosen_name = params.dig(:chosen_name, :name_id).to_s
@resolver = Naming::NameResolver.new(
given_name, params[:approved_name], chosen_name
)
# NOTE: views could be refactored to access properties of the @resolver,
# e.g. `@resolver.valid_names`, instead of these ivars.
# All but success, @what, @name are only used by form_name_feedback.
@resolver.ivar_array
end

def validate_place_name(params)
success = true
@place_name = @observation.place_name
Expand Down
16 changes: 16 additions & 0 deletions test/controllers/observations_controller_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -1438,6 +1438,22 @@ def test_create_log_updated_at
"Observation should have log_updated_at time")
end

def test_create_observation_without_scientific_name
params = { user: rolf,
where: locations.first.name }
fungi = names(:fungi)

post_requires_login(:create, params)

assert_flash_success(
"Omitting Scientific Name should not cause flash error or warning."
)
assert_equal(
fungi, Observation.last.name,
"Observation should be id'd as `Fungi` if user omits Scientific Name."
)
end

def test_create_observation_with_unrecognized_name
text_name = "Elfin saddle"
params = { naming: { name: text_name },
Expand Down

0 comments on commit 5be3743

Please sign in to comment.