From 59b1e145c67f01bf06abc3733e88025f6cd00557 Mon Sep 17 00:00:00 2001 From: Avital Oliver Date: Thu, 5 Feb 2015 00:10:38 -0800 Subject: [PATCH] Fix selftests that create packages with colons We used to create package directories with the same name as the package name, but on windows you can't have directories with colons in them. Now Sandbox.prototype.createPackage takes an additional argument with the directory name, as distinct from the package name. This commit updates all the tests that called createPackage to generate a directory name with no colons. --- tools/selftest.js | 29 ++++- tools/tests/colon-converter-tests.js | 7 +- tools/tests/package-tests.js | 105 ++++++++++-------- ...package.js => package-completely-empty.js} | 0 .../package-for-show/package-customizable.js | 1 + .../package-for-show/package-rc-version.js | 1 + .../package-for-show/package-with-deps.js | 1 + .../package-for-show/package-with-exports.js | 1 + .../package-for-show/package-with-implies.js | 1 + .../packages/package-for-show/package.js | 1 + .../package-version.js | 1 + .../package-of-two-versions/package.js | 1 + .../packages/package-with-colons/package.js | 1 + .../packages/package-with-npm/package.js | 1 + tools/tests/publish.js | 43 +++---- 15 files changed, 119 insertions(+), 75 deletions(-) rename tools/tests/packages/package-for-show/{completely-empty-package.js => package-completely-empty.js} (100%) diff --git a/tools/selftest.js b/tools/selftest.js index 8d6966e629..7efb1f7975 100644 --- a/tools/selftest.js +++ b/tools/selftest.js @@ -603,13 +603,32 @@ _.extend(Sandbox.prototype, { // Same as createApp, but with a package. // + // @param packageDir {String} The directory in which to create the package + // @param packageName {String} The package name to create. This string will + // replace all appearances of ~package-name~ + // in any package*.js files in the template + // @param template {String} The package template to use. Found as a + // subdirectory in tests/packages/ + // // For example: - // s.createPackage('mypack', 'empty'); - // s.cd('mypack'); - createPackage: function (to, template) { + // s.createPackage('me_mypack', me:mypack', 'empty'); + // s.cd('me_mypack'); + createPackage: function (packageDir, packageName, template) { var self = this; - files.cp_r(files.pathJoin(__dirname, 'tests', 'packages', template), - files.pathJoin(self.cwd, to)); + var packagePath = files.pathJoin(self.cwd, packageDir); + var templatePackagePath = files.pathJoin( + files.convertToStandardPath(__dirname), 'tests', 'packages', template); + files.cp_r(templatePackagePath, packagePath); + + _.each(files.readdir(packagePath), function (file) { + if (file.match(/^package.*\.js$/)) { + var packageJsFile = files.pathJoin(packagePath, file); + files.writeFile( + packageJsFile, + files.readFile(packageJsFile, "utf8") + .replace("~package-name~", packageName)); + } + }); }, // Change the cwd to be used for subsequent runs. For example: diff --git a/tools/tests/colon-converter-tests.js b/tools/tests/colon-converter-tests.js index 81722a8157..1ef6ba436c 100644 --- a/tools/tests/colon-converter-tests.js +++ b/tools/tests/colon-converter-tests.js @@ -58,9 +58,10 @@ selftest.define("can't publish package with colons", ["net", "test-package-serve testUtils.login(s, username, password); var packageName = randomizedPackageName(username, "package-with-colons"); - s.createPackage(packageName, "package-with-colons"); + var packageDirName = "package-with-colons"; + s.createPackage(packageDirName, packageName, "package-with-colons"); - s.cd(packageName, function () { + s.cd(packageDirName, function () { var run = s.run("publish", "--create"); run.matchErr("invalid characters"); @@ -81,7 +82,7 @@ selftest.define("can't build local packages with colons", function () { s.cd(appName, function () { s.mkdir("packages"); s.cd("packages", function () { - s.createPackage(packageName, "package-with-colons"); + s.createPackage("package-with-colons", packageName, "package-with-colons"); }); var run = s.run("add", packageName); diff --git a/tools/tests/package-tests.js b/tools/tests/package-tests.js index ad74dc2cf1..cebbc81572 100644 --- a/tools/tests/package-tests.js +++ b/tools/tests/package-tests.js @@ -462,8 +462,9 @@ selftest.define("sync local catalog", ["slow", "net", "test-package-server"], f // Create a package that has a versionsFrom for the just-published release. var newPack = packageName + "-b"; - s.createPackage(newPack, "package-of-two-versions"); - s.cd(newPack, function() { + var newPackDirName = "package-of-two-versions"; + s.createPackage(newPackDirName, newPack, "package-of-two-versions"); + s.cd(newPackDirName, function() { var packOpen = s.read("package.js"); packOpen = packOpen + "\nPackage.onUse(function(api) { \n" + "api.versionsFrom(\"" + releaseTrack + "@0.9\");\n" + @@ -480,7 +481,7 @@ selftest.define("sync local catalog", ["slow", "net", "test-package-server"], f // Try to publish the package. Since the package references the release that // we just published, it needs to resync with the server in order to be able // to compile itself. - s.cd(newPack, function() { + s.cd(newPackDirName, function() { run = s.run("publish", "--create"); run.waitSecs(20); run.match("Done"); @@ -533,8 +534,9 @@ selftest.define("sync local catalog", ["slow", "net", "test-package-server"], f // `packageName` should be a full package name (i.e. :), and the sandbox should be logged in as that username. var createAndPublishPackage = selftest.markStack(function (s, packageName) { - s.createPackage(packageName, "package-of-two-versions"); - s.cd(packageName, function (){ + var packageDirName = "package-of-two-versions"; + s.createPackage(packageDirName, packageName, "package-of-two-versions"); + s.cd(packageDirName, function (){ var run = s.run("publish", "--create"); run.waitSecs(25); run.expectExit(0); @@ -554,8 +556,9 @@ selftest.define("release track defaults to METEOR", // `versionsFrom`. This implies that it should be prefixed // by "METEOR@" var newPack = fullPackageName; - s.createPackage(newPack, "package-of-two-versions"); - s.cd(newPack, function() { + var newPackDirName = "random-package"; + s.createPackage(newPackDirName, newPack, "package-of-two-versions"); + s.cd(newPackDirName, function() { var packOpen = s.read("package.js"); packOpen = packOpen + "\nPackage.onUse(function(api) { \n" + "api.versionsFrom(\"" + releaseVersion + "\");\n" + @@ -566,7 +569,7 @@ selftest.define("release track defaults to METEOR", // Try to publish the package. The error message should demonstrate // that we indeed default to the METEOR release track when not // specified. - s.cd(newPack, function() { + s.cd(newPackDirName, function() { var run = s.run("publish", "--create"); run.waitSecs(20); run.matchErr("Unknown release METEOR@" + releaseVersion); @@ -681,7 +684,7 @@ selftest.define("package specifying a name", run.match("localhost"); s.cd("packages", function () { - s.createPackage("ac-fake", "fake-accounts-base"); + s.createPackage("ac-fake", "ac-fake", "fake-accounts-base"); }); run.waitSecs(5); @@ -1106,11 +1109,11 @@ selftest.define("show local package w/o version", function () { // Create a package without version or summary; check that we can show its // information without crashing. - s.createPackage(name, "package-for-show"); + s.createPackage(name, name, "package-for-show"); var packageDir = files.pathJoin(s.root, "home", name); s.cd(name, function () { - s.cp("completely-empty-package.js", "package.js"); + s.cp("package-completely-empty.js", "package.js"); testShowPackage(s, name, { defaultVersion: "local", versions: [{ version: "local", directory: packageDir }] @@ -1153,7 +1156,7 @@ selftest.define("show and search local package", function () { s.cd("myapp"); s.mkdir("packages"); s.cd("packages", function () { - s.createPackage(name, "package-for-show"); + s.createPackage(name, name, "package-for-show"); }); var packageDir = files.pathJoin(s.root, "home", "myapp", "packages", name); @@ -1195,7 +1198,7 @@ selftest.define("show and search local package", function () { summary = "This is a test package"; name = "my-local-exports"; packageDir = files.pathJoin(s.root, "home", "myapp", "packages", name); - s.createPackage(name, "package-for-show"); + s.createPackage(name, name, "package-for-show"); s.cd(name, function () { s.cp("package-with-exports.js", "package.js"); }); @@ -1306,11 +1309,13 @@ selftest.define("show and search local overrides server", // Publish the first version of this package. createAndPublishPackage(s, fullPackageName); + var packageDirName = "packages-for-show"; + // Create a second version of this package. Inside that package directory, we // should be able to see the local package. - var packageDir = files.pathJoin(s.root, "home", fullPackageName); - s.createPackage(fullPackageName, "package-for-show"); - s.cd(fullPackageName, function() { + var packageDir = files.pathJoin(s.root, "home", packageDirName); + s.createPackage(packageDirName, fullPackageName, "package-for-show"); + s.cd(packageDirName, function() { s.cp("package-with-git.js", "package.js"); var summary = "This is a test package"; var git = "www.github.com/meteor/meteor"; @@ -1393,8 +1398,9 @@ selftest.define("show server package", // Publish a version the package without git or any dependencies. Make sure // that 'show' renders it correctly. - s.createPackage(fullPackageName, "package-for-show"); - s.cd(fullPackageName, function () { + var packageDirName = "package-for-show"; + s.createPackage(packageDirName, fullPackageName, "package-for-show"); + s.cd(packageDirName, function () { var run = s.run("publish", "--create"); run.waitSecs(30); run.expectExit(0); @@ -1420,7 +1426,7 @@ selftest.define("show server package", }); // Publish a version of the package with git, but without any dependencies. - s.cd(fullPackageName, function () { + s.cd(packageDirName, function () { s.cp("package-with-git.js", "package.js"); var run = s.run("publish"); run.waitSecs(30); @@ -1446,7 +1452,7 @@ selftest.define("show server package", }); // Publish a version of the package with exports, and see that they show up. - s.cd(fullPackageName, function () { + s.cd(packageDirName, function () { s.cp("package-with-exports.js", "package.js"); var run = s.run("publish"); run.waitSecs(30); @@ -1486,7 +1492,7 @@ selftest.define("show server package", createAndPublishPackage(s, baseDependency); var weakDependency = randomizedPackageName(username, "weak"); createAndPublishPackage(s, weakDependency); - s.cd(fullPackageName, function () { + s.cd(packageDirName, function () { // Replace the dependencies placeholders in the package.js file with the // packages that we have just published. s.cp("package-with-deps.js", "package.js"); @@ -1706,10 +1712,11 @@ selftest.define("show rc-only package", var s = new Sandbox(); testUtils.login(s, username, password); var fullPackageName = randomizedPackageName(username); + var packageDirName = "package-for-show"; // Create a package that has only an rc version. - s.createPackage(fullPackageName, "package-for-show"); - s.cd(fullPackageName, function () { + s.createPackage(packageDirName, "package-for-show"); + s.cd(packageDirName, function () { s.cp("package-rc-version.js", "package.js"); var run = s.run("publish", "--create"); run.waitSecs(30); @@ -2117,9 +2124,10 @@ selftest.define("show package w/many versions", run.expectExit(0); }; var fullPackageName = randomizedPackageName(username); - s.createPackage(fullPackageName, "package-of-two-versions"); - var packageDir = files.pathJoin(s.root, "home", fullPackageName); - s.cd(fullPackageName, function () { + var packageDirName = "package-of-two-version"; + s.createPackage(packageDirName, fullPackageName, "package-of-two-versions"); + var packageDir = files.pathJoin(s.root, "home", packageDirName); + s.cd(packageDirName, function () { var run = s.run("publish", "--create"); run.waitSecs(30); run.expectExit(0); @@ -2222,7 +2230,7 @@ selftest.define("show readme excerpt", function () { // Create a package without version or summary; check that we can show its // information without crashing. - s.createPackage(name, "package-for-show"); + s.createPackage(name, name, "package-for-show"); var packageDir = files.pathJoin(s.root, "home", name); // We are just going to change the description in the Readme. Some things @@ -2369,7 +2377,8 @@ selftest.define("show server readme", // every time we want to check a publication date is sort of expensive. var today = longformToday(); var fullPackageName = username + ":" + utils.randomToken(); - s.createPackage(fullPackageName, "package-for-show"); + var packageDirName = "package-for-show"; + s.createPackage(packageDirName, fullPackageName, "package-for-show"); var summary = "This is a test package"; // Publish fullPackageName. @@ -2387,7 +2396,7 @@ selftest.define("show server readme", }; // Default docs. - s.cd(fullPackageName, function () { + s.cd(packageDirName, function () { publish(true); }); testShowPackageVersion(s, { @@ -2409,7 +2418,7 @@ selftest.define("show server readme", // Custom Readme! Publish works. var git = "https:ilovegit.git"; var staging; - s.cd(fullPackageName, function () { + s.cd(packageDirName, function () { staging = s.read("package-customizable.js"); staging = staging.replace(/~git~/g, git); staging = staging.replace(/~summary~/g, summary); @@ -2440,7 +2449,7 @@ selftest.define("show server readme", }); // Null Readme! Publish works. - s.cd(fullPackageName, function () { + s.cd(packageDirName, function () { var current = staging.replace(/~version~/g, "1.0.0_1"); s.write("package.js", current.replace(/~documentation~/g, "null")); publish(); @@ -2466,7 +2475,7 @@ selftest.define("show server readme", }); // These cause the publish to fail. - s.cd(fullPackageName, function () { + s.cd(packageDirName, function () { // README is blank. var current = staging.replace(/~version~/g, "1.0.0_2"); s.write("package.js", current.replace(/~documentation~/g, "'blank'")); @@ -2492,7 +2501,7 @@ selftest.define("show server readme", // If you didn't format things properly, we will still publish and use that as // an excerpt. - s.cd(fullPackageName, function () { + s.cd(packageDirName, function () { var current = staging.replace(/~version~/g, "1.0.0_2"); s.write("package.js", current.replace(/~documentation~/g, "'unformat'")); s.write("unformat", "I did not format this readme"); @@ -2537,7 +2546,8 @@ selftest.define("update package metadata", // every time we want to check a publication date is sort of expensive. var today = longformToday(); var fullPackageName = username + ":" + utils.randomToken(); - s.createPackage(fullPackageName, "package-for-show"); + var packageDirName = "package-for-show"; + s.createPackage(packageDirName, fullPackageName, "package-for-show"); var summary = "This is a test package"; var desc = "Test package."; var git = "www.iheartgit.git"; @@ -2561,7 +2571,7 @@ selftest.define("update package metadata", }; // Publish the basic show package, using the default settings. - s.cd(fullPackageName, function () { + s.cd(packageDirName, function () { var run = s.run("publish", "--create"); run.waitSecs(30); run.expectExit(0); @@ -2577,7 +2587,7 @@ selftest.define("update package metadata", }, basePackage)); // add git - s.cd(fullPackageName, function () { + s.cd(packageDirName, function () { var staging = s.read("package-customizable.js"); staging = staging.replace(/~git~/g, git); staging = staging.replace(/~summary~/g, summary); @@ -2601,7 +2611,7 @@ selftest.define("update package metadata", // change git & summary git = "https://www.idoNOTheartgit.com"; summary = "awesome test"; - s.cd(fullPackageName, function () { + s.cd(packageDirName, function () { var staging = s.read("package-customizable.js"); staging = staging.replace(/~git~/g, git); staging = staging.replace(/~summary~/g, summary); @@ -2625,7 +2635,7 @@ selftest.define("update package metadata", // change readme contents & summary desc = "This test package is super super awesome"; summary = "more awesome test"; - s.cd(fullPackageName, function () { + s.cd(packageDirName, function () { var staging = s.read("package-customizable.js"); staging = staging.replace(/~git~/g, git); staging = staging.replace(/~summary~/g, summary); @@ -2648,7 +2658,7 @@ selftest.define("update package metadata", // change readme contents desc = "Actually this test package is OK"; - s.cd(fullPackageName, function () { + s.cd(packageDirName, function () { s.write("README.md", "OKTest\n===\n"+ desc); update(); }); @@ -2665,7 +2675,7 @@ selftest.define("update package metadata", // change readme file desc = "description from new file"; - s.cd(fullPackageName, function () { + s.cd(packageDirName, function () { var staging = s.read("package-customizable.js"); staging = staging.replace(/~git~/g, git); staging = staging.replace(/~summary~/g, summary); @@ -2687,7 +2697,7 @@ selftest.define("update package metadata", }, basePackage)); // remove readme - s.cd(fullPackageName, function () { + s.cd(packageDirName, function () { var staging = s.read("package-customizable.js"); staging = staging.replace(/~git~/g, git); staging = staging.replace(/~summary~/g, summary); @@ -2706,7 +2716,7 @@ selftest.define("update package metadata", }, basePackage)); // try to set an invalid summary - s.cd(fullPackageName, function () { + s.cd(packageDirName, function () { // Long summary var staging = s.read("package-customizable.js"); staging = staging.replace(/~git~/g, git); @@ -2743,7 +2753,7 @@ selftest.define("update package metadata", // try to set an invalid readme - s.cd(fullPackageName, function () { + s.cd(packageDirName, function () { var staging = s.read("package-customizable.js"); staging = staging.replace(/~git~/g, git); var longSummary = Array(30).join(summary); @@ -2760,7 +2770,7 @@ selftest.define("update package metadata", }); // try to update non-existent version - s.cd(fullPackageName, function () { + s.cd(packageDirName, function () { var staging = s.read("package-customizable.js"); staging = staging.replace(/~git~/g, git); staging = staging.replace(/~summary~/g, summary); @@ -2775,8 +2785,9 @@ selftest.define("update package metadata", // try to update non-existent package var newPackageName = username + ":" + utils.randomToken(); - s.createPackage(newPackageName, "package-for-show"); - s.cd(newPackageName, function () { + var newPackageDirName = "packages-for-show"; + s.createPackage(newPackageDirName, newPackageName, "package-for-show"); + s.cd(newPackageDirName, newPackageName, function () { var run = s.run("publish", "--update"); run.matchErr("without publishing it first"); run.expectExit(1); @@ -2788,7 +2799,7 @@ selftest.define("update package metadata", // try to update dependencies, they don't get upated! (But it still goes // through, for now). - s.cd(fullPackageName, function () { + s.cd(packageDirName, function () { var staging = s.read("package-customizable.js"); staging = staging.replace(/~git~/g, git); staging = staging.replace(/~summary~/g, summary); diff --git a/tools/tests/packages/package-for-show/completely-empty-package.js b/tools/tests/packages/package-for-show/package-completely-empty.js similarity index 100% rename from tools/tests/packages/package-for-show/completely-empty-package.js rename to tools/tests/packages/package-for-show/package-completely-empty.js diff --git a/tools/tests/packages/package-for-show/package-customizable.js b/tools/tests/packages/package-for-show/package-customizable.js index df0b048a61..f2cfefb630 100644 --- a/tools/tests/packages/package-for-show/package-customizable.js +++ b/tools/tests/packages/package-for-show/package-customizable.js @@ -1,4 +1,5 @@ Package.describe({ + name: "~package-name~", // replaced via `Sandbox.prototype.createPackage` summary: '~summary~', version: '~version~', git: '~git~', diff --git a/tools/tests/packages/package-for-show/package-rc-version.js b/tools/tests/packages/package-for-show/package-rc-version.js index 9346564d01..0600c24cc9 100644 --- a/tools/tests/packages/package-for-show/package-rc-version.js +++ b/tools/tests/packages/package-for-show/package-rc-version.js @@ -1,4 +1,5 @@ Package.describe({ + name: "~package-name~", // replaced via `Sandbox.prototype.createPackage` summary: 'This is a pre-release version of this package!', version: '1.3.0-rc.1', git: 'www.github.com/fake-user/meteor', diff --git a/tools/tests/packages/package-for-show/package-with-deps.js b/tools/tests/packages/package-for-show/package-with-deps.js index 06b249fae4..bb4d6bd4cb 100644 --- a/tools/tests/packages/package-for-show/package-with-deps.js +++ b/tools/tests/packages/package-for-show/package-with-deps.js @@ -1,4 +1,5 @@ Package.describe({ + name: "~package-name~", // replaced via `Sandbox.prototype.createPackage` summary: 'This is a test package with dependencies', version: '1.2.0', git: 'www.github.com/meteor/meteor', diff --git a/tools/tests/packages/package-for-show/package-with-exports.js b/tools/tests/packages/package-for-show/package-with-exports.js index a04bc6585f..e114c247ee 100644 --- a/tools/tests/packages/package-for-show/package-with-exports.js +++ b/tools/tests/packages/package-for-show/package-with-exports.js @@ -1,4 +1,5 @@ Package.describe({ + name: "~package-name~", // replaced via `Sandbox.prototype.createPackage` summary: 'This is a test package', version: '1.0.1', git: 'www.github.com/meteor/meteor' diff --git a/tools/tests/packages/package-for-show/package-with-implies.js b/tools/tests/packages/package-for-show/package-with-implies.js index 4e224c9d53..1eea499851 100644 --- a/tools/tests/packages/package-for-show/package-with-implies.js +++ b/tools/tests/packages/package-for-show/package-with-implies.js @@ -1,4 +1,5 @@ Package.describe({ + name: "~package-name~", // replaced via `Sandbox.prototype.createPackage` summary: 'This is a test package', version: '1.2.1', git: 'www.github.com/meteor/meteor' diff --git a/tools/tests/packages/package-for-show/package.js b/tools/tests/packages/package-for-show/package.js index 16b365c0c4..af58e7a21c 100644 --- a/tools/tests/packages/package-for-show/package.js +++ b/tools/tests/packages/package-for-show/package.js @@ -1,4 +1,5 @@ Package.describe({ + name: "~package-name~", // replaced via `Sandbox.prototype.createPackage` summary: 'This is a test package', version: '0.9.9' }); diff --git a/tools/tests/packages/package-of-two-versions/package-version.js b/tools/tests/packages/package-of-two-versions/package-version.js index 62a51c590c..5fef58e2f4 100644 --- a/tools/tests/packages/package-of-two-versions/package-version.js +++ b/tools/tests/packages/package-of-two-versions/package-version.js @@ -1,4 +1,5 @@ Package.describe({ + name: "~package-name~", // replaced via `Sandbox.prototype.createPackage` summary: "Test package.", version: "~version~", documentation: null diff --git a/tools/tests/packages/package-of-two-versions/package.js b/tools/tests/packages/package-of-two-versions/package.js index 692220572a..1453043cf0 100644 --- a/tools/tests/packages/package-of-two-versions/package.js +++ b/tools/tests/packages/package-of-two-versions/package.js @@ -1,4 +1,5 @@ Package.describe({ + name: "~package-name~", // replaced via `Sandbox.prototype.createPackage` summary: "Test package.", version: "1.0.0", documentation: null diff --git a/tools/tests/packages/package-with-colons/package.js b/tools/tests/packages/package-with-colons/package.js index 450e562006..37941dcaec 100644 --- a/tools/tests/packages/package-with-colons/package.js +++ b/tools/tests/packages/package-with-colons/package.js @@ -1,4 +1,5 @@ Package.describe({ + name: "~package-name~", // replaced via `Sandbox.prototype.createPackage` summary: ' /* Fill me in! */ ', version: '1.0.19', git: ' /* Fill me in! */ ', diff --git a/tools/tests/packages/package-with-npm/package.js b/tools/tests/packages/package-with-npm/package.js index 6c5f9b2485..bb3992057f 100644 --- a/tools/tests/packages/package-with-npm/package.js +++ b/tools/tests/packages/package-with-npm/package.js @@ -1,4 +1,5 @@ Package.describe({ + name: "~package-name~", // replaced via `Sandbox.prototype.createPackage` summary: "Test package with a binary npm dependency", version: "1.0.0", documentation: null diff --git a/tools/tests/publish.js b/tools/tests/publish.js index c3c991b6b3..9ae90e65cd 100644 --- a/tools/tests/publish.js +++ b/tools/tests/publish.js @@ -16,14 +16,16 @@ selftest.define("create-publish-and-search", testUtils.login(s, username, password); var packageName = utils.randomToken(); var fullPackageName = username + ":" + packageName; + var fsPackageName = username + "_" + packageName; var githubUrl = "http://github.com/foo/bar"; var summary = "Package for test"; // Create a package that has a versionsFrom for a nonexistent release and see // that we throw on it. var noPack = fullPackageName + "2"; - s.createPackage(noPack, "package-of-two-versions"); - s.cd(noPack, function() { + var noPackDirName = fsPackageName + "2"; + s.createPackage(noPackDirName, noPack, "package-of-two-versions"); + s.cd(noPackDirName, function() { var packOpen = s.read("package.js"); packOpen = packOpen + "\nPackage.onUse(function(api) { \n" + "api.versionsFrom(\"THIS-RELEASE-DOES-NOT-EXIST@0.9\");\n" + @@ -40,7 +42,7 @@ selftest.define("create-publish-and-search", run.expectExit(0); run.match(fullPackageName); - s.cd(fullPackageName); + s.cd(fsPackageName); // set a github URL & summary in the package var packageJsContents = s.read("package.js"); @@ -77,14 +79,15 @@ selftest.define("create-publish-and-search", // name override. packageName = utils.randomToken(); var newPackageName = username + ":" + packageName; + var newPackageDirName = packageName; var minPack = " Package.describe({ " + "summary: 'Test package: " + packageName + "'," + "version: '1.0.1'," + "documentation: null," + "name: '" + newPackageName + "'});"; - s.createPackage(fullPackageName, "package-of-two-versions"); - s.cd(fullPackageName, function() { + s.createPackage(newPackageDirName, newPackageName, "package-of-two-versions"); + s.cd(newPackageDirName, function() { s.write("package.js", minPack); // If we manage to publish without the --create flag, that's probably an // indicator that we are reading the directory instead of the override, or, @@ -130,8 +133,8 @@ selftest.define("publish-one-arch", packageName = utils.randomToken(); fullPackageName = username + ":" + packageName; - s.createPackage(fullPackageName, "package-with-npm"); - s.cd(fullPackageName); + s.createPackage(packageName, fullPackageName, "package-with-npm"); + s.cd(packageName); run = s.run("publish", "--create"); run.waitSecs(15); @@ -155,9 +158,9 @@ selftest.define("list-with-a-new-version", var run; // Now, create a package. - s.createPackage(fullPackageName, "package-of-two-versions"); + s.createPackage(packageName, fullPackageName, "package-of-two-versions"); // Publish the first version. - s.cd(fullPackageName, function () { + s.cd(packageName, function () { run = s.run("publish", "--create"); run.waitSecs(15); run.expectExit(0); @@ -182,7 +185,7 @@ selftest.define("list-with-a-new-version", }); // Change the package to increment version and publish the new package. - s.cd(fullPackageName, function () { + s.cd(packageName, function () { setPackageVersion(s, "1.0.1"); run = s.run("publish"); run.waitSecs(15); @@ -235,7 +238,7 @@ selftest.define("list-with-a-new-version", }); // Now publish an 1.0.4-rc4. - s.cd(fullPackageName, function () { + s.cd(packageName, function () { setPackageVersion(s, "1.0.4-rc.4"); run = s.run("publish"); run.waitSecs(15); @@ -307,9 +310,9 @@ selftest.define("do-not-update-to-rcs", var run; // Now, create a package. - s.createPackage(fullPackageName, "package-of-two-versions"); + s.createPackage(packageName, fullPackageName, "package-of-two-versions"); // Publish the first version. - s.cd(fullPackageName, function () { + s.cd(packageName, function () { run = s.run("publish", "--create"); run.waitSecs(120); run.match("Published " + fullPackageName + "@"); @@ -323,7 +326,7 @@ selftest.define("do-not-update-to-rcs", }); // Now publish an 1.0.4-rc.3. - s.cd(fullPackageName, function () { + s.cd(packageName, function () { setPackageVersion(s, "1.0.4-rc.3"); run = s.run("publish"); run.waitSecs(15); @@ -386,7 +389,7 @@ selftest.define("do-not-update-to-rcs", }); // Now publish an 1.0.4-rc.4. - s.cd(fullPackageName, function () { + s.cd(packageName, function () { setPackageVersion(s, "1.0.4-rc.4"); run = s.run("publish"); run.waitSecs(15); @@ -424,15 +427,15 @@ selftest.define("package-depends-on-either-version", // First, we publish fullPackageNameDep at 1.0.0 and publish it.. var fullPackageNameDep = username + ":" + packageNameDependent; - s.createPackage(fullPackageNameDep, "package-of-two-versions"); - s.cd(fullPackageNameDep, function() { + s.createPackage(packageNameDependent, fullPackageNameDep, "package-of-two-versions"); + s.cd(packageNameDependent, function() { run = s.run("publish", "--create"); run.waitSecs(20); run.match("Published"); }); // Then, we publish fullPackageNameDep at 2.0.0 - s.cd(fullPackageNameDep, function() { + s.cd(packageNameDependent, function() { setPackageVersion(s, "2.0.0"); run = s.run("publish"); run.waitSecs(20); @@ -442,8 +445,8 @@ selftest.define("package-depends-on-either-version", // Then, we make another one that depends on either version and publish. var another = utils.randomToken(); var fullPackageAnother = username + ":" + another; - s.createPackage(fullPackageAnother, "package-of-two-versions"); - s.cd(fullPackageAnother, function() { + s.createPackage(another, fullPackageAnother, "package-of-two-versions"); + s.cd(another, function() { var packOpen = s.read("package.js"); packOpen = packOpen + "\nPackage.onUse(function(api) { \n" + "api.use(\"" + fullPackageNameDep +