GWicke has uploaded a new change for review.

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

Change subject: Update restbase to f05b66f
......................................................................

Update restbase to f05b66f

List of changes:
xxxxxxx Update node module dependencies

Change-Id: I75495f9d215d7c5eedf7cd35a44b59505b6b5667
---
M node_modules/content-type/package.json
M node_modules/hyperswitch/node_modules/json-stable-stringify/package.json
M node_modules/hyperswitch/node_modules/swagger-ui/package.json
M node_modules/json-stable-stringify/package.json
M 
node_modules/jsonwebtoken/node_modules/jws/node_modules/base64url/node_modules/concat-stream/node_modules/readable-stream/node_modules/core-util-is/package.json
M 
node_modules/jsonwebtoken/node_modules/jws/node_modules/base64url/node_modules/concat-stream/node_modules/readable-stream/node_modules/string_decoder/package.json
M node_modules/restbase-mod-table-cassandra/lib/index.js
M 
node_modules/restbase-mod-table-cassandra/node_modules/cassandra-driver/package.json
M 
node_modules/restbase-mod-table-cassandra/node_modules/json-stable-stringify/package.json
M 
node_modules/restbase-mod-table-cassandra/node_modules/restbase-mod-table-spec/node_modules/routeswitch/node_modules/async/package.json
M node_modules/restbase-mod-table-cassandra/package.json
A node_modules/service-runner/node_modules/hot-shots/CHANGES.md~
M 
node_modules/service-runner/node_modules/limitation/node_modules/kad/package.json
M 
node_modules/service-runner/node_modules/limitation/node_modules/readable-stream/node_modules/inherits/package.json
M 
node_modules/service-runner/node_modules/yargs/node_modules/find-up/package.json
A 
node_modules/service-runner/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/normalize-package-data/test/normalize.js~
16 files changed, 319 insertions(+), 27 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/services/restbase/deploy 
refs/changes/92/292292/1

diff --git a/node_modules/content-type/package.json 
b/node_modules/content-type/package.json
index d39ce79..e178aa2 100644
--- a/node_modules/content-type/package.json
+++ b/node_modules/content-type/package.json
@@ -44,7 +44,7 @@
   },
   "homepage": "https://github.com/jshttp/content-type#readme";,
   "_id": "[email protected]",
-  "_shasum": "e63477577a966eb13976563ae81c8a6943b1c019",
+  "_shasum": "19cf3b5f4f4218590a5f89ac87ba8d94465fbad4",
   "_from": "git+https://github.com/wikimedia/content-type.git#master";,
   "_resolved": 
"git+https://github.com/wikimedia/content-type.git#47b2632d0a2ee79a7d67268e2f6621becd95d05b";
 }
diff --git 
a/node_modules/hyperswitch/node_modules/json-stable-stringify/package.json 
b/node_modules/hyperswitch/node_modules/json-stable-stringify/package.json
index 6dd54d9..11abd1a 100644
--- a/node_modules/hyperswitch/node_modules/json-stable-stringify/package.json
+++ b/node_modules/hyperswitch/node_modules/json-stable-stringify/package.json
@@ -50,7 +50,7 @@
     "url": "https://github.com/substack/json-stable-stringify/issues";
   },
   "_id": "[email protected]",
-  "_shasum": "b40600c78c7d73d00aaa38719a5f8509ec95ad8d",
+  "_shasum": "557e6749ba3ef6e070f845044a26c4d3ce3bace6",
   "_from": "git+https://github.com/wikimedia/json-stable-stringify.git#master";,
   "_resolved": 
"git+https://github.com/wikimedia/json-stable-stringify.git#c05178e4dfc3834017f017732934c1c52ba3dd8f";
 }
diff --git a/node_modules/hyperswitch/node_modules/swagger-ui/package.json 
b/node_modules/hyperswitch/node_modules/swagger-ui/package.json
index 32cd9ed..441a066 100644
--- a/node_modules/hyperswitch/node_modules/swagger-ui/package.json
+++ b/node_modules/hyperswitch/node_modules/swagger-ui/package.json
@@ -60,7 +60,7 @@
     "url": "https://github.com/swagger-api/swagger-ui/issues";
   },
   "_id": "[email protected]",
