diff options
author | Forrest L Norvell <forrest@npmjs.com> | 2015-03-25 22:41:44 +0300 |
---|---|---|
committer | Forrest L Norvell <forrest@npmjs.com> | 2015-03-25 22:41:44 +0300 |
commit | f35aa933e136228a89e3fcfdebe8c7cc4f1e7c00 (patch) | |
tree | 3207206d4ebd5c8d5c1986f215acd961292f6df6 /test | |
parent | c910399ecfd8db49fe4496dd26887765a8aed20f (diff) |
search: request correct URLs (fixes #7443)
Diffstat (limited to 'test')
-rw-r--r-- | test/tap/update-index.js | 226 |
1 files changed, 116 insertions, 110 deletions
diff --git a/test/tap/update-index.js b/test/tap/update-index.js index cf305900c..058626972 100644 --- a/test/tap/update-index.js +++ b/test/tap/update-index.js @@ -1,23 +1,28 @@ -var common = require("../common-tap.js") -var test = require("tap").test -var npm = require("../../") -var mkdirp = require("mkdirp") -var rimraf = require("rimraf") -var path = require("path") -var mr = require("npm-registry-mock") +var common = require('../common-tap.js') +var test = require('tap').test +var npm = require('../../') +var mkdirp = require('mkdirp') +var rimraf = require('rimraf') +var path = require('path') +var mr = require('npm-registry-mock') -var updateIndex = require("../../lib/cache/update-index.js") +var updateIndex = require('../../lib/cache/update-index.js') -var PKG_DIR = path.resolve(__dirname, "get-basic") -var CACHE_DIR = path.resolve(PKG_DIR, "cache") +var PKG_DIR = path.resolve(__dirname, 'get-basic') +var CACHE_DIR = path.resolve(PKG_DIR, 'cache') var server -function setup (t, mock) { +function setup (t, mock, extra) { mkdirp.sync(CACHE_DIR) mr({ port: common.port, plugin: mock }, function (er, s) { npm.load({ cache: CACHE_DIR, registry: common.registry }, function (err) { - t.ifError(err, "no error") + if (extra) { + Object.keys(extra).forEach(function (k) { + npm.config.set(k, extra[k], 'user') + }) + } + t.ifError(err, 'no error') server = s t.end() }) @@ -32,158 +37,159 @@ function cleanup (t) { }) } -test("setup basic", function (t) { +test('setup basic', function (t) { setup(t, mocks.basic) }) -test("request basic", function (t) { - updateIndex("http://localhost:1337/-/all", {}, function (er) { - t.ifError(er, "no error") +test('request basic', function (t) { + updateIndex(0, function (er) { + t.ifError(er, 'no error') t.end() }) }) -test("cleanup basic", cleanup) +test('cleanup basic', cleanup) -test("setup auth", function (t) { +test('setup auth', function (t) { setup(t, mocks.auth) }) -test("request auth failure", function (t) { - updateIndex("http://localhost:1337/-/all", {}, function (er) { - t.ok(er.code, "E401") - t.ok(/^unauthorized/.test(er.message), "unauthorized message") +test('request auth failure', function (t) { + updateIndex(0, function (er) { + t.equals(er.code, 'E401', 'gotta get that auth') + t.ok(/^unauthorized/.test(er.message), 'unauthorized message') t.end() }) }) -test("request auth success", function (t) { +test('cleanup auth failure', cleanup) + +test('setup auth', function (t) { // mimic as if alwaysAuth had been set - var params = { - auth: { - username: "bobby", - password: "tables", - alwaysAuth: true - } - } + setup(t, mocks.auth, { + _auth: new Buffer('bobby:tables').toString('base64'), + 'always-auth': true + }) +}) - updateIndex("http://localhost:1337/-/all", params, function (er) { - t.ifError(er, "no error") +test('request auth success', function (t) { + updateIndex(0, function (er) { + t.ifError(er, 'no error') t.end() }) }) -test("cleanup auth", cleanup) +test('cleanup auth', cleanup) var mocks = { basic: function (mock) { - mock.get("/-/all").reply(200, allMock) + mock.get('/-/all').reply(200, allMock) }, auth: function (mock) { - var littleBobbyTablesAuth = new Buffer("bobby:tables").toString("base64") - var auth = "Basic " + littleBobbyTablesAuth - mock.get("/-/all", { authorization: auth }).reply(200, allMock) - mock.get("/-/all").reply(401, { - error: "unauthorized", - reason: "You are not authorized to access this db." + var littleBobbyTablesAuth = new Buffer('bobby:tables').toString('base64') + var auth = 'Basic ' + littleBobbyTablesAuth + mock.get('/-/all', { authorization: auth }).reply(200, allMock) + mock.get('/-/all').reply(401, { + error: 'unauthorized', + reason: 'You are not authorized to access this db.' }) } } var allMock = { - "_updated": 1411727900+25, - "generator-frontcow": { - "name": "generator-frontcow", - "description": "f36b6a6123da50959741e2ce4d634f96ec668c56 This is a fake description to ensure we do not accidentally search the real npm registry or use some kind of cache", - "dist-tags": { - "latest": "0.1.19" + '_updated': 1411727900 + 25, + 'generator-frontcow': { + 'name': 'generator-frontcow', + 'description': 'f36b6a6123da50959741e2ce4d634f96ec668c56 This is a fake description to ensure we do not accidentally search the real npm registry or use some kind of cache', + 'dist-tags': { + 'latest': '0.1.19' }, - "maintainers": [ + 'maintainers': [ { - "name": "bcabanes", - "email": "contact@benjamincabanes.com" + 'name': 'bcabanes', + 'email': 'contact@benjamincabanes.com' } ], - "homepage": "https://github.com/bcabanes/generator-frontcow", - "keywords": [ - "sass", - "frontend", - "yeoman-generator", - "atomic", - "design", - "sass", - "foundation", - "foundation5", - "atomic design", - "bourbon", - "polyfill", - "font awesome" + 'homepage': 'https://github.com/bcabanes/generator-frontcow', + 'keywords': [ + 'sass', + 'frontend', + 'yeoman-generator', + 'atomic', + 'design', + 'sass', + 'foundation', + 'foundation5', + 'atomic design', + 'bourbon', + 'polyfill', + 'font awesome' ], - "repository": { - "type": "git", - "url": "https://github.com/bcabanes/generator-frontcow" + 'repository': { + 'type': 'git', + 'url': 'https://github.com/bcabanes/generator-frontcow' }, - "author": { - "name": "ben", - "email": "contact@benjamincabanes.com", - "url": "https://github.com/bcabanes" + 'author': { + 'name': 'ben', + 'email': 'contact@benjamincabanes.com', + 'url': 'https://github.com/bcabanes' }, - "bugs": { - "url": "https://github.com/bcabanes/generator-frontcow/issues" + 'bugs': { + 'url': 'https://github.com/bcabanes/generator-frontcow/issues' }, - "license": "MIT", - "readmeFilename": "README.md", - "time": { - "modified": "2014-10-03T02:26:18.406Z" + 'license': 'MIT', + 'readmeFilename': 'README.md', + 'time': { + 'modified': '2014-10-03T02:26:18.406Z' }, - "versions": { - "0.1.19": "latest" + 'versions': { + '0.1.19': 'latest' } }, - "marko": { - "name": "marko", - "description": "Marko is an extensible, streaming, asynchronous, high performance, HTML-based templating language that can be used in Node.js or in the browser.", - "dist-tags": { - "latest": "1.2.16" + 'marko': { + 'name': 'marko', + 'description': 'Marko is an extensible, streaming, asynchronous, high performance, HTML-based templating language that can be used in Node.js or in the browser.', + 'dist-tags': { + 'latest': '1.2.16' }, - "maintainers": [ + 'maintainers': [ { - "name": "pnidem", - "email": "pnidem@gmail.com" + 'name': 'pnidem', + 'email': 'pnidem@gmail.com' }, { - "name": "philidem", - "email": "phillip.idem@gmail.com" + 'name': 'philidem', + 'email': 'phillip.idem@gmail.com' } ], - "homepage": "https://github.com/raptorjs/marko", - "keywords": [ - "templating", - "template", - "async", - "streaming" + 'homepage': 'https://github.com/raptorjs/marko', + 'keywords': [ + 'templating', + 'template', + 'async', + 'streaming' ], - "repository": { - "type": "git", - "url": "https://github.com/raptorjs/marko.git" + 'repository': { + 'type': 'git', + 'url': 'https://github.com/raptorjs/marko.git' }, - "author": { - "name": "Patrick Steele-Idem", - "email": "pnidem@gmail.com" + 'author': { + 'name': 'Patrick Steele-Idem', + 'email': 'pnidem@gmail.com' }, - "bugs": { - "url": "https://github.com/raptorjs/marko/issues" + 'bugs': { + 'url': 'https://github.com/raptorjs/marko/issues' }, - "license": "Apache License v2.0", - "readmeFilename": "README.md", - "users": { - "pnidem": true + 'license': 'Apache License v2.0', + 'readmeFilename': 'README.md', + 'users': { + 'pnidem': true }, - "time": { - "modified": "2014-10-03T02:27:31.775Z" + 'time': { + 'modified': '2014-10-03T02:27:31.775Z' }, - "versions": { - "1.2.16": "latest" + 'versions': { + '1.2.16': 'latest' } } } |