discourse-chat-integration/spec/system/create_channel_spec.rb
Gabriel Grubba 19766fbc09
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
2024-10-17 12:53:29 -03:00

56 lines
1.8 KiB
Ruby

# 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
sign_in(admin)
end
it "creates and displays a new channel" do
visit("/admin/plugins/chat-integration/discord")
expect(page).to have_no_css(".channel-details")
click_button(I18n.t("js.chat_integration.create_channel"))
find("input[name='param-name']").fill_in(with: "bloop")
find("input[name='param-webhook_url']").fill_in(with: "https://discord.com/api/webhooks/bloop")
click_button(I18n.t("js.chat_integration.edit_channel_modal.save"))
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