mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
REFACTOR: Replace global find with queryAll
In newer Embers jQuery is removed. There is a `find` but it only returns one element and not a jQuery selector. This patch migrates our code to a new helper `queryAll` which allows us to remove the global.
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import I18n from "I18n";
|
||||
import { acceptance } from "discourse/tests/helpers/qunit-helpers";
|
||||
import { acceptance, queryAll } from "discourse/tests/helpers/qunit-helpers";
|
||||
import { clearPopupMenuOptionsCallback } from "discourse/controllers/composer";
|
||||
import selectKit from "discourse/tests/helpers/select-kit-helper";
|
||||
|
||||
@@ -17,7 +17,7 @@ acceptance("Details Button", function (needs) {
|
||||
await popupMenu.selectRowByValue("insertDetails");
|
||||
|
||||
assert.equal(
|
||||
find(".d-editor-input").val(),
|
||||
queryAll(".d-editor-input").val(),
|
||||
`\n[details="${I18n.t("composer.details_title")}"]\n${I18n.t(
|
||||
"composer.details_text"
|
||||
)}\n[/details]\n`,
|
||||
@@ -26,7 +26,7 @@ acceptance("Details Button", function (needs) {
|
||||
|
||||
await fillIn(".d-editor-input", "This is my title");
|
||||
|
||||
const textarea = find(".d-editor-input")[0];
|
||||
const textarea = queryAll(".d-editor-input")[0];
|
||||
textarea.selectionStart = 0;
|
||||
textarea.selectionEnd = textarea.value.length;
|
||||
|
||||
@@ -34,7 +34,7 @@ acceptance("Details Button", function (needs) {
|
||||
await popupMenu.selectRowByValue("insertDetails");
|
||||
|
||||
assert.equal(
|
||||
find(".d-editor-input").val(),
|
||||
queryAll(".d-editor-input").val(),
|
||||
`\n[details="${I18n.t(
|
||||
"composer.details_title"
|
||||
)}"]\nThis is my title\n[/details]\n`,
|
||||
@@ -61,7 +61,7 @@ acceptance("Details Button", function (needs) {
|
||||
await popupMenu.selectRowByValue("insertDetails");
|
||||
|
||||
assert.equal(
|
||||
find(".d-editor-input").val(),
|
||||
queryAll(".d-editor-input").val(),
|
||||
`Before \n[details="${I18n.t(
|
||||
"composer.details_title"
|
||||
)}"]\nsome text in between\n[/details]\n After`,
|
||||
@@ -88,7 +88,7 @@ acceptance("Details Button", function (needs) {
|
||||
await popupMenu.selectRowByValue("insertDetails");
|
||||
|
||||
assert.equal(
|
||||
find(".d-editor-input").val(),
|
||||
queryAll(".d-editor-input").val(),
|
||||
`Before \n\n[details="${I18n.t(
|
||||
"composer.details_title"
|
||||
)}"]\nsome text in between\n[/details]\n\n After`,
|
||||
@@ -115,7 +115,7 @@ acceptance("Details Button", function (needs) {
|
||||
await click("#create-topic");
|
||||
await fillIn(".d-editor-input", multilineInput);
|
||||
|
||||
const textarea = find(".d-editor-input")[0];
|
||||
const textarea = queryAll(".d-editor-input")[0];
|
||||
textarea.selectionStart = 0;
|
||||
textarea.selectionEnd = textarea.value.length;
|
||||
|
||||
@@ -123,7 +123,7 @@ acceptance("Details Button", function (needs) {
|
||||
await popupMenu.selectRowByValue("insertDetails");
|
||||
|
||||
assert.equal(
|
||||
find(".d-editor-input").val(),
|
||||
queryAll(".d-editor-input").val(),
|
||||
`\n[details="${I18n.t(
|
||||
"composer.details_title"
|
||||
)}"]\n${multilineInput}\n[/details]\n`,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
import { acceptance } from "discourse/tests/helpers/qunit-helpers";
|
||||
import { acceptance, queryAll } from "discourse/tests/helpers/qunit-helpers";
|
||||
|
||||
acceptance("Local Dates - composer", function (needs) {
|
||||
needs.user();
|
||||
@@ -6,9 +6,9 @@ acceptance("Local Dates - composer", function (needs) {
|
||||
|
||||
test("composer bbcode", async (assert) => {
|
||||
const getAttr = (attr) => {
|
||||
return find(".d-editor-preview .discourse-local-date.cooked-date").attr(
|
||||
`data-${attr}`
|
||||
);
|
||||
return queryAll(
|
||||
".d-editor-preview .discourse-local-date.cooked-date"
|
||||
).attr(`data-${attr}`);
|
||||
};
|
||||
|
||||
await visit("/");
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { acceptance } from "discourse/tests/helpers/qunit-helpers";
|
||||
import { clearPopupMenuOptionsCallback } from "discourse/controllers/composer";
|
||||
import { queryAll } from "discourse/tests/helpers/qunit-helpers";
|
||||
|
||||
acceptance("Poll breakdown", function (needs) {
|
||||
needs.user();
|
||||
@@ -61,7 +62,7 @@ acceptance("Poll breakdown", function (needs) {
|
||||
await visit("/t/-/topic_with_pie_chart_poll");
|
||||
|
||||
assert.equal(
|
||||
find(".poll-show-breakdown").text(),
|
||||
queryAll(".poll-show-breakdown").text(),
|
||||
"Show breakdown",
|
||||
"shows the breakdown button when poll_groupable_user_fields is non-empty"
|
||||
);
|
||||
@@ -69,19 +70,19 @@ acceptance("Poll breakdown", function (needs) {
|
||||
await click(".poll-show-breakdown:first");
|
||||
|
||||
assert.equal(
|
||||
find(".poll-breakdown-total-votes")[0].textContent.trim(),
|
||||
queryAll(".poll-breakdown-total-votes")[0].textContent.trim(),
|
||||
"2 votes",
|
||||
"display the correct total vote count"
|
||||
);
|
||||
|
||||
assert.equal(
|
||||
find(".poll-breakdown-chart-container").length,
|
||||
queryAll(".poll-breakdown-chart-container").length,
|
||||
2,
|
||||
"renders a chart for each of the groups in group_results response"
|
||||
);
|
||||
|
||||
assert.ok(
|
||||
find(".poll-breakdown-chart-container > canvas")[0].$chartjs,
|
||||
queryAll(".poll-breakdown-chart-container > canvas")[0].$chartjs,
|
||||
"$chartjs is defined on the pie charts"
|
||||
);
|
||||
});
|
||||
@@ -91,7 +92,7 @@ acceptance("Poll breakdown", function (needs) {
|
||||
await click(".poll-show-breakdown:first");
|
||||
|
||||
assert.equal(
|
||||
find(".poll-breakdown-option-count:first")[0].textContent.trim(),
|
||||
queryAll(".poll-breakdown-option-count:first")[0].textContent.trim(),
|
||||
"40.0%",
|
||||
"displays the correct vote percentage"
|
||||
);
|
||||
@@ -99,7 +100,7 @@ acceptance("Poll breakdown", function (needs) {
|
||||
await click(".modal-tabs .count");
|
||||
|
||||
assert.equal(
|
||||
find(".poll-breakdown-option-count:first")[0].textContent.trim(),
|
||||
queryAll(".poll-breakdown-option-count:first")[0].textContent.trim(),
|
||||
"2",
|
||||
"displays the correct vote count"
|
||||
);
|
||||
@@ -107,7 +108,7 @@ acceptance("Poll breakdown", function (needs) {
|
||||
await click(".modal-tabs .percentage");
|
||||
|
||||
assert.equal(
|
||||
find(".poll-breakdown-option-count:last")[0].textContent.trim(),
|
||||
queryAll(".poll-breakdown-option-count:last")[0].textContent.trim(),
|
||||
"20.0%",
|
||||
"displays the percentage again"
|
||||
);
|
||||
|
||||
@@ -6,6 +6,7 @@ import {
|
||||
} from "discourse/tests/helpers/qunit-helpers";
|
||||
import { displayPollBuilderButton } from "discourse/plugins/poll/helpers/display-poll-builder-button";
|
||||
import { clearPopupMenuOptionsCallback } from "discourse/controllers/composer";
|
||||
import { queryAll } from "discourse/tests/helpers/qunit-helpers";
|
||||
|
||||
acceptance("Poll Builder - polls are enabled", function (needs) {
|
||||
needs.user();
|
||||
@@ -57,11 +58,11 @@ acceptance("Poll Builder - polls are enabled", function (needs) {
|
||||
await fillIn(".poll-textarea textarea", "First option\nSecond option");
|
||||
|
||||
assert.equal(
|
||||
find(".d-editor-preview li:first-child").text(),
|
||||
queryAll(".d-editor-preview li:first-child").text(),
|
||||
"First option"
|
||||
);
|
||||
assert.equal(
|
||||
find(".d-editor-preview li:last-child").text(),
|
||||
queryAll(".d-editor-preview li:last-child").text(),
|
||||
"Second option"
|
||||
);
|
||||
});
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import { acceptance } from "discourse/tests/helpers/qunit-helpers";
|
||||
import { queryAll } from "discourse/tests/helpers/qunit-helpers";
|
||||
|
||||
acceptance("Rendering polls with pie charts", function (needs) {
|
||||
needs.user();
|
||||
@@ -10,16 +11,16 @@ acceptance("Rendering polls with pie charts", function (needs) {
|
||||
test("Displays the pie chart", async (assert) => {
|
||||
await visit("/t/-/topic_with_pie_chart_poll");
|
||||
|
||||
const poll = find(".poll")[0];
|
||||
const poll = queryAll(".poll")[0];
|
||||
|
||||
assert.equal(
|
||||
find(".info-number", poll)[0].innerHTML,
|
||||
queryAll(".info-number", poll)[0].innerHTML,
|
||||
"2",
|
||||
"it should display the right number of voters"
|
||||
);
|
||||
|
||||
assert.equal(
|
||||
find(".info-number", poll)[1].innerHTML,
|
||||
queryAll(".info-number", poll)[1].innerHTML,
|
||||
"5",
|
||||
"it should display the right number of votes"
|
||||
);
|
||||
@@ -31,7 +32,7 @@ acceptance("Rendering polls with pie charts", function (needs) {
|
||||
);
|
||||
|
||||
assert.equal(
|
||||
find(".poll-results-chart", poll).length,
|
||||
queryAll(".poll-results-chart", poll).length,
|
||||
1,
|
||||
"Renders the chart div instead of bar container"
|
||||
);
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { acceptance } from "discourse/tests/helpers/qunit-helpers";
|
||||
import { clearPopupMenuOptionsCallback } from "discourse/controllers/composer";
|
||||
import { queryAll } from "discourse/tests/helpers/qunit-helpers";
|
||||
|
||||
acceptance("Poll quote", function (needs) {
|
||||
needs.user();
|
||||
@@ -678,6 +679,6 @@ acceptance("Poll quote", function (needs) {
|
||||
test("Quoted polls", async (assert) => {
|
||||
await visit("/t/-/topic_with_two_quoted_polls");
|
||||
await click(".quote-controls");
|
||||
assert.equal(find(".poll").length, 2);
|
||||
assert.equal(queryAll(".poll").length, 2);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { acceptance } from "discourse/tests/helpers/qunit-helpers";
|
||||
import { clearPopupMenuOptionsCallback } from "discourse/controllers/composer";
|
||||
import { queryAll } from "discourse/tests/helpers/qunit-helpers";
|
||||
|
||||
acceptance("Rendering polls with bar charts - desktop", function (needs) {
|
||||
needs.user();
|
||||
@@ -42,18 +43,18 @@ acceptance("Rendering polls with bar charts - desktop", function (needs) {
|
||||
test("Polls", async (assert) => {
|
||||
await visit("/t/-/15");
|
||||
|
||||
const polls = find(".poll");
|
||||
const polls = queryAll(".poll");
|
||||
|
||||
assert.equal(polls.length, 2, "it should render the polls correctly");
|
||||
|
||||
assert.equal(
|
||||
find(".info-number", polls[0]).text(),
|
||||
queryAll(".info-number", polls[0]).text(),
|
||||
"2",
|
||||
"it should display the right number of votes"
|
||||
);
|
||||
|
||||
assert.equal(
|
||||
find(".info-number", polls[1]).text(),
|
||||
queryAll(".info-number", polls[1]).text(),
|
||||
"3",
|
||||
"it should display the right number of votes"
|
||||
);
|
||||
@@ -62,13 +63,13 @@ acceptance("Rendering polls with bar charts - desktop", function (needs) {
|
||||
test("Public poll", async (assert) => {
|
||||
await visit("/t/-/14");
|
||||
|
||||
const polls = find(".poll");
|
||||
const polls = queryAll(".poll");
|
||||
assert.equal(polls.length, 1, "it should render the poll correctly");
|
||||
|
||||
await click("button.toggle-results");
|
||||
|
||||
assert.equal(
|
||||
find(".poll-voters:first li").length,
|
||||
queryAll(".poll-voters:first li").length,
|
||||
25,
|
||||
"it should display the right number of voters"
|
||||
);
|
||||
@@ -76,7 +77,7 @@ acceptance("Rendering polls with bar charts - desktop", function (needs) {
|
||||
await click(".poll-voters-toggle-expand:first a");
|
||||
|
||||
assert.equal(
|
||||
find(".poll-voters:first li").length,
|
||||
queryAll(".poll-voters:first li").length,
|
||||
26,
|
||||
"it should display the right number of voters"
|
||||
);
|
||||
@@ -85,26 +86,26 @@ acceptance("Rendering polls with bar charts - desktop", function (needs) {
|
||||
test("Public number poll", async (assert) => {
|
||||
await visit("/t/-/13");
|
||||
|
||||
const polls = find(".poll");
|
||||
const polls = queryAll(".poll");
|
||||
assert.equal(polls.length, 1, "it should render the poll correctly");
|
||||
|
||||
await click("button.toggle-results");
|
||||
|
||||
assert.equal(
|
||||
find(".poll-voters:first li").length,
|
||||
queryAll(".poll-voters:first li").length,
|
||||
25,
|
||||
"it should display the right number of voters"
|
||||
);
|
||||
|
||||
assert.notOk(
|
||||
find(".poll-voters:first li:first a").attr("href"),
|
||||
queryAll(".poll-voters:first li:first a").attr("href"),
|
||||
"user URL does not exist"
|
||||
);
|
||||
|
||||
await click(".poll-voters-toggle-expand:first a");
|
||||
|
||||
assert.equal(
|
||||
find(".poll-voters:first li").length,
|
||||
queryAll(".poll-voters:first li").length,
|
||||
30,
|
||||
"it should display the right number of voters"
|
||||
);
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import { acceptance } from "discourse/tests/helpers/qunit-helpers";
|
||||
import { clearPopupMenuOptionsCallback } from "discourse/controllers/composer";
|
||||
import { queryAll } from "discourse/tests/helpers/qunit-helpers";
|
||||
|
||||
acceptance("Rendering polls with bar charts - mobile", function (needs) {
|
||||
needs.user();
|
||||
@@ -24,26 +25,26 @@ acceptance("Rendering polls with bar charts - mobile", function (needs) {
|
||||
test("Public number poll", async (assert) => {
|
||||
await visit("/t/-/13");
|
||||
|
||||
const polls = find(".poll");
|
||||
const polls = queryAll(".poll");
|
||||
assert.equal(polls.length, 1, "it should render the poll correctly");
|
||||
|
||||
await click("button.toggle-results");
|
||||
|
||||
assert.equal(
|
||||
find(".poll-voters:first li").length,
|
||||
queryAll(".poll-voters:first li").length,
|
||||
25,
|
||||
"it should display the right number of voters"
|
||||
);
|
||||
|
||||
assert.notOk(
|
||||
find(".poll-voters:first li:first a").attr("href"),
|
||||
queryAll(".poll-voters:first li:first a").attr("href"),
|
||||
"user URL does not exist"
|
||||
);
|
||||
|
||||
await click(".poll-voters-toggle-expand:first a");
|
||||
|
||||
assert.equal(
|
||||
find(".poll-voters:first li").length,
|
||||
queryAll(".poll-voters:first li").length,
|
||||
35,
|
||||
"it should display the right number of voters"
|
||||
);
|
||||
|
||||
@@ -1,4 +1,9 @@
|
||||
import { moduleForWidget, widgetTest } from "discourse/tests/helpers/widget-test";
|
||||
import {
|
||||
moduleForWidget,
|
||||
widgetTest,
|
||||
} from "discourse/tests/helpers/widget-test";
|
||||
import { queryAll } from "discourse/tests/helpers/qunit-helpers";
|
||||
|
||||
moduleForWidget("discourse-poll-option");
|
||||
|
||||
const template = `{{mount-widget
|
||||
@@ -14,7 +19,7 @@ widgetTest("single, not selected", {
|
||||
},
|
||||
|
||||
test(assert) {
|
||||
assert.ok(find("li .d-icon-far-circle:eq(0)").length === 1);
|
||||
assert.ok(queryAll("li .d-icon-far-circle:eq(0)").length === 1);
|
||||
},
|
||||
});
|
||||
|
||||
@@ -27,7 +32,7 @@ widgetTest("single, selected", {
|
||||
},
|
||||
|
||||
test(assert) {
|
||||
assert.ok(find("li .d-icon-circle:eq(0)").length === 1);
|
||||
assert.ok(queryAll("li .d-icon-circle:eq(0)").length === 1);
|
||||
},
|
||||
});
|
||||
|
||||
@@ -43,7 +48,7 @@ widgetTest("multi, not selected", {
|
||||
},
|
||||
|
||||
test(assert) {
|
||||
assert.ok(find("li .d-icon-far-square:eq(0)").length === 1);
|
||||
assert.ok(queryAll("li .d-icon-far-square:eq(0)").length === 1);
|
||||
},
|
||||
});
|
||||
|
||||
@@ -59,6 +64,6 @@ widgetTest("multi, selected", {
|
||||
},
|
||||
|
||||
test(assert) {
|
||||
assert.ok(find("li .d-icon-far-check-square:eq(0)").length === 1);
|
||||
assert.ok(queryAll("li .d-icon-far-check-square:eq(0)").length === 1);
|
||||
},
|
||||
});
|
||||
|
||||
@@ -1,5 +1,9 @@
|
||||
import EmberObject from "@ember/object";
|
||||
import { moduleForWidget, widgetTest } from "discourse/tests/helpers/widget-test";
|
||||
import {
|
||||
moduleForWidget,
|
||||
widgetTest,
|
||||
} from "discourse/tests/helpers/widget-test";
|
||||
import { queryAll } from "discourse/tests/helpers/qunit-helpers";
|
||||
|
||||
moduleForWidget("discourse-poll-standard-results");
|
||||
|
||||
@@ -21,8 +25,8 @@ widgetTest("options in descending order", {
|
||||
},
|
||||
|
||||
test(assert) {
|
||||
assert.equal(find(".option .percentage:eq(0)").text(), "56%");
|
||||
assert.equal(find(".option .percentage:eq(1)").text(), "44%");
|
||||
assert.equal(queryAll(".option .percentage:eq(0)").text(), "56%");
|
||||
assert.equal(queryAll(".option .percentage:eq(1)").text(), "44%");
|
||||
},
|
||||
});
|
||||
|
||||
@@ -40,8 +44,8 @@ widgetTest("options in ascending order", {
|
||||
},
|
||||
|
||||
test(assert) {
|
||||
assert.equal(find(".option .percentage:eq(0)").text(), "56%");
|
||||
assert.equal(find(".option .percentage:eq(1)").text(), "44%");
|
||||
assert.equal(queryAll(".option .percentage:eq(0)").text(), "56%");
|
||||
assert.equal(queryAll(".option .percentage:eq(1)").text(), "44%");
|
||||
},
|
||||
});
|
||||
|
||||
@@ -67,12 +71,12 @@ widgetTest("multiple options in descending order", {
|
||||
},
|
||||
|
||||
test(assert) {
|
||||
assert.equal(find(".option .percentage:eq(0)").text(), "41%");
|
||||
assert.equal(find(".option .percentage:eq(1)").text(), "33%");
|
||||
assert.equal(find(".option .percentage:eq(2)").text(), "16%");
|
||||
assert.equal(find(".option .percentage:eq(3)").text(), "8%");
|
||||
assert.equal(find(".option span:nth-child(2):eq(3)").text(), "a");
|
||||
assert.equal(find(".option .percentage:eq(4)").text(), "8%");
|
||||
assert.equal(find(".option span:nth-child(2):eq(4)").text(), "b");
|
||||
assert.equal(queryAll(".option .percentage:eq(0)").text(), "41%");
|
||||
assert.equal(queryAll(".option .percentage:eq(1)").text(), "33%");
|
||||
assert.equal(queryAll(".option .percentage:eq(2)").text(), "16%");
|
||||
assert.equal(queryAll(".option .percentage:eq(3)").text(), "8%");
|
||||
assert.equal(queryAll(".option span:nth-child(2):eq(3)").text(), "a");
|
||||
assert.equal(queryAll(".option .percentage:eq(4)").text(), "8%");
|
||||
assert.equal(queryAll(".option span:nth-child(2):eq(4)").text(), "b");
|
||||
},
|
||||
});
|
||||
|
||||
@@ -4,6 +4,7 @@ import {
|
||||
moduleForWidget,
|
||||
widgetTest,
|
||||
} from "discourse/tests/helpers/widget-test";
|
||||
import { queryAll } from "discourse/tests/helpers/qunit-helpers";
|
||||
|
||||
let requests = 0;
|
||||
|
||||
@@ -99,16 +100,17 @@ widgetTest("can vote", {
|
||||
|
||||
await click("li[data-poll-option-id='1f972d1df351de3ce35a787c89faad29']");
|
||||
assert.equal(requests, 1);
|
||||
assert.equal(find(".chosen").length, 1);
|
||||
assert.equal(find(".chosen").text(), "100%yes");
|
||||
assert.equal(find(".toggle-results").text(), "Show vote");
|
||||
assert.equal(queryAll(".chosen").length, 1);
|
||||
assert.equal(queryAll(".chosen").text(), "100%yes");
|
||||
assert.equal(queryAll(".toggle-results").text(), "Show vote");
|
||||
|
||||
await click(".toggle-results");
|
||||
assert.equal(
|
||||
find("li[data-poll-option-id='1f972d1df351de3ce35a787c89faad29']").length,
|
||||
queryAll("li[data-poll-option-id='1f972d1df351de3ce35a787c89faad29']")
|
||||
.length,
|
||||
1
|
||||
);
|
||||
assert.equal(find(".toggle-results").text(), "Show results");
|
||||
assert.equal(queryAll(".toggle-results").text(), "Show results");
|
||||
},
|
||||
});
|
||||
|
||||
@@ -146,10 +148,10 @@ widgetTest("cannot vote if not member of the right group", {
|
||||
|
||||
await click("li[data-poll-option-id='1f972d1df351de3ce35a787c89faad29']");
|
||||
assert.equal(
|
||||
find(".poll-container .alert").text(),
|
||||
queryAll(".poll-container .alert").text(),
|
||||
I18n.t("poll.results.groups.title", { groups: "foo" })
|
||||
);
|
||||
assert.equal(requests, 0);
|
||||
assert.equal(find(".chosen").length, 0);
|
||||
assert.equal(queryAll(".chosen").length, 0);
|
||||
},
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user