[Pkg-javascript-commits] [node-private] 02/04: New upstream version 0.1.7

Julien Puydt julien.puydt at laposte.net
Wed Feb 8 09:11:09 UTC 2017


This is an automated email from the git hooks/post-receive script.

jpuydt-guest pushed a commit to branch master
in repository node-private.

commit 2b04fa2bf31818f8d0fe0411001322cbfbcaea05
Author: Julien Puydt <julien.puydt at laposte.net>
Date:   Wed Feb 8 10:06:49 2017 +0100

    New upstream version 0.1.7
---
 .gitignore   |   1 +
 .npmignore   |   2 +
 .travis.yml  |   8 +++-
 package.json |  10 ++++-
 private.js   |   4 +-
 test/run.js  | 124 ++++++++++++++++++++++++++++++++---------------------------
 6 files changed, 86 insertions(+), 63 deletions(-)

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..3c3629e
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+node_modules
diff --git a/.npmignore b/.npmignore
new file mode 100644
index 0000000..e216ae5
--- /dev/null
+++ b/.npmignore
@@ -0,0 +1,2 @@
+/node_modules
+/test
diff --git a/.travis.yml b/.travis.yml
index ed05f88..f2c896e 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,6 +1,10 @@
 language: node_js
 node_js:
+  - "7"
+  - "6"
+  - "5"
+  - "iojs"
+  - "4"
+  - "0.12"
   - "0.11"
   - "0.10"
-  - "0.8"
-  - "0.6"
diff --git a/package.json b/package.json
index fdd0769..c1c520b 100644
--- a/package.json
+++ b/package.json
@@ -16,7 +16,7 @@
     "scope",
     "es5"
   ],
-  "version": "0.1.6",
+  "version": "0.1.7",
   "homepage": "http://github.com/benjamn/private",
   "repository": {
     "type": "git",
@@ -24,10 +24,16 @@
   },
   "license": "MIT",
   "main": "private.js",
+  "files": [
+    "private.js"
+  ],
   "scripts": {
-    "test": "node test/run.js"
+    "test": "mocha --reporter spec --full-trace test/run.js"
   },
   "engines": {
     "node": ">= 0.6"
+  },
+  "devDependencies": {
+    "mocha": "^3.2.0"
   }
 }
