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:
parent
9d217afb9f
commit
b0d9891133
3 changed files with 38 additions and 0 deletions
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
26
test/system/categories_test.rb
Normal file
26
test/system/categories_test.rb
Normal 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
|
Loading…
Add table
Add a link
Reference in a new issue