Make budget groups translatable
This commit is contained in:
@@ -9,6 +9,11 @@ feature "Admin budget groups" do
|
||||
login_as(admin.user)
|
||||
end
|
||||
|
||||
it_behaves_like "translatable",
|
||||
"budget_group",
|
||||
"edit_admin_budget_group_path",
|
||||
%w[name]
|
||||
|
||||
context "Feature flag" do
|
||||
|
||||
background do
|
||||
@@ -140,6 +145,30 @@ feature "Admin budget groups" do
|
||||
expect(page).to have_field "Maximum number of headings in which a user can vote", with: "2"
|
||||
end
|
||||
|
||||
scenario "Changing name for current locale will update the slug if budget is in draft phase", :js do
|
||||
group = create(:budget_group, budget: budget)
|
||||
old_slug = group.slug
|
||||
|
||||
visit edit_admin_budget_group_path(budget, group)
|
||||
|
||||
select "Español", from: "translation_locale"
|
||||
fill_in "Group name", with: "Spanish name"
|
||||
click_button "Save group"
|
||||
|
||||
expect(page).to have_content "Group updated successfully"
|
||||
expect(group.reload.slug).to eq old_slug
|
||||
|
||||
visit edit_admin_budget_group_path(budget, group)
|
||||
|
||||
click_link "English"
|
||||
fill_in "Group name", with: "New English Name"
|
||||
click_button "Save group"
|
||||
|
||||
expect(page).to have_content "Group updated successfully"
|
||||
expect(group.reload.slug).not_to eq old_slug
|
||||
expect(group.slug).to eq "new-english-name"
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
context "Update" do
|
||||
@@ -173,7 +202,7 @@ feature "Admin budget groups" do
|
||||
|
||||
expect(page).not_to have_content "Group updated successfully"
|
||||
expect(page).to have_css("label.error", text: "Group name")
|
||||
expect(page).to have_content "has already been taken"
|
||||
expect(page).to have_css("small.error", text: "has already been taken")
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
@@ -1,23 +1,35 @@
|
||||
require 'rails_helper'
|
||||
require "rails_helper"
|
||||
|
||||
describe Budget::Group do
|
||||
|
||||
let(:budget) { create(:budget) }
|
||||
|
||||
it_behaves_like "sluggable", updatable_slug_trait: :drafting_budget
|
||||
|
||||
describe "name" do
|
||||
before do
|
||||
create(:budget_group, budget: budget, name: 'object name')
|
||||
describe "Validations" do
|
||||
|
||||
let(:budget) { create(:budget) }
|
||||
let(:group) { create(:budget_group, budget: budget) }
|
||||
|
||||
describe "name" do
|
||||
before do
|
||||
group.update(name: "object name")
|
||||
end
|
||||
|
||||
it "can be repeatead in other budget's groups" do
|
||||
expect(build(:budget_group, budget: create(:budget), name: "object name")).to be_valid
|
||||
end
|
||||
|
||||
it "may be repeated for the same group and a different locale" do
|
||||
group.update(name_fr: "object name")
|
||||
|
||||
expect(group.translations.last).to be_valid
|
||||
end
|
||||
|
||||
it "must not be repeated for a different group in any locale" do
|
||||
group.update(name_en: "English", name_es: "Español")
|
||||
|
||||
expect(build(:budget_group, budget: budget, name_en: "English")).not_to be_valid
|
||||
expect(build(:budget_group, budget: budget, name_en: "Español")).not_to be_valid
|
||||
end
|
||||
end
|
||||
|
||||
it "can be repeatead in other budget's groups" do
|
||||
expect(build(:budget_group, budget: create(:budget), name: 'object name')).to be_valid
|
||||
end
|
||||
|
||||
it "must be unique among all budget's groups" do
|
||||
expect(build(:budget_group, budget: budget, name: 'object name')).not_to be_valid
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
@@ -345,6 +345,8 @@ def update_button_text
|
||||
"Update Custom page"
|
||||
when "Widget::Card"
|
||||
"Save card"
|
||||
when "Budget::Group"
|
||||
"Save group"
|
||||
else
|
||||
"Save changes"
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user