-  "_shasum": "a0ead9e306316a198b8bbc4e9d489aa0e1c1cc20",
+  "_shasum": "22fffd49f3722b827ca1678efd9a0dac16c6023b",
   "_from": "git+https://github.com/wikimedia/swagger-ui.git#master";,
   "_resolved": 
"git+https://github.com/wikimedia/swagger-ui.git#7bef30a93a3b81c55cb95d3ce9e0f9f53d5d8262";
 }
diff --git a/node_modules/json-stable-stringify/package.json 
b/node_modules/json-stable-stringify/package.json
index d823e27..2d5905a 100644
--- a/node_modules/json-stable-stringify/package.json
+++ b/node_modules/json-stable-stringify/package.json
@@ -50,7 +50,7 @@
     "url": "https://github.com/substack/json-stable-stringify/issues";
   },
   "_id": "[email protected]",
-  "_shasum": "db6540972f02b7ee782660ad58c5c36c241f9f34",
+  "_shasum": "9144642a745e113e626d46363cb14bc01cd6bce2",
   "_from": "git+https://github.com/wikimedia/json-stable-stringify.git#master";,
   "_resolved": 
"git+https://github.com/wikimedia/json-stable-stringify.git#c05178e4dfc3834017f017732934c1c52ba3dd8f";
 }
diff --git 
a/node_modules/jsonwebtoken/node_modules/jws/node_modules/base64url/node_modules/concat-stream/node_modules/readable-stream/node_modules/core-util-is/package.json
 
b/node_modules/jsonwebtoken/node_modules/jws/node_modules/base64url/node_modules/concat-stream/node_modules/readable-stream/node_modules/core-util-is/package.json
index f65d83f..19fb859 100644
--- 
a/node_modules/jsonwebtoken/node_modules/jws/node_modules/base64url/node_modules/concat-stream/node_modules/readable-stream/node_modules/core-util-is/package.json
+++ 
b/node_modules/jsonwebtoken/node_modules/jws/node_modules/base64url/node_modules/concat-stream/node_modules/readable-stream/node_modules/core-util-is/package.json
@@ -55,5 +55,6 @@
     }
   ],
   "directories": {},
-  "_resolved": 
"https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz";
+  "_resolved": 
"https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz";,
+  "readme": "ERROR: No README data found!"
 }
diff --git 
a/node_modules/jsonwebtoken/node_modules/jws/node_modules/base64url/node_modules/concat-stream/node_modules/readable-stream/node_modules/string_decoder/package.json
 
b/node_modules/jsonwebtoken/node_modules/jws/node_modules/base64url/node_modules/concat-stream/node_modules/readable-stream/node_modules/string_decoder/package.json
index fdf923e..8e8b77d 100644
--- 
a/node_modules/jsonwebtoken/node_modules/jws/node_modules/base64url/node_modules/concat-stream/node_modules/readable-stream/node_modules/string_decoder/package.json
+++ 
b/node_modules/jsonwebtoken/node_modules/jws/node_modules/base64url/node_modules/concat-stream/node_modules/readable-stream/node_modules/string_decoder/package.json
@@ -49,5 +49,6 @@
     "tarball": 
"https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz";
   },
   "directories": {},
-  "_resolved": 
"https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz";
+  "_resolved": 
"https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz";,
+  "readme": "ERROR: No README data found!"
 }
