mirror of
https://github.com/meteor/meteor.git
synced 2026-05-02 03:01:46 -04:00
This avoids wracking up huge numbers of login tokens for the test user. It would be nice to have these automatically cleaned up, but this will do for now.
161 lines
4.7 KiB
JavaScript
161 lines
4.7 KiB
JavaScript
var selftest = require('../selftest.js');
|
|
var testUtils = require('../test-utils.js');
|
|
var Sandbox = selftest.Sandbox;
|
|
var files = require('../files.js');
|
|
|
|
var commandTimeoutSecs = testUtils.accountsCommandTimeoutSecs;
|
|
|
|
var loggedInError = selftest.markStack(function(run) {
|
|
run.waitSecs(commandTimeoutSecs);
|
|
run.matchErr("You must be logged in to claim sites.");
|
|
run.expectExit(1);
|
|
});
|
|
|
|
var waitAndError = selftest.markStack(function(run, errmsg) {
|
|
run.waitSecs(commandTimeoutSecs);
|
|
run.matchErr(errmsg);
|
|
run.expectExit(1);
|
|
});
|
|
|
|
selftest.define("claim", ['net', 'slow'], function () {
|
|
var s = new Sandbox;
|
|
|
|
// Can't claim sites while logged out.
|
|
// Nonexistent site.
|
|
var run = s.run('claim', testUtils.randomAppName(20));
|
|
loggedInError(run);
|
|
|
|
// Can't claim sites without specifying a site
|
|
run = s.run('claim');
|
|
run.matchErr('not enough arguments');
|
|
run.expectExit(1);
|
|
|
|
// Existing site.
|
|
run = s.run('claim', 'mother-test');
|
|
loggedInError(run);
|
|
|
|
// Claim will not work on non-legacy sites.
|
|
// belongs to me.
|
|
testUtils.login(s, "test", "testtest");
|
|
var appName = testUtils.createAndDeployApp(s);
|
|
run = s.run('claim', appName);
|
|
waitAndError(run, "That site already belongs to you.");
|
|
|
|
// belongs to not me.
|
|
testUtils.logout(s);
|
|
testUtils.login(s, "testtest", "testtest");
|
|
run = s.run('claim', appName);
|
|
waitAndError(run, "Sorry, that site belongs to someone else.");
|
|
|
|
// belongs to not me, but I am authorized.
|
|
testUtils.logout(s);
|
|
testUtils.login(s, "test", "testtest");
|
|
run = s.run('authorized', appName, '--add', 'testtest');
|
|
run.waitSecs(commandTimeoutSecs);
|
|
run.match('added');
|
|
run.expectExit(0);
|
|
testUtils.logout(s);
|
|
testUtils.login(s, "testtest", "testtest");
|
|
run = s.run('claim', appName);
|
|
waitAndError(run, "That site already belongs to you.");
|
|
|
|
testUtils.cleanUpApp(s, appName);
|
|
|
|
// Legacy sites.
|
|
var sLegacy;
|
|
if (files.inCheckout()) {
|
|
sLegacy = new Sandbox({
|
|
// Include a warehouse argument so that we can deploy apps with
|
|
// --release arguments.
|
|
warehouse: {
|
|
v1: { tools: 'tool1', latest: true }
|
|
}
|
|
});
|
|
} else {
|
|
sLegacy = new Sandbox;
|
|
}
|
|
|
|
// legacy w/pwd.
|
|
var pwd = testUtils.randomString(10);
|
|
var legacyApp = testUtils.createAndDeployLegacyApp(sLegacy, pwd);
|
|
|
|
run = s.run('claim', legacyApp);
|
|
run.waitSecs(commandTimeoutSecs);
|
|
run.matchErr('Password: ');
|
|
run.write('badpass\n');
|
|
run.waitSecs(commandTimeoutSecs);
|
|
run.matchErr("Couldn't claim site:");
|
|
run.expectExit(1);
|
|
|
|
run = s.run('claim', legacyApp);
|
|
run.waitSecs(commandTimeoutSecs);
|
|
run.matchErr('Password:');
|
|
run.write(pwd+"\n");
|
|
run.waitSecs(commandTimeoutSecs);
|
|
run.match("successfully transferred to your account");
|
|
run.expectExit(0);
|
|
|
|
testUtils.cleanUpApp(s, legacyApp);
|
|
|
|
// legacy w/o pwd.
|
|
legacyApp = testUtils.createAndDeployLegacyApp(sLegacy);
|
|
|
|
run = s.run('claim', legacyApp);
|
|
run.waitSecs(commandTimeoutSecs);
|
|
run.match("successfully transferred to your account");
|
|
run.expectExit(0);
|
|
|
|
// No site deployed.
|
|
run = s.run('claim', testUtils.randomAppName(20));
|
|
waitAndError(run, "There isn't a site deployed at that address.");
|
|
|
|
testUtils.cleanUpApp(s, legacyApp);
|
|
testUtils.logout(s);
|
|
});
|
|
|
|
selftest.define('claim - no username', ['net', 'slow'], function () {
|
|
var s = new Sandbox;
|
|
var sandboxWithWarehouse;
|
|
if (files.inCheckout()) {
|
|
sandboxWithWarehouse = new Sandbox({
|
|
// Include a warehouse argument so that we can deploy apps with
|
|
// --release arguments.
|
|
warehouse: {
|
|
v1: { tools: 'tool1', latest: true }
|
|
}
|
|
});
|
|
} else {
|
|
sandboxWithWarehouse = new Sandbox;
|
|
}
|
|
|
|
// We shouldn't be able to claim sites before we set a username.
|
|
var email = testUtils.randomUserEmail();
|
|
var username = testUtils.randomString(10);
|
|
var appName = testUtils.randomAppName();
|
|
var token = testUtils.deployWithNewEmail(s, email, appName);
|
|
var legacyAppName = testUtils.createAndDeployLegacyApp(
|
|
sandboxWithWarehouse,
|
|
'test'
|
|
);
|
|
var run = s.run('claim', legacyAppName);
|
|
run.waitSecs(commandTimeoutSecs);
|
|
run.matchErr('Password:');
|
|
run.write('test\n');
|
|
run.waitSecs(commandTimeoutSecs);
|
|
run.matchErr('You need to set a password');
|
|
run.matchErr(testUtils.registrationUrlRegexp);
|
|
run.expectExit(1);
|
|
// After we set a username, we should be able to claim sites.
|
|
testUtils.registerWithToken(token, username, 'testtest', email);
|
|
run = s.run('claim', legacyAppName);
|
|
run.waitSecs(commandTimeoutSecs);
|
|
run.matchErr('Password: ');
|
|
run.write('test\n');
|
|
run.waitSecs(commandTimeoutSecs);
|
|
run.match('transferred to your account');
|
|
run.expectExit(0);
|
|
testUtils.cleanUpApp(s, appName);
|
|
testUtils.cleanUpApp(s, legacyAppName);
|
|
testUtils.logout(s);
|
|
});
|