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" 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"); }); });