diff --git a/private.js b/private.js
index 20bed57..4f952fc 100644
--- a/private.js
+++ b/private.js
@@ -62,7 +62,7 @@ function internString(str) {
 
 // External users might find this function useful, but it is not necessary
 // for the typical use of this module.
-defProp(exports, "makeUniqueKey", makeUniqueKey);
+exports.makeUniqueKey = makeUniqueKey;
 
 // Object.getOwnPropertyNames is the only way to enumerate non-enumerable
 // properties, so if we wrap it to ignore our secret keys, there should be
@@ -126,4 +126,4 @@ function makeAccessor(secretCreatorFn) {
   return accessor;
 }
 
-defProp(exports, "makeAccessor", makeAccessor);
+exports.makeAccessor = makeAccessor;
diff --git a/test/run.js b/test/run.js
index dc3c888..84fc438 100644
--- a/test/run.js
+++ b/test/run.js
@@ -1,68 +1,78 @@
 var assert = require("assert");
 var makeAccessor = require("../private").makeAccessor;
-var acc1 = makeAccessor();
-var obj = {};
-var hasOwn = obj.hasOwnProperty;
 
-acc1(obj).foo = 42;
-assert.deepEqual(obj, {});
-assert.deepEqual(acc1(obj), { foo: 42 });
-assert.deepEqual(acc1(acc1(obj)), {});
-assert.deepEqual(acc1(obj), { foo: 42 });
-assert.deepEqual(Object.keys(acc1(obj)), ["foo"]);
-assert.strictEqual(Object.getOwnPropertyNames(acc1(obj)).length, 1);
-assert.strictEqual(Object.getOwnPropertyNames(acc1(acc1(obj))).length, 0);
-acc1(obj).bar = "baz";
-assert.deepEqual(acc1(obj), { foo: 42, bar: "baz" });
-delete acc1(obj).foo;
-assert.deepEqual(acc1(obj), { bar: "baz" });
+describe("private accessors", function () {
+  var acc1 = makeAccessor();
+  var obj = {};
+  var hasOwn = obj.hasOwnProperty;
 
-try {
-  acc1(42);
-  throw new Error("threw wrong error");
-} catch (err) {
-  assert.ok(err);
-}
+  it("support basic accessor usage", function () {
+    acc1(obj).foo = 42;
+    assert.deepEqual(obj, {});
+    assert.deepEqual(acc1(obj), { foo: 42 });
+    assert.deepEqual(acc1(acc1(obj)), {});
+    assert.deepEqual(acc1(obj), { foo: 42 });
+    assert.deepEqual(Object.keys(acc1(obj)), ["foo"]);
+    assert.strictEqual(Object.getOwnPropertyNames(acc1(obj)).length, 1);
+    assert.strictEqual(Object.getOwnPropertyNames(acc1(acc1(obj))).length, 0);
+    acc1(obj).bar = "baz";
+    assert.deepEqual(acc1(obj), { foo: 42, bar: "baz" });
+    delete acc1(obj).foo;
+    assert.deepEqual(acc1(obj), { bar: "baz" });
+  });
 
-var acc2 = makeAccessor();
-assert.notStrictEqual(acc1, acc2);
-assert.notStrictEqual(acc1(obj), acc2(obj));
-assert.deepEqual(acc2(obj), {});
-assert.strictEqual(Object.getOwnPropertyNames(obj).length, 0);
-assert.strictEqual(Object.keys(obj).length, 0);
-acc2(obj).bar = "asdf";
-assert.deepEqual(acc2(obj), { bar: "asdf" });
+  it("throw if accessor called for non-object", function () {
+    try {
+      acc1(42);
+      throw new Error("threw wrong error");
+    } catch (err) {
+      assert.ok(err);
+    }
+  });
 
-acc2.forget(obj);
-acc2(obj).bar = "asdf";
-var oldSecret = acc2(obj);
-assert.strictEqual(oldSecret.bar, "asdf");
-acc2.forget(obj);
-var newSecret = acc2(obj);
-assert.notStrictEqual(oldSecret, newSecret);
-assert.ok(hasOwn.call(oldSecret, "bar"));
-assert.ok(!hasOwn.call(newSecret, "bar"));
-newSecret.bar = "zxcv";
-assert.strictEqual(oldSecret.bar, "asdf");
-assert.strictEqual(acc2(obj).bar, "zxcv");
+  var acc2 = makeAccessor();
 
-function creatorFn(object) {
-  return { self: object };
-}
+  it("allow distinct accessors for same object", function () {
+    assert.notStrictEqual(acc1, acc2);
+    assert.notStrictEqual(acc1(obj), acc2(obj));
+    assert.deepEqual(acc2(obj), {});
+    assert.strictEqual(Object.getOwnPropertyNames(obj).length, 0);
+    assert.strictEqual(Object.keys(obj).length, 0);
+    acc2(obj).bar = "asdf";
+    assert.deepEqual(acc2(obj), { bar: "asdf" });
+  });
 
-var acc3 = makeAccessor(creatorFn);
+  it("can .forget secrets", function () {
+    acc2.forget(obj);
+    acc2(obj).bar = "asdf";
+    var oldSecret = acc2(obj);
+    assert.strictEqual(oldSecret.bar, "asdf");
+    acc2.forget(obj);
+    var newSecret = acc2(obj);
+    assert.notStrictEqual(oldSecret, newSecret);
+    assert.ok(hasOwn.call(oldSecret, "bar"));
+    assert.ok(!hasOwn.call(newSecret, "bar"));
+    newSecret.bar = "zxcv";
+    assert.strictEqual(oldSecret.bar, "asdf");
+    assert.strictEqual(acc2(obj).bar, "zxcv");
+  });
 
-acc3(obj).xxx = "yyy";
-assert.deepEqual(acc3(obj), {
-  self: obj,
-  xxx: "yyy"
-});
+  it("support secret creator functions", function () {
+    function creatorFn(object) {
+      return { self: object };
+    }
 
-acc3.forget(obj);
-assert.deepEqual(acc3(obj), {
-  self: obj
-});
+    var acc3 = makeAccessor(creatorFn);
 
-var green = "\033[32m";
-var reset = "\033[0m";
-console.log(green + "ALL PASS" + reset);
+    acc3(obj).xxx = "yyy";
+    assert.deepEqual(acc3(obj), {
+      self: obj,
+      xxx: "yyy"
+    });
+
+    acc3.forget(obj);
+    assert.deepEqual(acc3(obj), {
+      self: obj
+    });
+  });
+});

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-javascript/node-private.git



More information about the Pkg-javascript-commits mailing list