From 2230f1b97dc70b17f9627b3b02c7c8ae16bb753d Mon Sep 17 00:00:00 2001 From: Alan Guo Xiang Tan Date: Thu, 2 Feb 2023 11:14:19 +0800 Subject: [PATCH] Fix tests --- spec/system/assign_topic_spec.rb | 18 ++++++ spec/system/page_objects/pages/topic.rb | 5 +- .../widgets/small-action-post-class-test.js | 58 ------------------- 3 files changed, 22 insertions(+), 59 deletions(-) delete mode 100644 test/javascripts/widgets/small-action-post-class-test.js diff --git a/spec/system/assign_topic_spec.rb b/spec/system/assign_topic_spec.rb index 455af25..4ece85c 100644 --- a/spec/system/assign_topic_spec.rb +++ b/spec/system/assign_topic_spec.rb @@ -30,6 +30,24 @@ describe "Assign | Assigning topics", type: :system, js: true do expect(page).to have_no_css("#topic .assigned-to") end + context "when assigns are not public" do + before { SiteSetting.assigns_public = false } + + it "assigned small action post has 'private-assign' in class attribute" do + visit "/t/#{topic.id}" + + topic_page.click_assign_topic + assign_modal.assignee = staff_user + assign_modal.confirm + + expect(topic_page).to have_assigned( + user: staff_user, + at_post: 2, + class_attribute: ".private-assign", + ) + end + end + context "when unassign_on_close is set to true" do before { SiteSetting.unassign_on_close = true } diff --git a/spec/system/page_objects/pages/topic.rb b/spec/system/page_objects/pages/topic.rb index ab85b61..fe70463 100644 --- a/spec/system/page_objects/pages/topic.rb +++ b/spec/system/page_objects/pages/topic.rb @@ -27,7 +27,10 @@ module PageObjects def has_assignment_action?(args) assignee = args[:group]&.name || args[:user]&.username - container = args[:at_post] ? find("#post_#{args[:at_post]}") : page + + container = + args[:at_post] ? find("#post_#{args[:at_post]}#{args[:class_attribute] || ""}") : page + container.has_content?( I18n.t("js.action_codes.#{args[:action]}", who: "@#{assignee}", when: "just now"), ) diff --git a/test/javascripts/widgets/small-action-post-class-test.js b/test/javascripts/widgets/small-action-post-class-test.js deleted file mode 100644 index 89d9eb4..0000000 --- a/test/javascripts/widgets/small-action-post-class-test.js +++ /dev/null @@ -1,58 +0,0 @@ -import { setupRenderingTest } from "discourse/tests/helpers/component-test"; -import { discourseModule, exists } from "discourse/tests/helpers/qunit-helpers"; -import hbs from "htmlbars-inline-precompile"; -import { render } from "@ember/test-helpers"; -import { test } from "qunit"; -import { withPluginApi } from "discourse/lib/plugin-api"; -import { resetPostSmallActionClassesCallbacks } from "discourse/widgets/post-small-action"; - -discourseModule( - "Discourse Assign | Integration | Widget | Small Action Post Class", - function (hooks) { - setupRenderingTest(hooks); - - test("Adds private-assign class when assigns are not public", async function (assert) { - try { - this.siteSettings.assigns_public = true; - - this.set("args", { - id: 10, - actionCode: "assigned", - }); - - withPluginApi("1.6.0", (api) => { - api.addPostSmallActionClassesCallback((post) => { - if ( - post.actionCode.includes("assigned") && - !this.siteSettings.assigns_public - ) { - return ["private-assign"]; - } - }); - }); - - await render( - hbs`` - ); - - assert.notOk( - exists(".small-action.private-assign"), - "adds the private-assign class when assigns are public" - ); - - this.siteSettings.assigns_public = false; - - await render( - hbs`` - ); - - assert.ok( - exists(".small-action.private-assign"), - "adds the private-assign class when assigns are NOT public" - ); - } finally { - resetPostSmallActionClassesCallbacks(); - } - }); - } -);