mirror of
https://github.com/discourse/discourse.git
synced 2025-02-19 13:42:55 +08:00

This adds a new framework for accessible dialogs that will eventually replace bootbox. Under the hood, it uses the a11y-dialog package and an in-repo Ember addon. See PR for usage details.
62 lines
1.8 KiB
JavaScript
62 lines
1.8 KiB
JavaScript
import { acceptance, query } from "discourse/tests/helpers/qunit-helpers";
|
|
import { click, fillIn, visit } from "@ember/test-helpers";
|
|
import { test } from "qunit";
|
|
import pretender, { response } from "discourse/tests/helpers/create-pretender";
|
|
|
|
const EMAIL = `
|
|
From: "somebody" <somebody@example.com>
|
|
To: someone@example.com
|
|
Date: Mon, 3 Dec 2018 00:00:00 -0000
|
|
Subject: This is some subject
|
|
Content-Type: text/plain; charset="UTF-8"
|
|
|
|
Hello, this is a test!
|
|
|
|
---
|
|
|
|
This part should be elided.`;
|
|
|
|
acceptance("Admin - Emails", function (needs) {
|
|
needs.user();
|
|
test("shows selected and elided text", async function (assert) {
|
|
pretender.post("/admin/email/advanced-test", () => {
|
|
return response({
|
|
format: 1,
|
|
text: "Hello, this is a test!",
|
|
elided: "---\n\nThis part should be elided.",
|
|
});
|
|
});
|
|
|
|
await visit("/admin/email/advanced-test");
|
|
await fillIn("textarea.email-body", EMAIL.trim());
|
|
await click(".email-advanced-test button");
|
|
|
|
assert.strictEqual(query(".text pre").innerText, "Hello, this is a test!");
|
|
assert.strictEqual(
|
|
query(".elided pre").innerText,
|
|
"---\n\nThis part should be elided."
|
|
);
|
|
});
|
|
|
|
test("displays received errors when testing emails", async function (assert) {
|
|
pretender.get("/admin/email.json", () => {
|
|
return response({});
|
|
});
|
|
|
|
pretender.post("/admin/email/test", () => {
|
|
return response(422, { errors: ["some error"] });
|
|
});
|
|
|
|
await visit("/admin/email");
|
|
await fillIn(".admin-controls input", "test@example.com");
|
|
await click(".btn-primary");
|
|
|
|
assert.ok(query("#dialog-holder").innerText.includes("some error"));
|
|
assert.ok(
|
|
query("#dialog-holder .dialog-body b"),
|
|
"Error message can contain html"
|
|
);
|
|
await click(".dialog-overlay");
|
|
});
|
|
});
|