mirror of https://github.com/zulip/zulip.git
83 lines
2.3 KiB
JavaScript
83 lines
2.3 KiB
JavaScript
"use strict";
|
|
|
|
/* Script for testing the web client.
|
|
|
|
This runs under CasperJS. It's an end-to-end black-box sort of test. It
|
|
simulates clicking around in the app, sending messages, etc. We run against
|
|
a real development server instance and avoid mocking as much as possible.
|
|
*/
|
|
|
|
// Provides a few utility functions.
|
|
// See https://web.archive.org/web/20200110122733if_/https://docs.casperjs.org/en/latest/modules/utils.html
|
|
// For example, utils.dump() prints an Object with nice formatting.
|
|
var common = require("../casper_lib/common.js");
|
|
|
|
common.start_and_log_in();
|
|
|
|
casper.then(function () {
|
|
casper.test.info("Sanity-checking existing messages");
|
|
|
|
var msg = common.get_rendered_messages("zhome");
|
|
|
|
msg.headings.forEach(function (heading) {
|
|
casper.test.assertMatch(
|
|
common.normalize_spaces(heading),
|
|
/(^You and )|( )/,
|
|
"Heading is well-formed"
|
|
);
|
|
});
|
|
|
|
casper.test.info("Sending messages");
|
|
});
|
|
|
|
// Send some messages.
|
|
|
|
common.then_send_many([
|
|
{stream: "Verona", subject: "frontend test", content: "test verona A"},
|
|
|
|
{stream: "Verona", subject: "frontend test", content: "test verona B"},
|
|
|
|
{stream: "Verona", subject: "other subject", content: "test verona C"},
|
|
|
|
{recipient: "cordelia@zulip.com, hamlet@zulip.com", content: "personal A"},
|
|
|
|
{recipient: "cordelia@zulip.com, hamlet@zulip.com", content: "personal B"},
|
|
|
|
{recipient: "cordelia@zulip.com", content: "personal C"},
|
|
]);
|
|
|
|
common.wait_for_receive(function () {
|
|
common.expected_messages(
|
|
"zhome",
|
|
[
|
|
"Verona > frontend test",
|
|
"Verona > other subject",
|
|
"You and Cordelia Lear, King Hamlet",
|
|
"You and Cordelia Lear",
|
|
],
|
|
[
|
|
"<p>test verona A</p>",
|
|
"<p>test verona B</p>",
|
|
"<p>test verona C</p>",
|
|
"<p>personal A</p>",
|
|
"<p>personal B</p>",
|
|
"<p>personal C</p>",
|
|
]
|
|
);
|
|
|
|
casper.test.info("Sending more messages");
|
|
});
|
|
|
|
common.then_send_many([
|
|
{stream: "Verona", subject: "frontend test", content: "test verona D"},
|
|
|
|
{recipient: "cordelia@zulip.com, hamlet@zulip.com", content: "personal D"},
|
|
]);
|
|
|
|
common.then_log_out();
|
|
|
|
// Run the above queued actions.
|
|
casper.run(function () {
|
|
casper.test.done();
|
|
});
|