discourse/spec/system/admin_plugins_list_spec.rb

40 lines
1.2 KiB
Ruby

# frozen_string_literal: true
describe "Admin Plugins List", type: :system, js: true do
fab!(:current_user) { Fabricate(:admin) }
before do
sign_in(current_user)
Discourse.stubs(:visible_plugins).returns([spoiler_alert_plugin])
end
let(:spoiler_alert_plugin) do
path = File.join(Rails.root, "plugins", "spoiler-alert", "plugin.rb")
Plugin::Instance.parse_from_source(path)
end
it "shows the list of plugins" do
visit "/admin/plugins"
plugin_row =
find(
".admin-plugins-list tr[data-plugin-name=\"spoiler-alert\"] td.admin-plugins-list__name-details",
)
expect(plugin_row).to have_css(
".admin-plugins-list__name-with-badges .admin-plugins-list__name",
text: "Spoiler Alert",
)
expect(plugin_row).to have_css(
".admin-plugins-list__author",
text: I18n.t("admin_js.admin.plugins.author", { author: "Discourse" }),
)
expect(plugin_row).to have_css(
".admin-plugins-list__name-with-badges .admin-plugins-list__name a[href=\"https://meta.discourse.org/t/12650\"]",
)
expect(plugin_row).to have_css(
".admin-plugins-list__about",
text: spoiler_alert_plugin.metadata.about,
)
end
end