Files
zulip/frontend_tests/casper_tests/00-realm-creation.js
Tim Abbott 50b74f7101 casper: Fix invalid check in 00-realm-creation.
We shouldn't be checking for #zfilt here, since we haven't done
anything that should cause #zfilt to load.  Instead, we verify whether
messages have loaded into the DOM (the condition we actually want) by
checking whether at least one message row is in the DOM.
2020-05-06 10:54:48 -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();
});