diff --git a/node_modules/restbase-mod-table-cassandra/lib/index.js 
b/node_modules/restbase-mod-table-cassandra/lib/index.js
index 6d92e2b..6a3ffc5 100644
--- a/node_modules/restbase-mod-table-cassandra/lib/index.js
+++ b/node_modules/restbase-mod-table-cassandra/lib/index.js
@@ -71,7 +71,8 @@
 
     // Increase the schema agreement wait period from the default of 10s
     clientOpts.protocolOptions = {
-        maxSchemaAgreementWaitSeconds: 30
+        maxSchemaAgreementWaitSeconds: 30,
+        maxProtocolVersion: 3
     };
 
     if (conf.username && conf.password) {
diff --git 
a/node_modules/restbase-mod-table-cassandra/node_modules/cassandra-driver/package.json
 
b/node_modules/restbase-mod-table-cassandra/node_modules/cassandra-driver/package.json
index 86d61a6..1f032e8 100644
--- 
a/node_modules/restbase-mod-table-cassandra/node_modules/cassandra-driver/package.json
+++ 
b/node_modules/restbase-mod-table-cassandra/node_modules/cassandra-driver/package.json
@@ -50,7 +50,7 @@
   "readmeFilename": "README.md",
   "homepage": "https://github.com/datastax/nodejs-driver#readme";,
   "_id": "[email protected]",
-  "_shasum": "d7248bdeaba02318a524a6d6c2ee40fa94fcf889",
+  "_shasum": "30d5de4185334f7b968896a67e92b8283881be46",
   "_from": "git+https://github.com/wikimedia/nodejs-driver.git#neo-async";,
   "_resolved": 
"git+https://github.com/wikimedia/nodejs-driver.git#b2ac1407506c6c369341f0e1e2a567c799afef5e";
 }
diff --git 
a/node_modules/restbase-mod-table-cassandra/node_modules/json-stable-stringify/package.json
 
b/node_modules/restbase-mod-table-cassandra/node_modules/json-stable-stringify/package.json
index 6dd54d9..11abd1a 100644
--- 
a/node_modules/restbase-mod-table-cassandra/node_modules/json-stable-stringify/package.json
+++ 
b/node_modules/restbase-mod-table-cassandra/node_modules/json-stable-stringify/package.json
@@ -50,7 +50,7 @@
     "url": "https://github.com/substack/json-stable-stringify/issues";
   },
   "_id": "[email protected]",
-  "_shasum": "b40600c78c7d73d00aaa38719a5f8509ec95ad8d",
+  "_shasum": "557e6749ba3ef6e070f845044a26c4d3ce3bace6",
   "_from": "git+https://github.com/wikimedia/json-stable-stringify.git#master";,
   "_resolved": 
"git+https://github.com/wikimedia/json-stable-stringify.git#c05178e4dfc3834017f017732934c1c52ba3dd8f";
 }
diff --git 
a/node_modules/restbase-mod-table-cassandra/node_modules/restbase-mod-table-spec/node_modules/routeswitch/node_modules/async/package.json
 
b/node_modules/restbase-mod-table-cassandra/node_modules/restbase-mod-table-spec/node_modules/routeswitch/node_modules/async/package.json
index 5d71bbf..04ad568 100644
--- 
a/node_modules/restbase-mod-table-cassandra/node_modules/restbase-mod-table-spec/node_modules/routeswitch/node_modules/async/package.json
+++ 
b/node_modules/restbase-mod-table-cassandra/node_modules/restbase-mod-table-spec/node_modules/routeswitch/node_modules/async/package.json
@@ -79,6 +79,5 @@
     "tarball": "https://registry.npmjs.org/async/-/async-0.9.2.tgz";
   },
   "directories": {},
-  "_resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz";,
-  "readme": "ERROR: No README data found!"
+  "_resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz";
 }
