75 lines
2.5 KiB
JavaScript
Raw Permalink Normal View History

2023-12-01 16:47:54 +01:00
import { visit } from "@ember/test-helpers";
import { test } from "qunit";
import { acceptance } from "discourse/tests/helpers/qunit-helpers";
import { i18n } from "discourse-i18n";
acceptance("Data Explorer Plugin | List Queries", function (needs) {
needs.user();
needs.settings({ data_explorer_enabled: true });
needs.pretender((server, helper) => {
server.get("/admin/plugins/explorer/groups.json", () => {
return helper.response([]);
});
server.get("/admin/plugins/explorer/queries", () => {
return helper.response({
queries: [
{
id: -5,
name: "Top 100 Active Topics",
description:
"based on the number of replies, it accepts a months_ago parameter, defaults to 1 to give results for the last calendar month.",
username: "system",
group_ids: [],
last_run_at: "2021-02-08T15:37:49.188Z",
user_id: -1,
},
{
id: -6,
name: "Top 100 Likers",
description:
"returns the top 100 likers for a given monthly period ordered by like_count. It accepts a months_ago parameter, defaults to 1 to give results for the last calendar month.",
username: "system",
group_ids: [],
last_run_at: "2021-02-11T08:29:59.337Z",
user_id: -1,
},
],
});
});
});
test("renders the page with the list of queries", async function (assert) {
await visit("/admin/plugins/explorer");
assert
.dom("div.query-list input.ember-text-field")
.hasAttribute(
"placeholder",
i18n("explorer.search_placeholder"),
"the search box was rendered"
);
assert
.dom("div.query-list button.btn-icon svg.d-icon-plus")
.exists("the add query button was rendered");
assert
.dom("div.query-list button.btn-icon-text span.d-button-label")
.hasText(i18n("explorer.import.label"), "the import button was rendered");
assert
.dom("div.container table.recent-queries tbody tr")
.exists({ count: 2 }, "the list of queries was rendered");
assert
.dom("div.container table.recent-queries tbody tr:nth-child(1) td a")
.hasText(/^\s*Top 100 Likers/, "The first query was rendered");
assert
.dom("div.container table.recent-queries tbody tr:nth-child(2) td a")
.hasText(/^\s*Top 100 Active Topics/, "The second query was rendered");
});
});