mirror of
https://github.com/TryGhost/Ghost.git
synced 2025-01-13 22:41:32 -05:00
5d572bda0d
refs #5652 - wrap emails input in `{{gh-form-group}}` component to give element success/error classes - pull validation messages into submit button - clean up validation related aspects of step three controller
97 lines
4.1 KiB
JavaScript
97 lines
4.1 KiB
JavaScript
// Test that setup works correctly
|
|
|
|
/*global CasperTest, casper, email, user, password */
|
|
|
|
CasperTest.begin('Ghost setup fails properly', 11, function suite(test) {
|
|
casper.thenOpenAndWaitForPageLoad('setup', function then() {
|
|
test.assertUrlMatch(/ghost\/setup\/one\/$/, 'Landed on the correct URL');
|
|
});
|
|
|
|
casper.thenTransitionAndWaitForScreenLoad('setup.two', function setupWithShortPassword() {
|
|
casper.fillAndAdd('#setup', {'blog-title': 'ghost', name: 'slimer', email: email, password: 'short'});
|
|
});
|
|
|
|
// should now show a short password error
|
|
casper.waitForText('Password must be at least 8 characters long', function onSuccess() {
|
|
test.assert(true, 'Short password error was shown');
|
|
}, casper.failOnTimeout(test, 'Short password error was not shown'));
|
|
|
|
casper.then(function setupWithLongPassword() {
|
|
casper.fillAndAdd('#setup', {'blog-title': 'ghost', name: 'slimer', email: email, password: password});
|
|
});
|
|
|
|
// This can take quite a long time
|
|
casper.wait(5000);
|
|
|
|
casper.waitForScreenLoad('setup.three', function inviteUsers() {
|
|
casper.thenClick('.gh-flow-content .btn');
|
|
});
|
|
|
|
casper.waitForText('No users to invite', function onSuccess() {
|
|
test.assert(true, 'Got error message');
|
|
|
|
test.assertExists('.gh-flow-content .btn-minor', 'Submit button is not minor');
|
|
test.assertSelectorHasText('.gh-flow-content .btn', 'No users to invite', 'Submit button has wrong text');
|
|
}, function onTimeout() {
|
|
test.assert(false, 'No error message for empty invitation list');
|
|
});
|
|
|
|
casper.then(function fillInvalidEmail() {
|
|
casper.fill('form.gh-flow-invite', {users: 'test'});
|
|
casper.thenClick('.gh-flow-content .btn');
|
|
});
|
|
|
|
casper.waitForText('1 invalid email address', function onSuccess() {
|
|
test.assert(true, 'Got invalid email error');
|
|
}, casper.failOnTimeout(test, 'Invalid email error not shown'));
|
|
|
|
casper.then(function fillInvitationForm() {
|
|
casper.fill('form.gh-flow-invite', {users: 'test@example.com'});
|
|
test.assertSelectorHasText('.gh-flow-content .btn', 'Invite 1 user', 'One invitation button text is incorrect');
|
|
|
|
test.assertExists('.gh-flow-content .btn-green', 'Submit button is not green');
|
|
|
|
casper.fill('form.gh-flow-invite', {users: 'test@example.com\ntest2@example.com'});
|
|
test.assertSelectorHasText('.gh-flow-content .btn', 'Invite 2 users', 'Two invitations button text is incorrect');
|
|
});
|
|
|
|
casper.thenClick('.gh-flow-content .btn');
|
|
|
|
// This might take awhile
|
|
casper.wait(5000);
|
|
|
|
// These invitations will fail, because Casper can't send emails
|
|
casper.waitForSelector('.gh-alert', function onSuccess() {
|
|
test.assert(true, 'Got error notification');
|
|
test.assertSelectorHasText('.gh-alert', 'Failed to send 2 invitations: test@example.com, test2@example.com');
|
|
}, function onTimeout() {
|
|
test.assert(false, 'No error notification after invite.');
|
|
});
|
|
}, true, true);
|
|
|
|
CasperTest.begin('Authenticated user is redirected', 6, function suite(test) {
|
|
casper.thenOpenAndWaitForPageLoad('signin', function testTitleAndUrl() {
|
|
test.assertTitle('Sign In - ghost', 'Ghost admin has incorrect title');
|
|
test.assertUrlMatch(/ghost\/signin\/$/, 'Landed on the correct URL');
|
|
});
|
|
|
|
casper.waitForOpaque('.gh-signin', function then() {
|
|
this.fillAndSave('#login', user);
|
|
});
|
|
|
|
casper.wait(2000);
|
|
|
|
casper.waitForResource(/\d+/, function testForDashboard() {
|
|
test.assertUrlMatch(/ghost\/\d+\/$/, 'Landed on the correct URL');
|
|
test.assertExists('.gh-nav-main-content.active', 'Now we are on Content');
|
|
}, function onTimeOut() {
|
|
test.fail('Failed to signin');
|
|
});
|
|
|
|
casper.thenOpenAndWaitForPageLoad('setup-authenticated', function testTitleAndUrl() {
|
|
test.assertUrlMatch(/ghost\/\d+\/$/, 'Landed on the correct URL');
|
|
test.assertExists('.gh-nav-main-content.active', 'Now we are on Content');
|
|
}, function onTimeOut() {
|
|
test.fail('Failed to redirect');
|
|
});
|
|
}, true, true);
|