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