DEV: Fixup bulk assigment specs (#582)

Followup e5776714c2
This commit is contained in:
Martin Brennan 2024-07-23 15:04:36 +10:00 committed by GitHub
parent e5776714c2
commit cef88078dd
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 27 additions and 100 deletions

View File

@ -16,8 +16,7 @@ describe "Assign | Bulk Assign", type: :system do
end end
describe "from topic list" do describe "from topic list" do
# TODO (martin) Unskip when core PR is merged to make new bulk select method the default it "can assign and unassign topics" do
xit "can assign and unassign topics" do
## Assign ## Assign
visit "/latest" visit "/latest"
topic = topics.first topic = topics.first

View File

@ -8,6 +8,8 @@ RSpec.describe "Assign | Group assigned", type: :system, js: true do
let(:topic_list) { PageObjects::Components::TopicList.new } let(:topic_list) { PageObjects::Components::TopicList.new }
let(:topic_list_header) { PageObjects::Components::TopicListHeader.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 before do
group.add(admin) group.add(admin)
@ -17,14 +19,35 @@ RSpec.describe "Assign | Group assigned", type: :system, js: true do
sign_in(admin) sign_in(admin)
end end
# TODO (martin) Unskip when core PR is merged to make new bulk select method the default it "allows to bulk select assigned topics" do
xit "allows to bulk select assigned topics" do
visit "/g/#{group.name}/assigned/everyone" visit "/g/#{group.name}/assigned/everyone"
topic_list_header.click_bulk_select_button topic_list_header.click_bulk_select_button
topic_list.click_topic_checkbox(topic) 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 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
end end

View File

@ -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");
});
});