| Server IP : 68.183.124.220 / Your IP : 216.73.216.141 Web Server : Apache/2.4.18 (Ubuntu) System : Linux Sandbox-A 4.4.0-210-generic #242-Ubuntu SMP Fri Apr 16 09:57:56 UTC 2021 x86_64 User : gavin ( 1000) PHP Version : 7.0.33-0ubuntu0.16.04.16 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /home/gavin/workspace/readjs/node_modules/estraverse-fb/ |
Upload File : |
var assert = require('chai').assert;
var parse = require('esprima-fb').parse;
var originalKeys = require('./keys');
describe('works', function () {
var code = ['class MyClass{',
'x: number;',
'y: number;',
'constructor(x: number, y: number){',
'this.x = x;',
'this.y = y;',
'}',
'render(){',
'return <namespace:tag textAttr="value" exprAttr={expr} {...spreadAttr}><object.prop>!</object.prop>{}</namespace:tag>',
'}',
'}'].join('\n');
var ast = parse(code);
var expectedKeys = [
'ClassProperty',
'TypeAnnotation',
'NumberTypeAnnotation',
'ClassProperty',
'TypeAnnotation',
'NumberTypeAnnotation',
'XJSElement',
'XJSOpeningElement',
'XJSNamespacedName',
'XJSIdentifier',
'XJSIdentifier',
'XJSAttribute',
'XJSIdentifier',
'XJSAttribute',
'XJSIdentifier',
'XJSExpressionContainer',
'XJSSpreadAttribute',
'XJSClosingElement',
'XJSNamespacedName',
'XJSIdentifier',
'XJSIdentifier',
'XJSElement',
'XJSOpeningElement',
'XJSMemberExpression',
'XJSIdentifier',
'XJSIdentifier',
'XJSClosingElement',
'XJSMemberExpression',
'XJSIdentifier',
'XJSIdentifier',
'XJSExpressionContainer',
'XJSEmptyExpression'
];
beforeEach(function () {
for (var key in require.cache) {
delete require.cache[key];
}
});
it('directly from dependency', function () {
var traverse = require('./').traverse;
var actualKeys = [];
var actualTypeKeys = [];
traverse(ast, {
enter: function (node) {
if (originalKeys[node.type] != null) {
actualKeys.push(node.type);
}
}
});
assert.deepEqual(actualKeys, expectedKeys);
});
it('in injected mode', function () {
require('./');
var traverse = require('estraverse').traverse;
var actualKeys = [];
traverse(ast, {
enter: function (node) {
if (originalKeys[node.type] != null) {
actualKeys.push(node.type);
}
}
});
assert.deepEqual(actualKeys, expectedKeys);
});
it('in single-pass mode', function () {
var traverse = require('estraverse').traverse;
var keys = require('./keys');
var actualKeys = [];
traverse(ast, {
enter: function (node) {
if (originalKeys[node.type] != null) {
actualKeys.push(node.type);
}
},
keys: keys
});
assert.throws(function () {
traverse(ast, {
enter: function () {}
});
});
assert.deepEqual(actualKeys, expectedKeys);
});
});