diff --git a/spec/system/bulk_assign_spec.rb b/spec/system/bulk_assign_spec.rb index ca0709c5..a29deab5 100644 --- a/spec/system/bulk_assign_spec.rb +++ b/spec/system/bulk_assign_spec.rb @@ -16,8 +16,7 @@ end describe "from topic list" do - # TODO (martin) Unskip when core PR is merged to make new bulk select method the default - xit "can assign and unassign topics" do + it "can assign and unassign topics" do ## Assign visit "/latest" topic = topics.first diff --git a/spec/system/group_assigned_spec.rb b/spec/system/group_assigned_spec.rb index 6f216592..31d349d0 100644 --- a/spec/system/group_assigned_spec.rb +++ b/spec/system/group_assigned_spec.rb @@ -8,6 +8,8 @@ let(:topic_list) { PageObjects::Components::TopicList.new } let(:topic_list_header) { PageObjects::Components::TopicListHeader.new } + let(:topic_bulk_modal) { PageObjects::Modals::TopicBulkActions.new } + let(:assign_modal) { PageObjects::Modals::Assign.new } before do group.add(admin) @@ -17,14 +19,35 @@ sign_in(admin) end - # TODO (martin) Unskip when core PR is merged to make new bulk select method the default - xit "allows to bulk select assigned topics" do + it "allows to bulk select assigned topics" do visit "/g/#{group.name}/assigned/everyone" topic_list_header.click_bulk_select_button topic_list.click_topic_checkbox(topic) - find(".bulk-select-actions").click + # Click Assign Button + topic_list_header.click_bulk_select_topics_dropdown + expect(topic_list_header).to have_assign_topics_button + topic_list_header.click_assign_topics_button expect(topic_list_header).to have_bulk_select_modal + + # Assign User + assignee = admin.username + select_kit = PageObjects::Components::SelectKit.new("#assignee-chooser") + + # This initial collapse is needed because for some reason the modal is + # opening with `is-expanded` property, but it isn't actually expanded. + select_kit.collapse + + select_kit.expand_if_needed + select_kit.search(assignee) + select_kit.select_row_by_value(assignee) + select_kit.collapse + + # Click Confirm + topic_list_header.click_bulk_topics_confirm + + expect(topic_bulk_modal).to be_closed + expect(Assignment.find_by(topic: topic).assigned_to).to eq(admin) end end diff --git a/test/javascripts/acceptance/bulk-actions-test.js b/test/javascripts/acceptance/bulk-actions-test.js deleted file mode 100644 index f177973c..00000000 --- a/test/javascripts/acceptance/bulk-actions-test.js +++ /dev/null @@ -1,95 +0,0 @@ -import { click, fillIn, visit } from "@ember/test-helpers"; -import { skip } from "qunit"; -import pretender, { - parsePostData, - response, -} from "discourse/tests/helpers/create-pretender"; -import { acceptance, query } from "discourse/tests/helpers/qunit-helpers"; -import selectKit from "discourse/tests/helpers/select-kit-helper"; -import I18n from "I18n"; - -acceptance("Discourse Assign | Bulk actions", function (needs) { - needs.user({ - moderator: true, - can_assign: true, - }); - needs.settings({ - assign_enabled: true, - enable_assign_status: true, - }); - - needs.pretender((server, helper) => { - server.get("/assign/suggestions", () => { - return helper.response({ - success: true, - assign_allowed_groups: false, - assign_allowed_for_groups: [], - suggestions: [ - { - id: 19, - username: "eviltrout", - name: "Robin Ward", - avatar_template: - "/user_avatar/meta.discourse.org/eviltrout/{size}/5275_2.png", - }, - ], - }); - }); - }); - - // TODO (martin) Unskip when core PR is merged to make new bulk select method the default - skip("Assigning users to topics", async function (assert) { - pretender.put("/topics/bulk", ({ requestBody }) => { - const body = parsePostData(requestBody); - assert.deepEqual(body.operation, { - type: "assign", - username: "eviltrout", - status: "In Progress", - note: "a note!", - }); - assert.deepEqual(body["topic_ids[]"], [ - topic1.dataset.topicId, - topic2.dataset.topicId, - ]); - - return response({ success: true }); - }); - - await visit("/latest"); - await click("button.bulk-select"); - - const topic1 = query(".topic-list-body tr:nth-child(1)"); - const topic2 = query(".topic-list-body tr:nth-child(2)"); - await click(topic1.querySelector("input.bulk-select")); - await click(topic2.querySelector("input.bulk-select")); - - await click(".bulk-select-actions"); - - assert - .dom("#discourse-modal-title") - .includesText(I18n.t("topics.bulk.actions"), "opens bulk-select modal"); - - await click("button.assign-topics"); - - const menu = selectKit(".topic-bulk-actions-modal .user-chooser"); - assert.true(menu.isExpanded(), "user selector is expanded"); - - await click(".topic-bulk-actions-modal .btn-primary"); - assert.dom(".error-label").includesText("Choose a user to assign"); - - await menu.expand(); - await menu.selectRowByIndex(0); - assert.strictEqual(menu.header().value(), "eviltrout"); - - await fillIn("#assign-modal-note", "a note!"); - - const statusDropdown = selectKit("#assign-status"); - assert.strictEqual(statusDropdown.header().value(), "New"); - - await statusDropdown.expand(); - await statusDropdown.selectRowByValue("In Progress"); - assert.strictEqual(statusDropdown.header().value(), "In Progress"); - - await click(".topic-bulk-actions-modal .btn-primary"); - }); -});