diff --git a/test/GLOSSARY.md b/test/GLOSSARY.md new file mode 100644 index 0000000..623a0fd --- /dev/null +++ b/test/GLOSSARY.md @@ -0,0 +1,7 @@ +# GLOSSARY + +- `canonical package name`: is the combination of a `package name` with an `endpoint` (example: `github:components/jquery`). +- `endpoint`: is platform where packets are hosted (`npm` or `github`). +- `override` or `override file`: is a `package.json` override file. +- `package name`: is the name of a package at some endpoint (example: `components/jquery` from `github` endpoint or `d3` from `npm` endpoint). +- `registry entry`: is just the mapping represented in the `registry.json` (example: `"jquery": "github:components/jquery"`). \ No newline at end of file diff --git a/test/index.js b/test/index.js index dc596a6..ea0c813 100644 --- a/test/index.js +++ b/test/index.js @@ -3,7 +3,7 @@ var util = require('util'); var mout = require('mout'); var colors = require('colors/safe'); -var registries = { +var endpoints = { github: require('jspm-github'), npm: require('jspm-npm') }; @@ -14,8 +14,7 @@ var gray = colors.gray; var log = require('./lib/log'); var JsonFile = require('./lib/JsonFile'); var RegistryFile = require('./lib/RegistryFile'); -var RegistryEntryCollection = require('./lib/RegistryEntryCollection'); - +var OverridesList = require('./lib/OverridesList'); // // COMMANDER CONFIGURATION @@ -88,43 +87,42 @@ if(registryFile.errors().length) { } else { ok('registry.json is valid json'); - registryFile.forEachPackage(function(pkg, name){ + registryFile.forEachRegistryEntry(function(pkg, registryEntryName){ // validate specific packages if(program.args.length) { - var pos = program.args.indexOf(name); + var pos = program.args.indexOf(registryEntryName); - if(pos === -1) + if(pos === -1) return; // replace for test the package-override - program.args[pos] = pkg.value; + program.args[pos] = pkg.canonical; } if(!pkg.endpoint || !pkg.name) - return error( util.format('%s not respects the format {ENDPOINT}:{PACKAGE_NAME}', gray(pkg.value)) ); + return error( util.format('%s not respects the format {ENDPOINT}:{PACKAGE_NAME}', gray(pkg.canonical)) ); - if(!registries[pkg.endpoint]) - return error( util.format('%s is not valid registry', gray(pkg.endpoint)) ); + if(!endpoints[pkg.endpoint]) + return error( util.format('%s is not valid enpoint', gray(pkg.endpoint)) ); - if(!registries[pkg.endpoint].packageFormat.test( pkg.name )) + if(!endpoints[pkg.endpoint].packageFormat.test( pkg.name )) return error( util.format('%s is not valid package name from %s endpoint', gray(pkg.name), gray(pkg.endpoint)) ); - ok( util.format('%s => %s', name, pkg.value) ); + ok( util.format('%s => %s', registryEntryName, pkg.canonical) ); }); } - /** * package overrides files */ -forOwn(registries, function(endpointPackage, registryName){ +forOwn(endpoints, function(Endpoint, endpointName){ - var registryEntryCollection = new RegistryEntryCollection(registryName); + var overridesList = new OverridesList(endpointName); - registryEntryCollection.forEachFile(function(fileinfo){ + overridesList.forEachOverrideFile(function(fileinfo){ if(fileinfo.ext !== 'json') return error( util.format('%s is not json file', gray(fileinfo.path)) ); @@ -132,18 +130,18 @@ forOwn(registries, function(endpointPackage, registryName){ if(!fileinfo.packageName || !fileinfo.packageVersion) return error( util.format('%s not respects the file name format {PACKAGE_NAME}@{PACKAGE_VERSION}.json', gray(fileinfo.path)) ); - if(!endpointPackage.packageFormat.test( fileinfo.packageName )) + if(!Endpoint.packageFormat.test( fileinfo.packageName )) return error( util.format('%s is not valid package name from %s endpoint', gray(fileinfo.packageName), gray(fileinfo.endpoint)) ); // validate specific packages - if(program.args.length && program.args.indexOf(fileinfo.packageValue) === -1 ) + if(program.args.length && program.args.indexOf(fileinfo.canonicalPackageName) === -1 ) return; - var jsonFile = new JsonFile(fileinfo.path); - if(jsonFile.errors().length) - return error( util.format('%s is not valid json file \n - %s', gray(fileinfo.path), jsonFile.errors().join('\n -')) ); + var overrideFile = new JsonFile(fileinfo.path); + if(overrideFile.errors().length) + return error( util.format('%s is not valid json file \n - %s', gray(fileinfo.path), overrideFile.errors().join('\n -')) ); - ok( fileinfo.packageValue + '@' + fileinfo.packageVersion ); + ok( fileinfo.canonicalPackageName + '@' + fileinfo.packageVersion ); }); }); diff --git a/test/lib/JsonFile.js b/test/lib/JsonFile.js index 694e58e..165d563 100644 --- a/test/lib/JsonFile.js +++ b/test/lib/JsonFile.js @@ -48,7 +48,7 @@ JsonFile.prototype.forEach = function(fn){ forOwn(this._json, fn, this); - return this; + return this; }; diff --git a/test/lib/RegistryEntryCollection.js b/test/lib/OverridesList.js similarity index 76% rename from test/lib/RegistryEntryCollection.js rename to test/lib/OverridesList.js index 51f1bd3..2bea171 100644 --- a/test/lib/RegistryEntryCollection.js +++ b/test/lib/OverridesList.js @@ -8,10 +8,10 @@ var FILE_EXTENSION = /[^.]*$/i; var PACKAGE_EXPECTATION = /(.*)@(.*).json$/; /** - * @constructor RegistryEntry + * @constructor OverridesList */ -var RegistryEntryCollection = module.exports = function RegistryEntry(endpoint){ +var OverridesList = module.exports = function OverridesList(endpoint){ this._endpoint = endpoint; this._basePath = path.resolve('./package-overrides', this._endpoint); @@ -19,7 +19,7 @@ var RegistryEntryCollection = module.exports = function RegistryEntry(endpoint){ }; -RegistryEntryCollection.prototype.forEachFile = function(fn){ +OverridesList.prototype.forEachOverrideFile = function(fn){ forOwn(this._files, function(file, index){ @@ -29,7 +29,7 @@ RegistryEntryCollection.prototype.forEachFile = function(fn){ var fileinfo = { packageName: undefined, packageVersion: undefined, - packageValue: undefined, + canonicalPackageName: undefined, file: file, endpoint: this._endpoint, @@ -42,7 +42,7 @@ RegistryEntryCollection.prototype.forEachFile = function(fn){ if (match) { fileinfo.packageName = match[1]; fileinfo.packageVersion = match[2]; - fileinfo.packageValue = fileinfo.endpoint + ':' + fileinfo.packageName; + fileinfo.canonicalPackageName = fileinfo.endpoint + ':' + fileinfo.packageName; } fn.call(this, fileinfo, index); diff --git a/test/lib/RegistryFile.js b/test/lib/RegistryFile.js index 9ae1378..ae66944 100644 --- a/test/lib/RegistryFile.js +++ b/test/lib/RegistryFile.js @@ -3,12 +3,11 @@ var util = require('util'); var path = require('path'); var JsonFile = require('./JsonFile'); -var PACKAGE_EXPECTATION = /^([^:\s]*):([^\s]*)$/; +var CANONICAL_NAME_EXPECTATION = /^([^:\s]*):([^\s]*)$/; /** * @constructor RegistryFile - */ - + */ var RegistryFile = module.exports = function RegistryFile(){ if( !(this instanceof RegistryFile) ) @@ -19,30 +18,29 @@ var RegistryFile = module.exports = function RegistryFile(){ util.inherits(RegistryFile, JsonFile); -RegistryFile.prototype.forEachPackage = function(fn){ +RegistryFile.prototype.forEachRegistryEntry = function(fn){ - return this.forEach(function(redirection, name){ + return this.forEach(function(canonicalPackageName, registryEntryName){ var pkg = {}; - var match = PACKAGE_EXPECTATION.exec(redirection); + var match = CANONICAL_NAME_EXPECTATION.exec(canonicalPackageName); if (!match) { pkg = { - value: redirection, + canonical: canonicalPackageName, endpoint: undefined, name: undefined, }; } else { pkg = { - value: match[0], + canonical: match[0], endpoint: match[1], name: match[2], }; - } - fn.call(this, pkg, name); - + fn.call(this, pkg, registryEntryName); }); + }; \ No newline at end of file