1
0
Fork 0
mirror of https://github.com/maybe-finance/maybe.git synced 2025-07-19 05:09:38 +02:00

fix: Bug creating duplicate category leads to crash screen (#1577)

Co-authored-by: Tony Vincent Yesudas <tony.yesudas@raisenow.com>
This commit is contained in:
Tony Vincent 2024-12-30 16:04:38 +01:00 committed by GitHub
parent 9d217afb9f
commit b0d9891133
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 38 additions and 0 deletions

View file

@ -21,6 +21,7 @@ class CategoriesController < ApplicationController
redirect_back_or_to categories_path, notice: t(".success") redirect_back_or_to categories_path, notice: t(".success")
else else
@categories = Current.family.categories.alphabetically.where(parent_id: nil)
render :new, status: :unprocessable_entity render :new, status: :unprocessable_entity
end end
end end

View file

@ -33,6 +33,17 @@ class CategoriesControllerTest < ActionDispatch::IntegrationTest
assert_equal color, new_category.color assert_equal color, new_category.color
end end
test "create fails if name is not unique" do
assert_no_difference "Category.count" do
post categories_url, params: {
category: {
name: categories(:food_and_drink).name,
color: Category::COLORS.sample } }
end
assert_response :unprocessable_entity
end
test "create and assign to transaction" do test "create and assign to transaction" do
color = Category::COLORS.sample color = Category::COLORS.sample

View file

@ -0,0 +1,26 @@
require "application_system_test_case"
class CategoriesTest < ApplicationSystemTestCase
setup do
sign_in @user = users(:family_admin)
end
test "can create category" do
visit categories_url
click_link I18n.t("categories.new.new_category")
fill_in "Name", with: "My Shiny New Category"
click_button "Create Category"
visit categories_url
assert_text "My Shiny New Category"
end
test "trying to create a duplicate category fails" do
visit categories_url
click_link I18n.t("categories.new.new_category")
fill_in "Name", with: categories(:food_and_drink).name
click_button "Create Category"
assert_text "Name has already been taken"
end
end