Arlolra has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/215790

Change subject: Fail earlier if we're given a bogus prefix
......................................................................

Fail earlier if we're given a bogus prefix

 * Try `echo 'hi' | node tests/parse.js --prefix ohno`

Change-Id: I8e9900d810ce0a9be217975fa9af086412f88138
---
M lib/mediawiki.parser.environment.js
M tests/parse.js
2 files changed, 17 insertions(+), 9 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/services/parsoid 
refs/changes/90/215790/1

diff --git a/lib/mediawiki.parser.environment.js 
b/lib/mediawiki.parser.environment.js
index 9f7d177..69f6e84 100644
--- a/lib/mediawiki.parser.environment.js
+++ b/lib/mediawiki.parser.environment.js
@@ -75,6 +75,7 @@
 
        if ( !wikiConfig ) {
                // Local things, per-wiki
+               console.assert(parsoidConfig.mwApiMap.has(options.prefix));
                wikiConfig = new WikiConfig(
                        this, null, options.prefix,
                        parsoidConfig.mwApiMap.get(options.prefix).uri,
@@ -239,15 +240,20 @@
  * @param {MWParserEnvironment} cb.env The finished environment object
  */
 MWParserEnvironment.getParserEnv = function(parsoidConfig, wikiConfig, 
options, cb) {
-       options = options || {};
-       var env = new MWParserEnvironment(parsoidConfig, wikiConfig, options);
        // Get that wiki's config
-       return env.switchToConfig(options.prefix).then(function() {
-               if (!options.pageName) {
-                       env.initializeForPageName(env.conf.wiki.mainpage, true);
+       return Promise.method(function() {
+               options = options || {};
+               if (!options.prefix || 
!parsoidConfig.mwApiMap.has(options.prefix)) {
+                       throw new Error('No API URI available for prefix: ' + 
options.prefix);
                }
-               return env;
-       }).nodify(cb);
+               var env = new MWParserEnvironment(parsoidConfig, wikiConfig, 
options);
+               return env.switchToConfig(options.prefix).then(function() {
+                       if (!options.pageName) {
+                               
env.initializeForPageName(env.conf.wiki.mainpage, true);
+                       }
+                       return env;
+               });
+       })().nodify(cb);
 };
 
 /**
@@ -286,7 +292,7 @@
        var uri;
        var getConfigPromise = Promise.method(function() {
                if (!prefix || !parsoid.mwApiMap.has(prefix)) {
-                       throw new Error('No API URI available for: ' + prefix);
+                       throw new Error('No API URI available for prefix: ' + 
prefix);
                } else {
                        uri = parsoid.mwApiMap.get(prefix).uri;
                        if (env.confCache[prefix]) {
diff --git a/tests/parse.js b/tests/parse.js
index dd146c1..22626d6 100755
--- a/tests/parse.js
+++ b/tests/parse.js
@@ -330,6 +330,8 @@
                        if (res.trailingNL && stdout.isTTY) {
                                stdout.write('\n');
                        }
-               }).done();
+               }).catch(function(err) {
+                       console.error(err.stack ? err.stack : err);
+               });
        }());
 }

-- 
To view, visit https://gerrit.wikimedia.org/r/215790
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I8e9900d810ce0a9be217975fa9af086412f88138
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/services/parsoid
Gerrit-Branch: master
Gerrit-Owner: Arlolra <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to