diff --git a/node_modules/restbase-mod-table-cassandra/package.json 
b/node_modules/restbase-mod-table-cassandra/package.json
index 6cb031b..b173638 100644
--- a/node_modules/restbase-mod-table-cassandra/package.json
+++ b/node_modules/restbase-mod-table-cassandra/package.json
@@ -1,7 +1,7 @@
 {
   "name": "restbase-mod-table-cassandra",
   "description": "RESTBase table storage on Cassandra",
-  "version": "0.9.1",
+  "version": "0.9.2",
   "license": "Apache-2.0",
   "dependencies": {
     "bluebird": "^3.1.1",
@@ -31,12 +31,12 @@
     "mocha-lcov-reporter": "^1.0.0",
     "preq": "^0.4.7"
   },
-  "gitHead": "b934b0d07876654ecfbacb6d6dcfecf2f59a1c1a",
+  "gitHead": "47adc352c1e6f5e6f81842d32019808f78b646c0",
   "bugs": {
     "url": "https://github.com/wikimedia/restbase-mod-table-cassandra/issues";
   },
-  "_id": "[email protected]",
-  "_shasum": "d58783110ce02512a8273d89c1a82d8468f937af",
+  "_id": "[email protected]",
+  "_shasum": "b4984066eba38bcc0e810d1c21f409cbb5ff8afe",
   "_from": "restbase-mod-table-cassandra@>=0.9.1 <0.10.0",
   "_npmVersion": "1.4.21",
   "_npmUser": {
@@ -62,13 +62,13 @@
     }
   ],
   "dist": {
-    "shasum": "d58783110ce02512a8273d89c1a82d8468f937af",
-    "tarball": 
"https://registry.npmjs.org/restbase-mod-table-cassandra/-/restbase-mod-table-cassandra-0.9.1.tgz";
+    "shasum": "b4984066eba38bcc0e810d1c21f409cbb5ff8afe",
+    "tarball": 
"https://registry.npmjs.org/restbase-mod-table-cassandra/-/restbase-mod-table-cassandra-0.9.2.tgz";
   },
   "_npmOperationalInternal": {
     "host": "packages-12-west.internal.npmjs.com",
-    "tmp": 
"tmp/restbase-mod-table-cassandra-0.9.1.tgz_1459366669605_0.018466916866600513"
+    "tmp": 
"tmp/restbase-mod-table-cassandra-0.9.2.tgz_1464819276053_0.4825001859571785"
   },
   "directories": {},
-  "_resolved": 
"https://registry.npmjs.org/restbase-mod-table-cassandra/-/restbase-mod-table-cassandra-0.9.1.tgz";
+  "_resolved": 
"https://registry.npmjs.org/restbase-mod-table-cassandra/-/restbase-mod-table-cassandra-0.9.2.tgz";
 }
diff --git a/node_modules/service-runner/node_modules/hot-shots/CHANGES.md~ 
b/node_modules/service-runner/node_modules/hot-shots/CHANGES.md~
new file mode 100644
index 0000000..a8a5829
--- /dev/null
+++ b/node_modules/service-runner/node_modules/hot-shots/CHANGES.md~
@@ -0,0 +1,40 @@
+CHANGELOG
+=========
+
+## HEAD (Unreleased)
+none
+
+--------------------
+
+## 2.3.1 (2015-1-17)
+* @Pchelolo Ensure messages not larger then maxBufferSize
+
+## 2.3.0 (2015-1-17)
+* @bdeitte Fix increment(name, 0) to send a 0 count instead of 1
+* @bdeitte Flush the queue when needed on close()
+
+## 2.2.0 (2015-1-10)
+* @bdeitte Document and expand on close API
+* @bdeitte Catch more error cases for callbacks
+
+## 2.1.2 (2015-12-9)
+* @bdeitte Even more doc updates
+* @mmoulton Fix multiple tags with Telegraf
+
+## 2.1.1 (2015-12-9)
+* @bdeitte Doc updates
+
+## 2.1.0 (2015-12-9)
+* @mmoulton Add options.telegraf to enable support for Telegraf's StatsD line 
protocol format
+* @mmoulton Ensure message callback is sent in buffered case, even when we 
just buffer.
+
+## 2.0.0 (2015-10-22)
+* @jjofseattle Add options.maxBufferSize and optinons.bufferFlushInterval
+* @bdeitte Change options.global_tags to options.globalTags for conistency
+
+## 1.0.2 (2015-09-25)
+* @ainsleyc Thrown error when cacheDNS flag fails to resolve DNS name
+
+## 1.0.1 (2015-09-24)
+* @bdeitte Add the event API used by DogStatsD
+* @sivy Start from the base of https://github.com/sivy/node-statsd
diff --git 
a/node_modules/service-runner/node_modules/limitation/node_modules/kad/package.json
 
