aboutsummaryrefslogtreecommitdiff
path: root/deps/npm/test/tap/invalid-dep-version-filtering.js
diff options
context:
space:
mode:
Diffstat (limited to 'deps/npm/test/tap/invalid-dep-version-filtering.js')
-rw-r--r--deps/npm/test/tap/invalid-dep-version-filtering.js135
1 files changed, 135 insertions, 0 deletions
diff --git a/deps/npm/test/tap/invalid-dep-version-filtering.js b/deps/npm/test/tap/invalid-dep-version-filtering.js
new file mode 100644
index 0000000000..a4a872f54e
--- /dev/null
+++ b/deps/npm/test/tap/invalid-dep-version-filtering.js
@@ -0,0 +1,135 @@
+'use strict'
+var path = require('path')
+var test = require('tap').test
+var mr = require('npm-registry-mock')
+var common = require('../common-tap')
+var Tacks = require('tacks')
+var File = Tacks.File
+var Dir = Tacks.Dir
+
+var testdir = path.join(__dirname, path.basename(__filename, '.js'))
+var cachedir = path.join(testdir, 'cache')
+
+var fixture = new Tacks(Dir({
+ cache: Dir(),
+ node_modules: Dir(),
+ tarballs: Dir({
+ 'pkgA.tgz': File(new Buffer(
+ '1f8b0800000000000003edcfcf0a0221100670cf3ec5e0396cfcb703bd8d' +
+ '842cb5e4ca5a5da2776f5da153b78408fc5d3e6684e133f9e3e4c7b04f35' +
+ 'e539cf9135868883b5509206b725ea3a6f9c01a634598d8e48134365d0e0' +
+ 'fadebac827b77cf5cb5ae5db3bf52bf0ce3ff1e00022fa4b100710691abd' +
+ 'd895cd3d2cf934c7b25412250afee4bfaeda755dd735f40211b5bced0008' +
+ '0000',
+ 'hex'
+ )),
+ 'pkgB1.tgz': File(new Buffer(
+ '1f8b0800000000000003edcfc10a0221140550d77ec5c375d8d3d111fa1b' +
+ '0b196ac891b16913fd7be308adda2544f0cee6e25d3caec99f463f847daa' +
+ '292f798aac3144ec8d8192aeb75ba2aeef8ded8029ed8c46eb1c1a86aa43' +
+ 'bd76d87ac8274bbef9799df2ed9dfa1578e79f78700011fd35880388340e' +
+ '47b12bcd3dccf93cc5522a8912057ff25f4f258410d2d00b247d22080008' +
+ '0000',
+ 'hex'
+ ))
+ })
+}))
+
+var pkgAtgz = path.join(testdir, 'tarballs', 'pkgA.tgz')
+var pkgB1tgz = path.join(testdir, 'tarballs', 'pkgB1.tgz')
+
+var server
+
+var pkgA = {
+ name: 'pkg-a',
+ 'dist-tags': {
+ latest: '1.0.0'
+ },
+ versions: {
+ '1.0.0': {
+ name: 'pkg-a',
+ version: '1.0.0',
+ dependencies: {
+ 'pkg-b': '1.0.0'
+ },
+ dist: {
+ shasum: 'dc5471ce0439f0f47749bb01473cad4570cc7dc5',
+ tarball: common.registry + '/pkg-a/-/pkg-a-1.0.0.tgz'
+ }
+ }
+ }
+}
+
+var pkgB = {
+ name: 'pkg-b',
+ 'dist-tags': {
+ latest: '1.0.0'
+ },
+ versions: {
+ '1.0.0': {
+ name: 'pkg-b',
+ version: '1.0.0',
+ dist: {
+ shasum: '53031aa2cf774c0e841c6fdbbe54c13825cd5640',
+ tarball: common.registry + '/pkg-b/-/pkg-b-1.0.0.tgz'
+ }
+ },
+ '1.0.0rc1': {
+ name: 'pkg-b',
+ version: '1.0.0rc1',
+ dist: {
+ shasum: '7f4b1bf680e3a31113d77619b4dc7c3b4c7dc15c',
+ tarball: common.registry + '/pkg-b/-/pkg-b-1.0.0-rc1.tgz'
+ }
+ }
+ }
+}
+
+function setup () {
+ cleanup()
+ fixture.create(testdir)
+}
+function cleanup () {
+ fixture.remove(testdir)
+}
+
+test('setup', function (t) {
+ setup()
+ mr({ port: common.port, throwOnUnmatched: true }, function (err, s) {
+ t.ifError(err, 'registry mocked successfully')
+ server = s
+ t.end()
+ })
+})
+
+test('invalid versions should be ignored', function (t) {
+ server.get('/pkg-a').reply(200, pkgA)
+ server.get('/pkg-b').reply(200, pkgB)
+ server.get('/pkg-a/-/pkg-a-1.0.0.tgz').replyWithFile(200, pkgAtgz)
+ server.get('/pkg-b/-/pkg-b-1.0.0.tgz').replyWithFile(200, pkgB1tgz)
+
+ common.npm(
+ [
+ 'install',
+ '--cache', cachedir,
+ '--registry', common.registry,
+ '--fetch-retries=0',
+ 'pkg-a@1.0.0'
+ ],
+ {cwd: testdir},
+ function (err, code, stdout, stderr) {
+ if (err) throw err
+ t.equal(code, 0, 'install succeded')
+ t.comment(stdout.trim())
+ t.comment(stderr.trim())
+ server.done()
+ t.end()
+ }
+ )
+})
+
+test('cleanup', function (t) {
+ server.close()
+ cleanup()
+ t.end()
+})