diff --git a/package.json b/package.json index f20be5a8..024fb477 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "url": "https://twitter.com/pascalduez" } ], - "version": "2.1.3", + "version": "2.1.4", "license": { "type": "MIT", "url": "http://opensource.org/licenses/MIT" diff --git a/src/annotation/annotations/access.js b/src/annotation/annotations/access.js index a01bcef7..1be75b68 100644 --- a/src/annotation/annotations/access.js +++ b/src/annotation/annotations/access.js @@ -10,6 +10,10 @@ export default function access(env) { }, autofill(item) { + if (item.access !== 'auto') { + return; + } + if (env.privatePrefix === false) { return; } @@ -24,10 +28,11 @@ export default function access(env) { return 'private'; } + return 'public'; }, default() { - return 'public'; + return 'auto'; }, multiple: false, diff --git a/test/annotations/access.test.js b/test/annotations/access.test.js index 49bc18b5..e4d0caa3 100644 --- a/test/annotations/access.test.js +++ b/test/annotations/access.test.js @@ -14,22 +14,28 @@ describe('#access', function () { }); it('should autofill based on default', function () { - assert.equal(access.autofill({ context: { name: 'non-private'}, access: 'public'}), undefined); - assert.equal(access.autofill({ context: { name: '_private-name'}, access: 'public'}), 'private'); - assert.equal(access.autofill({ context: { name: '-private-name'}, access: 'public'}), 'private'); + assert.equal(access.autofill({ context: { name: 'non-private'}, access: 'auto'}), 'public'); + assert.equal(access.autofill({ context: { name: '_private-name'}, access: 'auto'}), 'private'); + assert.equal(access.autofill({ context: { name: '-private-name'}, access: 'auto'}), 'private'); }); it('should ignore autofill if privatePrefix is false', function () { var accessEnv = accessCtor({ privatePrefix: false }); - assert.equal(accessEnv.autofill({ context: { name: 'non-private'}, access: 'public'}), undefined); - assert.equal(accessEnv.autofill({ context: { name: '_private-name'}, access: 'public'}), undefined); - assert.equal(accessEnv.autofill({ context: { name: '-private-name'}, access: 'public'}), undefined); + assert.equal(accessEnv.autofill({ context: { name: 'non-private'}, access: 'auto'}), undefined); + assert.equal(accessEnv.autofill({ context: { name: '_private-name'}, access: 'auto'}), undefined); + assert.equal(accessEnv.autofill({ context: { name: '-private-name'}, access: 'auto'}), undefined); }); it('should autofill based on privatePrefix', function () { var accessEnv = accessCtor({ privatePrefix: '^--' }); - assert.equal(accessEnv.autofill({ context: { name: '-non-private'}, access: 'public'}), undefined); - assert.equal(accessEnv.autofill({ context: { name: '_non-private'}, access: 'public'}), undefined); - assert.equal(accessEnv.autofill({ context: { name: '--private-name'}, access: 'public'}), 'private'); + assert.equal(accessEnv.autofill({ context: { name: '-non-private'}, access: 'auto'}), 'public'); + assert.equal(accessEnv.autofill({ context: { name: '_non-private'}, access: 'auto'}), 'public'); + assert.equal(accessEnv.autofill({ context: { name: '--private-name'}, access: 'auto'}), 'private'); + }); + + it('should respect explicit access', function () { + assert.equal(access.autofill({ context: { name: 'non-private'}, access: 'public'}), undefined); + assert.equal(access.autofill({ context: { name: 'private'}, access: 'private'}), undefined); + assert.equal(access.autofill({ context: { name: '_private-name'}, access: 'auto'}), 'private'); }); });