From 19766fbc09f5493991c1fc29fd8b847cfff09425 Mon Sep 17 00:00:00 2001 From: Gabriel Grubba <70247653+Grubba27@users.noreply.github.com> Date: Thu, 17 Oct 2024 12:53:29 -0300 Subject: [PATCH] FIX: Error modal not showing data (#225) * FIX: Error modal not showing data Before, there was an issue where the error modal was not showing the data. This was because the error modal was not being shown when there were errors. * DEV: add tests to ensure that error modal is showing data --- .../admin/components/modal/channel-error.hbs | 4 +-- spec/system/create_channel_spec.rb | 29 +++++++++++++++++++ 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/admin/assets/javascripts/admin/components/modal/channel-error.hbs b/admin/assets/javascripts/admin/components/modal/channel-error.hbs index 4578f5d..f6914b3 100644 --- a/admin/assets/javascripts/admin/components/modal/channel-error.hbs +++ b/admin/assets/javascripts/admin/components/modal/channel-error.hbs @@ -1,4 +1,4 @@ -

{{i18n @model.error_key}}

-
{{@model.error_info}}
+

{{i18n @model.channel.error_key}}

+
{{@model.channel.error_info}}
\ No newline at end of file diff --git a/spec/system/create_channel_spec.rb b/spec/system/create_channel_spec.rb index f56258e..eba78c9 100644 --- a/spec/system/create_channel_spec.rb +++ b/spec/system/create_channel_spec.rb @@ -1,8 +1,16 @@ # frozen_string_literal: true +require_relative "../dummy_provider" RSpec.describe "Create channel", type: :system do fab!(:admin) + include_context "with dummy provider" + let(:manager) { ::DiscourseChatIntegration::Manager } + let(:chan1) { DiscourseChatIntegration::Channel.create!(provider: "dummy") } + let(:category) { Fabricate(:category) } + let(:topic) { Fabricate(:topic, category_id: category.id) } + let(:first_post) { Fabricate(:post, topic: topic) } + before do SiteSetting.chat_integration_enabled = true SiteSetting.chat_integration_discord_enabled = true @@ -23,4 +31,25 @@ RSpec.describe "Create channel", type: :system do expect(page).to have_css(".channel-details") expect(find(".channel-info")).to have_content("bloop") end + + it "shows error in chanel modal" do + DiscourseChatIntegration::Rule.create!( + channel: chan1, + filter: "watch", + category_id: category.id, + ) + + visit("/admin/plugins/chat-integration/dummy") + + provider.set_raise_exception( + DiscourseChatIntegration::ProviderError.new info: { error_key: "hello" } + ) + manager.trigger_notifications(first_post.id) + expect(find(".error-message")).to have_content( + I18n.t("js.chat_integration.channels_with_errors"), + ) + + find(".channel-title").find("button").click + expect(page).to have_content "{\n \"error_key\": \"hello\"\n}" + end end