From 913c92b6156fb84661a139a321178ad6121c2a18 Mon Sep 17 00:00:00 2001 From: Ryan Graham Date: Mon, 30 Jan 2017 11:21:00 -0800 Subject: [PATCH] test: behaviour when package.json is missing This was somewhat undocumented, so this is much needed. The primary feature of this is that it uses the directory name as the package name when there is no package.json. --- lib/project.js | 1 - test/test-project.js | 11 +++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/lib/project.js b/lib/project.js index e9db02e..bd9ddc5 100644 --- a/lib/project.js +++ b/lib/project.js @@ -52,7 +52,6 @@ function Project(pkgPath, cb) { try { this.rawPkgJSON = JSON.parse(fs.readFileSync(this.pkgJSONPath, 'utf8')); } catch (e) { - console.error('Could not read package:', e); this.rawPkgJSON = {}; } diff --git a/test/test-project.js b/test/test-project.js index 0b8f577..19f84a4 100644 --- a/test/test-project.js +++ b/test/test-project.js @@ -7,7 +7,9 @@ var fs = require('fs'); var helpers = require('./helpers'); +var mkdirp = require('mkdirp'); var path = require('path'); +var rimraf = require('rimraf'); var test = require('tap').test; var Project = require('../lib/project'); @@ -139,3 +141,12 @@ test('bower support', function(t) { t.strictEqual(bower.version, '2.3.4'); t.end(); }); + +test('package inference without package.json', function(t) { + var SANDBOX_NOJSON = path.resolve(__dirname, 'SANDBOX-no-json'); + rimraf.sync(SANDBOX_NOJSON); + mkdirp.sync(SANDBOX_NOJSON); + var p1 = new Project(SANDBOX_NOJSON); + t.equal(p1.nameVer(), 'SANDBOX-no-json@1.0.0-0'); + t.end(); +});