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
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

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_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 @@ RSpec.describe "Assign | Group assigned", type: :system, js: true do
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

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