mirror of
https://github.com/documentationjs/documentation.git
synced 2025-12-08 18:23:43 +00:00
102 lines
1.8 KiB
JavaScript
102 lines
1.8 KiB
JavaScript
const parse = require('../../../src/parsers/javascript');
|
|
const inferName = require('../../../src/infer/name');
|
|
const inferAccess = require('../../../src/infer/access');
|
|
|
|
function toComment(fn, filename) {
|
|
return parse(
|
|
{
|
|
file: filename,
|
|
source: fn instanceof Function ? '(' + fn.toString() + ')' : fn
|
|
},
|
|
{}
|
|
)[0];
|
|
}
|
|
|
|
function evaluate(fn, re, filename) {
|
|
return inferAccess(re)(inferName(toComment(fn, filename)));
|
|
}
|
|
|
|
test('inferAccess', function() {
|
|
expect(
|
|
evaluate(function() {
|
|
/** Test */
|
|
function _name() {}
|
|
}, '^_').access
|
|
).toBe('private');
|
|
|
|
expect(
|
|
evaluate(function() {
|
|
/** @private */
|
|
function name() {}
|
|
}, '^_').access
|
|
).toBe('private');
|
|
|
|
expect(
|
|
evaluate(function() {
|
|
/** @public */
|
|
function _name() {}
|
|
}, '^_').access
|
|
).toBe('public');
|
|
|
|
expect(
|
|
evaluate(function() {
|
|
/** Test */
|
|
function name_() {}
|
|
}, '_$').access
|
|
).toBe('private');
|
|
|
|
expect(
|
|
evaluate(`
|
|
class Test {
|
|
/** */
|
|
private foo() {}
|
|
}
|
|
`, '_$', 'test.ts').access
|
|
).toBe('private');
|
|
|
|
expect(
|
|
evaluate(`
|
|
class Test {
|
|
/** */
|
|
protected foo() {}
|
|
}
|
|
`, '_$', 'test.ts').access
|
|
).toBe('protected');
|
|
|
|
expect(
|
|
evaluate(`
|
|
class Test {
|
|
/** */
|
|
public foo() {}
|
|
}
|
|
`, '_$', 'test.ts').access
|
|
).toBe('public');
|
|
|
|
expect(
|
|
evaluate(`
|
|
class Test {
|
|
/** */
|
|
public abstract foo();
|
|
}
|
|
`, '_$', 'test.ts').access
|
|
).toBe('public');
|
|
|
|
expect(
|
|
evaluate(`
|
|
class Test {
|
|
/** */
|
|
readonly name: string;
|
|
}
|
|
`, '_$', 'test.ts').readonly
|
|
).toBe(true);
|
|
|
|
expect(
|
|
evaluate(`
|
|
interface Test {
|
|
/** */
|
|
readonly name: string;
|
|
}
|
|
`, '_$', 'test.ts').readonly
|
|
).toBe(true);
|
|
});
|