1 | var falafel = require('../');
|
2 | var acorn = require('acorn-jsx');
|
3 | var test = require('tape');
|
4 |
|
5 | test('custom parser', function (t) {
|
6 |
|
7 | var src = '(function() { var f = {a: "b"}; var a = <div {...f} className="test"></div>; })()';
|
8 |
|
9 | var nodeTypes = [
|
10 | 'Identifier',
|
11 | 'Identifier',
|
12 | 'Literal',
|
13 | 'Property',
|
14 | 'ObjectExpression',
|
15 | 'VariableDeclarator',
|
16 | 'VariableDeclaration',
|
17 | 'Identifier',
|
18 | 'Identifier',
|
19 | 'JSXSpreadAttribute',
|
20 | 'JSXIdentifier',
|
21 | 'Literal',
|
22 | 'JSXAttribute',
|
23 | 'JSXIdentifier',
|
24 | 'JSXOpeningElement',
|
25 | 'JSXIdentifier',
|
26 | 'JSXClosingElement',
|
27 | 'JSXElement',
|
28 | 'VariableDeclarator',
|
29 | 'VariableDeclaration',
|
30 | 'BlockStatement',
|
31 | 'FunctionExpression',
|
32 | 'CallExpression',
|
33 | 'ExpressionStatement',
|
34 | 'Program'
|
35 | ];
|
36 |
|
37 | t.plan(nodeTypes.length);
|
38 |
|
39 | var output = falafel(src, {parser: acorn, ecmaVersion: 6, plugins: { jsx: true }}, function(node) {
|
40 | t.equal(node.type, nodeTypes.shift());
|
41 | });
|
42 | });
|