summaryrefslogtreecommitdiff
path: root/desktop/node_modules/get-package-info/test
diff options
context:
space:
mode:
Diffstat (limited to 'desktop/node_modules/get-package-info/test')
-rw-r--r--desktop/node_modules/get-package-info/test/node_modules/we/need/to/go/deeper/package.json4
-rw-r--r--desktop/node_modules/get-package-info/test/node_modules/we/need/to/go/package.json5
-rw-r--r--desktop/node_modules/get-package-info/test/node_modules/we/package.json11
-rw-r--r--desktop/node_modules/get-package-info/test/test.js114
4 files changed, 134 insertions, 0 deletions
diff --git a/desktop/node_modules/get-package-info/test/node_modules/we/need/to/go/deeper/package.json b/desktop/node_modules/get-package-info/test/node_modules/we/need/to/go/deeper/package.json
new file mode 100644
index 0000000..fb88cde
--- /dev/null
+++ b/desktop/node_modules/get-package-info/test/node_modules/we/need/to/go/deeper/package.json
@@ -0,0 +1,4 @@
+{
+ "productName": "Deeper",
+ "name": "deeper"
+}
diff --git a/desktop/node_modules/get-package-info/test/node_modules/we/need/to/go/package.json b/desktop/node_modules/get-package-info/test/node_modules/we/need/to/go/package.json
new file mode 100644
index 0000000..4607ba0
--- /dev/null
+++ b/desktop/node_modules/get-package-info/test/node_modules/we/need/to/go/package.json
@@ -0,0 +1,5 @@
+{
+ "name": "go",
+ "version": "1.2.3",
+ "ignore_this_property": true
+}
diff --git a/desktop/node_modules/get-package-info/test/node_modules/we/package.json b/desktop/node_modules/get-package-info/test/node_modules/we/package.json
new file mode 100644
index 0000000..37b46fc
--- /dev/null
+++ b/desktop/node_modules/get-package-info/test/node_modules/we/package.json
@@ -0,0 +1,11 @@
+{
+ "name": "we",
+ "dependencies": {
+ "some-dependency": "~1.2.3",
+ "some-other-dependency": "~3.2.1"
+ },
+ "devDependencies": {
+ "some-dev-dependency": "~1.2.3",
+ "some-other-dev-dependency": "~3.2.1"
+ }
+}
diff --git a/desktop/node_modules/get-package-info/test/test.js b/desktop/node_modules/get-package-info/test/test.js
new file mode 100644
index 0000000..265470a
--- /dev/null
+++ b/desktop/node_modules/get-package-info/test/test.js
@@ -0,0 +1,114 @@
+/* eslint-env mocha */
+const Promise = require('bluebird')
+const expect = require('chai').expect
+const path = require('path')
+const getPackageInfo = require('../src/index')
+const readFile = Promise.promisify(require('fs').readFile)
+
+// Test to see if given source actually represents the source
+const testSource = (prop, source) => {
+ return readFile(source.src, 'utf-8')
+ .then(JSON.parse)
+ .then((pkg) => expect(pkg).to.deep.equal(source.pkg))
+}
+
+describe('get-package-info', () => {
+ it('should reject promise for non-array non-string props', (done) => {
+ getPackageInfo(
+ {},
+ path.join(__dirname, 'node_modules/we/need/to/go/deeper/')
+ )
+ .catch(() => {
+ done()
+ })
+ })
+
+ it('should return an empty result', () => {
+ return getPackageInfo(
+ [],
+ path.join(__dirname, 'node_modules/we/need/to/go/deeper/')
+ )
+ .then((result) => {
+ expect(result.values).to.deep.equal({})
+ expect(result.source).to.deep.equal({})
+ })
+ })
+
+ it('should return the right properties', () => {
+ return getPackageInfo(
+ [
+ ['productName', 'name'],
+ 'version',
+ 'dependencies.some-dependency',
+ 'devDependencies.some-dev-dependency'
+ ],
+ path.join(__dirname, 'node_modules/we/need/to/go/deeper/')
+ )
+ .then((result) => {
+ expect(result.values).to.deep.equal({
+ productName: 'Deeper',
+ name: 'Deeper',
+ version: '1.2.3',
+ 'dependencies.some-dependency': '~1.2.3',
+ 'devDependencies.some-dev-dependency': '~1.2.3'
+ })
+
+ return Promise.all(Object.keys(result.source).map(
+ (prop) => testSource(prop, result.source[prop])
+ ))
+ })
+ })
+
+ it('should return the right properties to a given callback', (done) => {
+ getPackageInfo(
+ [
+ ['productName', 'name'],
+ 'version',
+ 'dependencies.some-dependency',
+ 'devDependencies.some-dev-dependency'
+ ],
+ path.join(__dirname, 'node_modules/we/need/to/go/deeper/'),
+ (err, result) => {
+ expect(err).to.be.null
+ expect(result.values).to.deep.equal({
+ productName: 'Deeper',
+ name: 'Deeper',
+ version: '1.2.3',
+ 'dependencies.some-dependency': '~1.2.3',
+ 'devDependencies.some-dev-dependency': '~1.2.3'
+ })
+ // Test source prop points to the prop the value came from
+ expect(result.source['productName'].prop).to.equal('productName')
+ expect(result.source['name'].prop).to.equal('productName')
+ expect(result.source['version'].prop).to.equal('version')
+
+ Promise.all(Object.keys(result.source).map(
+ (prop) => testSource(prop, result.source[prop])
+ ))
+ .then(() => done())
+ }
+ )
+ })
+
+ it('should resolve with error message when unable to find all props', () => {
+ return getPackageInfo(
+ [
+ ['productName', 'name'],
+ 'nonexistent',
+ 'version',
+ ['this', 'doesntexist']
+ ],
+ path.join(__dirname, 'node_modules/we/need/to/go/deeper/')
+ )
+ .then(() => {
+ throw new Error('Should not resolve when props are missing')
+ })
+ .catch((err) => {
+ expect(err.missingProps).to.deep.equal(['nonexistent', ['this', 'doesntexist']])
+
+ return Promise.all(Object.keys(err.result.source).map(
+ (prop) => testSource(prop, err.result.source[prop])
+ ))
+ })
+ })
+})