Skip to content

Commit

Permalink
Merge 233bd12 into 30bb313
Browse files Browse the repository at this point in the history
  • Loading branch information
FWeinb committed Feb 4, 2015
2 parents 30bb313 + 233bd12 commit 09a1d08
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 2 deletions.
20 changes: 19 additions & 1 deletion src/annotation/annotations/access.js
@@ -1,11 +1,29 @@
export default function access() {
export default function access(env) {

const defaultPrivatePrefixTest = RegExp.prototype.test.bind(/^[_-]/);

return {
name: 'access',

parse(text) {
return text.trim();
},

autofill(item) {
if (env.privatePrefix === false) { return; }

let testFunc = defaultPrivatePrefixTest;

if (typeof env.privatePrefix !== 'undefined') {
testFunc = RegExp.prototype.test.bind(new RegExp(env.privatePrefix));
}

if (testFunc(item.context.name)) {
return 'private';
}

},

default() {
return 'public';
},
Expand Down
24 changes: 23 additions & 1 deletion test/annotations/access.test.js
Expand Up @@ -3,11 +3,33 @@
var assert = require('assert');

describe('#access', function () {
var access = (new (require('../../dist/annotation'))()).list.access;
var accessCtor = require('../../dist/annotation/annotations/access');
var access = accessCtor({});

it('should return the trimmed string', function () {
assert.equal(access.parse(' '), '');
assert.equal(access.parse(' '), '');
assert.equal(access.parse('\ntest\t'), 'test');
assert.equal(access.parse('\nte\nst\t'), 'te\nst');
});

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');
});

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);
});

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');
});
});

0 comments on commit 09a1d08

Please sign in to comment.