b/node_modules/service-runner/node_modules/limitation/node_modules/kad/package.json
index 9a202a4..642f265 100644
--- 
a/node_modules/service-runner/node_modules/limitation/node_modules/kad/package.json
+++ 
b/node_modules/service-runner/node_modules/limitation/node_modules/kad/package.json
@@ -75,7 +75,7 @@
   },
   "homepage": "https://github.com/kadtools/kad#readme";,
   "_id": "[email protected]",
-  "_shasum": "18d25ff9e67a4fc5470c0892177aeadf40145ad5",
+  "_shasum": "d41c659eb28bcfa790663b5d7f20ed0a56e0f99a",
   "_from": "git+https://github.com/gwicke/kad.git#master";,
   "_resolved": 
"git+https://github.com/gwicke/kad.git#31449a27a289b6f0ecbeec193d8bac9db8b9f513";
 }
diff --git 
a/node_modules/service-runner/node_modules/limitation/node_modules/readable-stream/node_modules/inherits/package.json
 
b/node_modules/service-runner/node_modules/limitation/node_modules/readable-stream/node_modules/inherits/package.json
index 02af46a..67d2c29 100644
--- 
a/node_modules/service-runner/node_modules/limitation/node_modules/readable-stream/node_modules/inherits/package.json
+++ 
b/node_modules/service-runner/node_modules/limitation/node_modules/readable-stream/node_modules/inherits/package.json
@@ -16,7 +16,7 @@
   "browser": "./inherits_browser.js",
   "repository": {
     "type": "git",
-    "url": "git://github.com/isaacs/inherits.git"
+    "url": "git://github.com/isaacs/inherits"
   },
   "license": "ISC",
   "scripts": {
@@ -44,7 +44,5 @@
   ],
   "directories": {},
   "_shasum": "b17d08d326b4423e568eff719f91b0b1cbdf69f1",
-  "_resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz";,
-  "readme": "ERROR: No README data found!",
-  "homepage": "https://github.com/isaacs/inherits#readme";
+  "_resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz";
 }
diff --git 
a/node_modules/service-runner/node_modules/yargs/node_modules/find-up/package.json
 
b/node_modules/service-runner/node_modules/yargs/node_modules/find-up/package.json
index 9bdf8a2..f6864e8 100644
--- 
a/node_modules/service-runner/node_modules/yargs/node_modules/find-up/package.json
+++ 
b/node_modules/service-runner/node_modules/yargs/node_modules/find-up/package.json
@@ -5,7 +5,7 @@
   "license": "MIT",
   "repository": {
     "type": "git",
-    "url": "git+https://github.com/sindresorhus/find-up.git";
+    "url": "https://github.com/sindresorhus/find-up";
   },
   "author": {
     "name": "Sindre Sorhus",
@@ -80,6 +80,5 @@
     "tmp": "tmp/find-up-1.1.2.tgz_1457199955637_0.3445317060686648"
   },
   "directories": {},
-  "_resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz";,
-  "readme": "ERROR: No README data found!"
+  "_resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz";
 }
diff --git 
a/node_modules/service-runner/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/normalize-package-data/test/normalize.js~
 
