]> gerrit.simantics Code Review - simantics/district.git/blobdiff - org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/test/tap/outdated-local.js
Adding integrated tile server
[simantics/district.git] / org.simantics.maps.server / node / node-v4.8.0-win-x64 / node_modules / npm / test / tap / outdated-local.js
diff --git a/org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/test/tap/outdated-local.js b/org.simantics.maps.server/node/node-v4.8.0-win-x64/node_modules/npm/test/tap/outdated-local.js
new file mode 100644 (file)
index 0000000..f9b8af4
--- /dev/null
@@ -0,0 +1,194 @@
+var common = require('../common-tap.js')
+var test = require('tap').test
+var npm = require('../../')
+var rimraf = require('rimraf')
+var path = require('path')
+var mr = require('npm-registry-mock')
+var osenv = require('osenv')
+var mkdirp = require('mkdirp')
+var fs = require('graceful-fs')
+
+var pkg = path.resolve(__dirname, 'outdated-local')
+var pkgLocal = path.resolve(pkg, 'local-module')
+var pkgScopedLocal = path.resolve(pkg, 'another-local-module')
+var pkgLocalUnderscore = path.resolve(pkg, 'underscore')
+var pkgLocalOptimist = path.resolve(pkg, 'optimist')
+
+var pjParent = JSON.stringify({
+  name: 'outdated-local',
+  version: '1.0.0',
+  dependencies: {
+    'local-module': 'file:local-module', // updated locally, not on repo
+    '@scoped/another-local-module': 'file:another-local-module', // updated locally, scoped, not on repo
+    'underscore': 'file:underscore', // updated locally, updated but lesser version on repo
+    'optimist': 'file:optimist' // updated locally, updated and greater version on repo
+  }
+}, null, 2) + '\n'
+
+var pjLocal = JSON.stringify({
+  name: 'local-module',
+  version: '1.0.0'
+}, null, 2) + '\n'
+
+var pjLocalBumped = JSON.stringify({
+  name: 'local-module',
+  version: '1.1.0'
+}, null, 2) + '\n'
+
+var pjScopedLocal = JSON.stringify({
+  name: '@scoped/another-local-module',
+  version: '1.0.0'
+}, null, 2) + '\n'
+
+var pjScopedLocalBumped = JSON.stringify({
+  name: '@scoped/another-local-module',
+  version: '1.2.0'
+}, null, 2) + '\n'
+
+var pjLocalUnderscore = JSON.stringify({
+  name: 'underscore',
+  version: '1.3.1'
+}, null, 2) + '\n'
+
+var pjLocalUnderscoreBumped = JSON.stringify({
+  name: 'underscore',
+  version: '1.6.1'
+}, null, 2) + '\n'
+
+var pjLocalOptimist = JSON.stringify({
+  name: 'optimist',
+  version: '0.4.0'
+}, null, 2) + '\n'
+
+var pjLocalOptimistBumped = JSON.stringify({
+  name: 'optimist',
+  version: '0.5.0'
+}, null, 2) + '\n'
+
+
+function mocks (server) {
+  server.get('/local-module')
+    .reply(404)
+  server.get('/@scoped%2fanother-local-module')
+    .reply(404)
+}
+
+test('setup', function (t) {
+  bootstrap()
+  t.end()
+})
+
+test('outdated support local modules', function (t) {
+  t.plan(4)
+  process.chdir(pkg)
+  mr({ port: common.port, plugin: mocks }, function (err, s) {
+    t.ifError(err, 'mock registry started without problems')
+
+    function verify (actual, expected) {
+      for (var i = 0; i < expected.length; i++) {
+        var current = expected[i]
+
+        var found = false
+        for (var j = 0; j < actual.length; j++) {
+          var target = actual[j]
+
+          var k
+          for (k = 0; k < current.length; k++) {
+            if (current[k] !== target[k]) break
+          }
+          if (k === current.length) found = true
+        }
+
+        if (!found) return false
+      }
+
+      return true
+    }
+
+    npm.load(
+      {
+        loglevel: 'silent',
+        parseable: true,
+        registry: common.registry
+      },
+      function () {
+        npm.install('.', function (err) {
+          t.ifError(err, 'install success')
+          bumpLocalModules()
+          npm.outdated(function (er, d) {
+            t.ifError(er, 'outdated success')
+            t.ok(verify(d, [
+              [
+                path.resolve(__dirname, 'outdated-local'),
+                'local-module',
+                '1.0.0',
+                '1.1.0',
+                '1.1.0',
+                'file:local-module'
+              ],
+              [
+                path.resolve(__dirname, 'outdated-local'),
+                '@scoped/another-local-module',
+                '1.0.0',
+                '1.2.0',
+                '1.2.0',
+                'file:another-local-module'
+              ],
+              [
+                path.resolve(__dirname, 'outdated-local'),
+                'underscore',
+                '1.3.1',
+                '1.6.1',
+                '1.5.1',
+                'file:underscore'
+              ],
+              [
+                path.resolve(__dirname, 'outdated-local'),
+                'optimist',
+                '0.4.0',
+                '0.6.0',
+                '0.6.0',
+                'optimist@0.6.0'
+              ]
+            ]), 'got expected outdated output')
+            s.close()
+          })
+        })
+      }
+    )
+  })
+})
+
+test('cleanup', function (t) {
+  cleanup()
+  t.end()
+})
+
+function bootstrap () {
+  mkdirp.sync(pkg)
+  fs.writeFileSync(path.resolve(pkg, 'package.json'), pjParent)
+
+  mkdirp.sync(pkgLocal)
+  fs.writeFileSync(path.resolve(pkgLocal, 'package.json'), pjLocal)
+
+  mkdirp.sync(pkgScopedLocal)
+  fs.writeFileSync(path.resolve(pkgScopedLocal, 'package.json'), pjScopedLocal)
+
+  mkdirp.sync(pkgLocalUnderscore)
+  fs.writeFileSync(path.resolve(pkgLocalUnderscore, 'package.json'), pjLocalUnderscore)
+
+  mkdirp.sync(pkgLocalOptimist)
+  fs.writeFileSync(path.resolve(pkgLocalOptimist, 'package.json'), pjLocalOptimist)
+}
+
+function bumpLocalModules () {
+  fs.writeFileSync(path.resolve(pkgLocal, 'package.json'), pjLocalBumped)
+  fs.writeFileSync(path.resolve(pkgScopedLocal, 'package.json'), pjScopedLocalBumped)
+  fs.writeFileSync(path.resolve(pkgLocalUnderscore, 'package.json'), pjLocalUnderscoreBumped)
+  fs.writeFileSync(path.resolve(pkgLocalOptimist, 'package.json'), pjLocalOptimistBumped)
+}
+
+function cleanup () {
+  process.chdir(osenv.tmpdir())
+  rimraf.sync(pkg)
+}