FIX: correctly show validation errors in automation (#27622)

A previous refactor has prevented errors to show correctly. The guilt of the issue is that we were not calling the error variable correctly in the templates.

This commit also adds a spec for this case, and removes the need for `I18n.backend.store_translations` in specs so we don't have to write too much boilerplate each time we write a spec.
This commit is contained in:
Joffrey JAFFEUX
2024-06-26 14:09:26 +02:00
committed by GitHub
parent 54a59be617
commit 01e36cbb47
6 changed files with 59 additions and 38 deletions

View File

@ -0,0 +1,34 @@
# frozen_string_literal: true
describe "DiscourseAutomation | error", type: :system do
fab!(:admin)
before do
SiteSetting.discourse_automation_enabled = true
sign_in(admin)
end
context "when saving the form with an error" do
it "shows the error correctly" do
visit("/admin/plugins/discourse-automation")
find(".new-automation").click
fill_in("automation-name", with: "aaaaa")
select_kit = PageObjects::Components::SelectKit.new(".scriptables")
select_kit.expand
select_kit.select_row_by_value("post")
find(".create-automation").click
select_kit = PageObjects::Components::SelectKit.new(".triggerables")
select_kit.expand
select_kit.select_row_by_value("recurring")
find(".update-automation").click
expect(page).to have_content(
I18n.t(
"discourse_automation.models.fields.required_field",
{ name: "topic", target: "script", target_name: "post" },
),
)
end
end
end

View File

@ -6,34 +6,6 @@ describe "DiscourseAutomation | smoke test", type: :system, js: true do
fab!(:badge) { Fabricate(:badge, name: "badge") }
before do
I18n.backend.store_translations(
:en,
{
discourse_automation: {
scriptables: {
test: {
title: "Test",
description: "Test",
},
something_about_us: {
title: "Something about us.",
description: "We rock!",
},
nothing_about_us: {
title: "Nothing about us.",
description: "We don't rock!",
},
},
triggerables: {
title: "Triggerable",
description: "Triggerable",
user_first_logged_in: {
description: "User first logged in.",
},
},
},
},
)
SiteSetting.discourse_automation_enabled = true
sign_in(admin)
end