[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