b/node_modules/service-runner/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/normalize-package-data/test/normalize.js~
new file mode 100644
index 0000000..de6f1ce
--- /dev/null
+++ 
b/node_modules/service-runner/node_modules/yargs/node_modules/read-pkg-up/node_modules/read-pkg/node_modules/normalize-package-data/test/normalize.js~
@@ -0,0 +1,253 @@
+var tap = require("tap")
+var fs = require("fs")
+var path = require("path")
+
+var globals = Object.keys(global)
+
+var normalize = require("../lib/normalize")
+var warningMessages = require("../lib/warning_messages.json")
+var safeFormat = require("../lib/safe_format")
+
+var rpjPath = path.resolve(__dirname,"./fixtures/read-package-json.json")
+
+tap.test("normalize some package data", function(t) {
+  var packageData = require(rpjPath)
+  var warnings = []
+  normalize(packageData, function(warning) {
+    warnings.push(warning)
+  })
+  // there's no readme data in this particular object
+  t.equal( warnings.length, 1, "There's exactly one warning.")
+  fs.readFile(rpjPath, function(err, data) {
+    if(err) throw err
+    // Various changes have been made
+    t.notEqual(packageData, JSON.parse(data), "Output is different from 
input.")
+    t.end()
+  })
+})
+
+tap.test("runs without passing warning function", function(t) {
+  var packageData = require(rpjPath)
+  fs.readFile(rpjPath, function(err, data) {
+    if(err) throw err
+    normalize(JSON.parse(data))
+    t.ok(true, "If you read this, this means I'm still alive.")
+    t.end()
+  })
+})
+
+tap.test("empty object", function(t) {
+  var packageData = {}
+  var expect =
+    { name: '',
+      version: '',
+      readme: 'ERROR: No README data found!',
+      _id: '@' }
+
+  var warnings = []
+  function warn(m) {
+    warnings.push(m)
+  }
+  normalize(packageData, warn)
+  t.same(packageData, expect)
+  t.same(warnings, [
+    warningMessages.missingDescription,
+    warningMessages.missingRepository,
+    warningMessages.missingReadme,
+    warningMessages.missingLicense
+  ])
+  t.end()
+})
+
+tap.test("core module name", function(t) {
+  var warnings = []
+  function warn(m) {
+    warnings.push(m)
+  }
+  var a
+  normalize(a={
+    name: "http",
+    readme: "read yourself how about",
+    homepage: 123,
+    bugs: "what is this i don't even",
+    repository: "Hello."
+  }, warn)
+
+  var expect = [
+      safeFormat(warningMessages.conflictingName, 'http'),
+      warningMessages.nonEmailUrlBugsString,
+      warningMessages.emptyNormalizedBugs,
+      warningMessages.nonUrlHomepage,
+      warningMessages.missingLicense
+      ]
+  t.same(warnings, expect)
+  t.end()
+})
+
+tap.test("urls required", function(t) {
+  var warnings = []
+  function warn(w) {
+    warnings.push(w)
+  }
+  normalize({
+    bugs: {
+      url: "/1",
+      email: "not an email address"
+    }
+  }, warn)
+  var a
+  normalize(a={
+    readme: "read yourself how about",
+    homepage: 123,
+    bugs: "what is this i don't even",
+    repository: "Hello."
+  }, warn)
+
+  console.error(a)
+
+  var expect =
+    [ warningMessages.missingDescription,
+      warningMessages.missingRepository,
+      warningMessages.nonUrlBugsUrlField,
+      warningMessages.nonEmailBugsEmailField,
+      warningMessages.emptyNormalizedBugs,
+      warningMessages.missingReadme,
+      warningMessages.missingLicense,
+      warningMessages.nonEmailUrlBugsString,
+      warningMessages.emptyNormalizedBugs,
+      warningMessages.nonUrlHomepage,
+      warningMessages.missingLicense]
+  t.same(warnings, expect)
+  t.end()
+})
+
+tap.test("homepage field must start with a protocol.", function(t) {
+  var warnings = []
+  function warn(w) {
+    warnings.push(w)
+  }
+  var a
+  normalize(a={
+    homepage: 'example.org'
+  }, warn)
+
+  console.error(a)
+
+  var expect =
+    [ warningMessages.missingDescription,
+      warningMessages.missingRepository,
+      warningMessages.missingReadme,
+      warningMessages.missingProtocolHomepage,
+      warningMessages.missingLicense]
+  t.same(warnings, expect)
+  t.same(a.homepage, 'http://example.org')
+  t.end()
+})
+
+tap.test("license field should be a valid SPDX expression", function(t) {
+  var warnings = []
+  function warn(w) {
+    warnings.push(w)
+  }
+  var a
+  normalize(a={
+    license: 'Apache 2'
+  }, warn)
+
+  console.error(a)
+
+  var expect =
+    [ warningMessages.missingDescription,
+      warningMessages.missingRepository,
+      warningMessages.missingReadme,
+      warningMessages.invalidLicense]
+  t.same(warnings, expect)
+  t.end()
+})
+
+tap.test("gist bugs url", function(t) {
+  var d = {
+    repository: "[email protected]:123456.git"
+  }
+  normalize(d)
+  t.same(d.repository, { type: 'git', url: 
'git+ssh://[email protected]/123456.git' })
+  t.same(d.bugs, { url: 'https://gist.github.com/123456' })
+  t.end();
+});
+
+tap.test("singularize repositories", function(t) {
+  var d = {repositories:["[email protected]:123456.git"]}
+  normalize(d)
+  t.same(d.repository, { type: 'git', url: 
'git+ssh://[email protected]/123456.git' })
+  t.end()
+});
+
+tap.test("treat visionmedia/express as github repo", function(t) {
+  var d = {repository: {type: "git", url: "visionmedia/express"}}
+  normalize(d)
+  t.same(d.repository, { type: "git", url: 
"git+https://github.com/visionmedia/express.git"; })
+  t.end()
+});
+
+tap.test("treat isaacs/node-graceful-fs as github repo", function(t) {
+  var d = {repository: {type: "git", url: "isaacs/node-graceful-fs"}}
+  normalize(d)
+  t.same(d.repository, { type: "git", url: 
"git+https://github.com/isaacs/node-graceful-fs.git"; })
+  t.end()
+});
+
+tap.test("homepage field will set to github url if repository is a github 
repo", function(t) {
+  var a
+  normalize(a={
+    repository: { type: "git", url: 
"https://github.com/isaacs/node-graceful-fs"; }
+  })
+  t.same(a.homepage, 'https://github.com/isaacs/node-graceful-fs#readme')
+  t.end()
+})
+
+tap.test("homepage field will set to github gist url if repository is a gist", 
function(t) {
+  var a
+  normalize(a={
+    repository: { type: "git", url: "[email protected]:123456.git" }
+  })
+  t.same(a.homepage, 'https://gist.github.com/123456')
+  t.end()
+})
+
+tap.test("homepage field will set to github gist url if repository is a 
shorthand reference", function(t) {
+  var a
+  normalize(a={
+    repository: { type: "git", url: "sindresorhus/chalk" }
+  })
+  t.same(a.homepage, 'https://github.com/sindresorhus/chalk#readme')
+  t.end()
+})
+
+tap.test("don't mangle github shortcuts in dependencies", function(t) {
+  var d = {dependencies: {"node-graceful-fs": "isaacs/node-graceful-fs"}}
+  normalize(d)
+  t.same(d.dependencies, {"node-graceful-fs": "github:isaacs/node-graceful-fs" 
})
+  t.end()
+});
+
+tap.test("deprecation warning for array in dependencies fields", function(t) {
+  var a
+  var warnings = []
+  function warn(w) {
+    warnings.push(w)
+  }
+  normalize(a={
+    dependencies: [],
+    devDependencies: [],
+    optionalDependencies: []
+  }, warn)
+  
t.ok(~warnings.indexOf(safeFormat(warningMessages.deprecatedArrayDependencies, 
'dependencies')), "deprecation warning")
+  
t.ok(~warnings.indexOf(safeFormat(warningMessages.deprecatedArrayDependencies, 
'devDependencies')), "deprecation warning")
+  
t.ok(~warnings.indexOf(safeFormat(warningMessages.deprecatedArrayDependencies, 
'optionalDependencies')), "deprecation warning")
+  t.end()
+})
+
+tap.test('no new globals', function(t) {
+  t.same(Object.keys(global), globals)
+  t.end()
+})

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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I75495f9d215d7c5eedf7cd35a44b59505b6b5667
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/services/restbase/deploy
Gerrit-Branch: master
Gerrit-Owner: GWicke <[email protected]>

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

Reply via email to