Files
zulip/frontend_tests/casper_tests/00-realm-creation.js
Anders Kaseorg f3726db89a js: Normalize strings to double quotes.
Prettier would do this anyway, but it’s separated out for a more
reviewable diff.  Generated by ESLint.

Signed-off-by: Anders Kaseorg <anders@zulip.com>
2020-07-17 14:31:24 -07:00

81 lines
2.7 KiB
JavaScript

var common = require("../casper_lib/common.js");
var email = "alice@test.example.com";
var subdomain = "testsubdomain";
var organization_name = "Awesome Organization";
var host = "zulipdev.com:9981";
var realm_host = "testsubdomain" + "." + host;
casper.start("http://" + host + "/new/");
casper.then(function () {
// Submit the email for realm creation
this.waitUntilVisible('form[name="email_form"]', function () {
this.fill('form[name="email_form"]', {
email: email,
}, true);
});
// Make sure confirmation email is send
this.waitWhileVisible('form[name="email_form"]', function () {
var regex = new RegExp("^http://[^/]+/accounts/new/send_confirm/" + email);
this.test.assertUrlMatch(regex, "Confirmation mail send");
});
});
// Special endpoint enabled only during tests for extracting confirmation key
casper.thenOpen("http://" + host + "/confirmation_key/");
// Open the confirmation URL
casper.then(function () {
var confirmation_key = JSON.parse(this.getPageContent()).confirmation_key;
var confirmation_url = "http://" + host + "/accounts/do_confirm/" + confirmation_key;
this.thenOpen(confirmation_url);
});
// Make sure the realm creation page is loaded correctly
casper.then(function () {
this.waitUntilVisible(".pitch", function () {
this.test.assertSelectorContains(".pitch", "We just need you to do one last thing.");
});
this.waitUntilVisible("#id_email", function () {
this.test.assertEvalEquals(function () {
return $("#id_email").attr("placeholder");
}, email);
});
this.waitUntilVisible("label[for=id_team_name]", function () {
this.test.assertSelectorHasText("label[for=id_team_name]", "Organization name");
});
});
casper.then(function () {
this.waitUntilVisible('form[action^="/accounts/register/"]', function () {
this.fill('form[action^="/accounts/register/"]', {
full_name: "Alice",
realm_name: organization_name,
realm_subdomain: subdomain,
password: "passwordwhichisreallyreallyreallycomplexandnotguessable",
terms: true,
realm_in_root_domain: false,
}, true);
});
this.waitWhileVisible('form[action^="/accounts/register/"]', function () {
casper.test.assertUrlMatch(realm_host + "/", "Home page loaded");
});
});
casper.then(function () {
// The user is logged in to the newly created realm and the app is loaded
casper.waitUntilVisible(".message_row", function () {
this.test.assertTitleMatch(/ - Zulip$/, "Successfully logged into Zulip webapp");
}, null, 20000);
});
common.then_log_out();
casper.run(function () {
casper.test.done();
});