import { click, visit } from "@ember/test-helpers"; import { test } from "qunit"; import topicFixtures from "discourse/tests/fixtures/topic"; import { acceptance } from "discourse/tests/helpers/qunit-helpers"; import { cloneJSON } from "discourse-common/lib/object"; acceptance("Discourse Footnote Plugin", function (needs) { needs.settings({ display_footnotes_inline: true, }); needs.pretender((server, helper) => { server.get("/t/45.json", () => { let topic = cloneJSON(topicFixtures["/t/28830/1.json"]); topic["post_stream"]["posts"][0]["cooked"] = `

Lorem ipsum dolor sit amet[1]

Second reference should also work. [1]


  1. consectetur adipiscing elit ↩︎

`; return helper.response(topic); }); }); test("displays the footnote on click", async function (assert) { await visit("/t/-/45"); assert.dom("#footnote-tooltip", document.body).exists(); // open await click(".expand-footnote"); assert .dom(".footnote-tooltip-content", document.body) .hasText("consectetur adipiscing elit ↩︎"); assert.dom("#footnote-tooltip", document.body).hasAttribute("data-show"); // close by clicking outside await click(document.body); assert .dom("#footnote-tooltip", document.body) .doesNotHaveAttribute("data-show"); // open again await click(".expand-footnote"); assert .dom(".footnote-tooltip-content", document.body) .hasText("consectetur adipiscing elit ↩︎"); assert.dom("#footnote-tooltip", document.body).hasAttribute("data-show"); // close by clicking the button await click(".expand-footnote"); assert .dom("#footnote-tooltip", document.body) .doesNotHaveAttribute("data-show"); }); test("clicking a second footnote with same name works", async function (assert) { await visit("/t/-/45"); assert.dom("#footnote-tooltip", document.body).exists(); await click(".second .expand-footnote"); assert .dom(".footnote-tooltip-content", document.body) .hasText("consectetur adipiscing elit ↩︎"); assert.dom("#footnote-tooltip", document.body).hasAttribute("data-show"); }); });