The commit fcc2e7ebbf to promote
polymorphic bookmarks did not correctly set the username for
the quick access bookmark menu based on the new serializer
values, so the username is not being shown in the bookmark
quick access menu. This commit fixes it, and also adds additional
tests for that menu and updates the user fixtures to reflect
the current state of the bookmarks endpoint.
92 lines
2.9 KiB
JavaScript
92 lines
2.9 KiB
JavaScript
import {
|
|
acceptance,
|
|
exists,
|
|
queryAll,
|
|
} from "discourse/tests/helpers/qunit-helpers";
|
|
import { click, visit } from "@ember/test-helpers";
|
|
import { cloneJSON } from "discourse-common/lib/object";
|
|
import selectKit from "discourse/tests/helpers/select-kit-helper";
|
|
import { test } from "qunit";
|
|
import userFixtures from "discourse/tests/fixtures/user-fixtures";
|
|
|
|
acceptance("User's bookmarks", function (needs) {
|
|
needs.user();
|
|
|
|
test("removing a bookmark with no reminder does not show a confirmation", async function (assert) {
|
|
await visit("/u/eviltrout/activity/bookmarks");
|
|
assert.ok(exists(".bookmark-list-item"));
|
|
|
|
const dropdown = selectKit(".bookmark-actions-dropdown:nth-of-type(1)");
|
|
await dropdown.expand();
|
|
await dropdown.selectRowByValue("remove");
|
|
|
|
assert.notOk(exists(".bootbox.modal"), "it should not show the modal");
|
|
});
|
|
|
|
test("it renders search controls if there are bookmarks", async function (assert) {
|
|
await visit("/u/eviltrout/activity/bookmarks");
|
|
assert.ok(exists("div.bookmark-search-form"));
|
|
});
|
|
});
|
|
|
|
acceptance("User's bookmarks - reminder", function (needs) {
|
|
needs.user();
|
|
|
|
needs.pretender((server, helper) => {
|
|
server.get("/u/eviltrout/bookmarks.json", () => {
|
|
let json = cloneJSON(userFixtures["/u/eviltrout/bookmarks.json"]);
|
|
json.user_bookmark_list.bookmarks[0].reminder_at = "2028-01-01T08:00";
|
|
return helper.response(json);
|
|
});
|
|
|
|
server.put("/bookmarks/:id", () => {
|
|
return helper.response({});
|
|
});
|
|
});
|
|
|
|
test("removing a bookmark with a reminder shows a confirmation", async function (assert) {
|
|
await visit("/u/eviltrout/activity/bookmarks");
|
|
|
|
const dropdown = selectKit(".bookmark-actions-dropdown");
|
|
await dropdown.expand();
|
|
await dropdown.selectRowByValue("remove");
|
|
|
|
assert.ok(exists(".bootbox.modal"), "it asks for delete confirmation");
|
|
|
|
await click(".bootbox.modal a.btn-primary");
|
|
assert.notOk(exists(".bootbox.modal"));
|
|
});
|
|
|
|
test("bookmarks with reminders have a clear reminder option", async function (assert) {
|
|
await visit("/u/eviltrout/activity/bookmarks");
|
|
|
|
assert.strictEqual(queryAll(".bookmark-reminder").length, 2);
|
|
|
|
const dropdown = selectKit(".bookmark-actions-dropdown");
|
|
await dropdown.expand();
|
|
await dropdown.selectRowByValue("clear_reminder");
|
|
|
|
assert.strictEqual(queryAll(".bookmark-reminder").length, 1);
|
|
});
|
|
});
|
|
|
|
acceptance("User's bookmarks - no bookmarks", function (needs) {
|
|
needs.user();
|
|
needs.pretender((server, helper) => {
|
|
server.get("/u/eviltrout/bookmarks.json", () =>
|
|
helper.response({
|
|
bookmarks: [],
|
|
})
|
|
);
|
|
});
|
|
|
|
test("listing users bookmarks - no bookmarks", async function (assert) {
|
|
await visit("/u/eviltrout/activity/bookmarks");
|
|
assert.notOk(
|
|
exists("div.bookmark-search-form"),
|
|
"does not render search controls"
|
|
);
|
|
assert.ok(exists("div.empty-state", "renders the empty-state message"));
|
|
});
|
|
});
|