1 var common = require("../common-tap.js")
2 var test = require("tap").test
3 var cacheFile = require("npm-cache-filename")
4 var npm = require("../../")
5 var mkdirp = require("mkdirp")
6 var rimraf = require("rimraf")
7 var path = require("path")
8 var mr = require("npm-registry-mock")
9 var fs = require("graceful-fs")
13 var URI = "https://npm.registry:8043/rewrite"
17 var TOKEN = "lolbutts"
27 var PKG_DIR = path.resolve(__dirname, "get-basic")
28 var CACHE_DIR = path.resolve(PKG_DIR, "cache")
30 name : "@bigco/sample",
34 // mock server reference
39 "/@bigco%2fsample/1.2.3" : [200, BIGCO_SAMPLE]
43 var mapper = cacheFile(CACHE_DIR)
45 function getCachePath (uri) {
46 return path.join(mapper(uri), ".cache.json")
49 test("setup", function (t) {
50 mkdirp.sync(CACHE_DIR)
52 mr({port: common.port, mocks: mocks}, function (er, s) {
54 npm.load({cache: CACHE_DIR, registry: common.registry}, function (er) {
62 test("get call contract", function (t) {
63 t.throws(function () {
64 npm.registry.get(undefined, PARAMS, nop)
67 t.throws(function () {
68 npm.registry.get([], PARAMS, nop)
69 }, "requires URI to be a string")
71 t.throws(function () {
72 npm.registry.get(URI, undefined, nop)
73 }, "requires params object")
75 t.throws(function () {
76 npm.registry.get(URI, "", nop)
77 }, "params must be object")
79 t.throws(function () {
80 npm.registry.get(URI, PARAMS, undefined)
81 }, "requires callback")
83 t.throws(function () {
84 npm.registry.get(URI, PARAMS, "callback")
85 }, "callback must be function")
90 test("basic request", function (t) {
93 var versioned = common.registry + "/underscore/1.3.3"
94 npm.registry.get(versioned, PARAMS, function (er, data) {
95 t.ifError(er, "loaded specified version underscore data")
96 t.equal(data.version, "1.3.3")
97 fs.stat(getCachePath(versioned), function (er) {
98 t.ifError(er, "underscore 1.3.3 cache data written")
102 var rollup = common.registry + "/underscore"
103 npm.registry.get(rollup, PARAMS, function (er, data) {
104 t.ifError(er, "loaded all metadata")
105 t.deepEqual(data.name, "underscore")
106 fs.stat(getCachePath(rollup), function (er) {
107 t.ifError(er, "underscore rollup cache data written")
111 var scoped = common.registry + "/@bigco%2fsample/1.2.3"
112 npm.registry.get(scoped, PARAMS, function (er, data) {
113 t.ifError(er, "loaded all metadata")
114 t.equal(data.name, "@bigco/sample")
115 fs.stat(getCachePath(scoped), function (er) {
116 t.ifError(er, "scoped cache data written")
121 test("cleanup", function (t) {