Skip to content

Commit

Permalink
Enable Flow in "visitor-test.js" (#1866)
Browse files Browse the repository at this point in the history
Fixes #1484
  • Loading branch information
IvanGoncharov committed May 18, 2019
1 parent 55bb0eb commit ad2110e
Showing 1 changed file with 50 additions and 36 deletions.
86 changes: 50 additions & 36 deletions src/language/__tests__/visitor-test.js
Expand Up @@ -4,7 +4,7 @@
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @noflow
* @flow strict
*/

import { expect } from 'chai';
Expand Down Expand Up @@ -59,6 +59,10 @@ function checkVisitorFnArgs(ast, args, isEdited) {
}
}

function getValue(node) {
return node.value != null ? node.value : undefined;
}

describe('Visitor', () => {
it('validates path argument', () => {
const visited = [];
Expand Down Expand Up @@ -270,15 +274,15 @@ describe('Visitor', () => {
visit(ast, {
enter(node) {
checkVisitorFnArgs(ast, arguments);
visited.push(['enter', node.kind, node.value]);
visited.push(['enter', node.kind, getValue(node)]);
if (node.kind === 'Field' && node.name.value === 'b') {
return false;
}
},

leave(node) {
checkVisitorFnArgs(ast, arguments);
visited.push(['leave', node.kind, node.value]);
visited.push(['leave', node.kind, getValue(node)]);
},
});

Expand Down Expand Up @@ -308,15 +312,15 @@ describe('Visitor', () => {
visit(ast, {
enter(node) {
checkVisitorFnArgs(ast, arguments);
visited.push(['enter', node.kind, node.value]);
visited.push(['enter', node.kind, getValue(node)]);
if (node.kind === 'Name' && node.value === 'x') {
return BREAK;
}
},

leave(node) {
checkVisitorFnArgs(ast, arguments);
visited.push(['leave', node.kind, node.value]);
visited.push(['leave', node.kind, getValue(node)]);
},
});

Expand Down Expand Up @@ -344,12 +348,12 @@ describe('Visitor', () => {
visit(ast, {
enter(node) {
checkVisitorFnArgs(ast, arguments);
visited.push(['enter', node.kind, node.value]);
visited.push(['enter', node.kind, getValue(node)]);
},

leave(node) {
checkVisitorFnArgs(ast, arguments);
visited.push(['leave', node.kind, node.value]);
visited.push(['leave', node.kind, getValue(node)]);
if (node.kind === 'Name' && node.value === 'x') {
return BREAK;
}
Expand Down Expand Up @@ -381,16 +385,16 @@ describe('Visitor', () => {
visit(ast, {
Name(node) {
checkVisitorFnArgs(ast, arguments);
visited.push(['enter', node.kind, node.value]);
visited.push(['enter', node.kind, getValue(node)]);
},
SelectionSet: {
enter(node) {
checkVisitorFnArgs(ast, arguments);
visited.push(['enter', node.kind, node.value]);
visited.push(['enter', node.kind, getValue(node)]);
},
leave(node) {
checkVisitorFnArgs(ast, arguments);
visited.push(['leave', node.kind, node.value]);
visited.push(['leave', node.kind, getValue(node)]);
},
},
});
Expand All @@ -417,11 +421,11 @@ describe('Visitor', () => {
visit(ast, {
enter(node) {
checkVisitorFnArgs(ast, arguments);
visited.push(['enter', node.kind, node.value]);
visited.push(['enter', node.kind, getValue(node)]);
},
leave(node) {
checkVisitorFnArgs(ast, arguments);
visited.push(['leave', node.kind, node.value]);
visited.push(['leave', node.kind, getValue(node)]);
},
});

Expand Down Expand Up @@ -464,14 +468,24 @@ describe('Visitor', () => {

visit(ast, {
enter(node, key, parent) {
visited.push(['enter', node.kind, key, parent && parent.kind]);
visited.push([
'enter',
node.kind,
key,
parent && parent.kind ? parent.kind : undefined,
]);

checkVisitorFnArgs(ast, arguments);
argsStack.push([...arguments]);
},

leave(node, key, parent) {
visited.push(['leave', node.kind, key, parent && parent.kind]);
visited.push([
'leave',
node.kind,
key,
parent && parent.kind ? parent.kind : undefined,
]);

expect(argsStack.pop()).to.deep.equal([...arguments]);
},
Expand Down Expand Up @@ -837,15 +851,15 @@ describe('Visitor', () => {
{
enter(node) {
checkVisitorFnArgs(ast, arguments);
visited.push(['enter', node.kind, node.value]);
visited.push(['enter', node.kind, getValue(node)]);
if (node.kind === 'Field' && node.name.value === 'b') {
return false;
}
},

leave(node) {
checkVisitorFnArgs(ast, arguments);
visited.push(['leave', node.kind, node.value]);
visited.push(['leave', node.kind, getValue(node)]);
},
},
]),
Expand Down Expand Up @@ -880,27 +894,27 @@ describe('Visitor', () => {
{
enter(node) {
checkVisitorFnArgs(ast, arguments);
visited.push(['no-a', 'enter', node.kind, node.value]);
visited.push(['no-a', 'enter', node.kind, getValue(node)]);
if (node.kind === 'Field' && node.name.value === 'a') {
return false;
}
},
leave(node) {
checkVisitorFnArgs(ast, arguments);
visited.push(['no-a', 'leave', node.kind, node.value]);
visited.push(['no-a', 'leave', node.kind, getValue(node)]);
},
},
{
enter(node) {
checkVisitorFnArgs(ast, arguments);
visited.push(['no-b', 'enter', node.kind, node.value]);
visited.push(['no-b', 'enter', node.kind, getValue(node)]);
if (node.kind === 'Field' && node.name.value === 'b') {
return false;
}
},
leave(node) {
checkVisitorFnArgs(ast, arguments);
visited.push(['no-b', 'leave', node.kind, node.value]);
visited.push(['no-b', 'leave', node.kind, getValue(node)]);
},
},
]),
Expand Down Expand Up @@ -956,14 +970,14 @@ describe('Visitor', () => {
{
enter(node) {
checkVisitorFnArgs(ast, arguments);
visited.push(['enter', node.kind, node.value]);
visited.push(['enter', node.kind, getValue(node)]);
if (node.kind === 'Name' && node.value === 'x') {
return BREAK;
}
},
leave(node) {
checkVisitorFnArgs(ast, arguments);
visited.push(['leave', node.kind, node.value]);
visited.push(['leave', node.kind, getValue(node)]);
},
},
]),
Expand Down Expand Up @@ -996,27 +1010,27 @@ describe('Visitor', () => {
{
enter(node) {
checkVisitorFnArgs(ast, arguments);
visited.push(['break-a', 'enter', node.kind, node.value]);
visited.push(['break-a', 'enter', node.kind, getValue(node)]);
if (node.kind === 'Name' && node.value === 'a') {
return BREAK;
}
},
leave(node) {
checkVisitorFnArgs(ast, arguments);
visited.push(['break-a', 'leave', node.kind, node.value]);
visited.push(['break-a', 'leave', node.kind, getValue(node)]);
},
},
{
enter(node) {
checkVisitorFnArgs(ast, arguments);
visited.push(['break-b', 'enter', node.kind, node.value]);
visited.push(['break-b', 'enter', node.kind, getValue(node)]);
if (node.kind === 'Name' && node.value === 'b') {
return BREAK;
}
},
leave(node) {
checkVisitorFnArgs(ast, arguments);
visited.push(['break-b', 'leave', node.kind, node.value]);
visited.push(['break-b', 'leave', node.kind, getValue(node)]);
},
},
]),
Expand Down Expand Up @@ -1058,11 +1072,11 @@ describe('Visitor', () => {
{
enter(node) {
checkVisitorFnArgs(ast, arguments);
visited.push(['enter', node.kind, node.value]);
visited.push(['enter', node.kind, getValue(node)]);
},
leave(node) {
checkVisitorFnArgs(ast, arguments);
visited.push(['leave', node.kind, node.value]);
visited.push(['leave', node.kind, getValue(node)]);
if (node.kind === 'Name' && node.value === 'x') {
return BREAK;
}
Expand Down Expand Up @@ -1099,11 +1113,11 @@ describe('Visitor', () => {
{
enter(node) {
checkVisitorFnArgs(ast, arguments);
visited.push(['break-a', 'enter', node.kind, node.value]);
visited.push(['break-a', 'enter', node.kind, getValue(node)]);
},
leave(node) {
checkVisitorFnArgs(ast, arguments);
visited.push(['break-a', 'leave', node.kind, node.value]);
visited.push(['break-a', 'leave', node.kind, getValue(node)]);
if (node.kind === 'Field' && node.name.value === 'a') {
return BREAK;
}
Expand All @@ -1112,11 +1126,11 @@ describe('Visitor', () => {
{
enter(node) {
checkVisitorFnArgs(ast, arguments);
visited.push(['break-b', 'enter', node.kind, node.value]);
visited.push(['break-b', 'enter', node.kind, getValue(node)]);
},
leave(node) {
checkVisitorFnArgs(ast, arguments);
visited.push(['break-b', 'leave', node.kind, node.value]);
visited.push(['break-b', 'leave', node.kind, getValue(node)]);
if (node.kind === 'Field' && node.name.value === 'b') {
return BREAK;
}
Expand Down Expand Up @@ -1183,11 +1197,11 @@ describe('Visitor', () => {
{
enter(node) {
checkVisitorFnArgs(ast, arguments);
visited.push(['enter', node.kind, node.value]);
visited.push(['enter', node.kind, getValue(node)]);
},
leave(node) {
checkVisitorFnArgs(ast, arguments, /* isEdited */ true);
visited.push(['leave', node.kind, node.value]);
visited.push(['leave', node.kind, getValue(node)]);
},
},
]),
Expand Down Expand Up @@ -1247,11 +1261,11 @@ describe('Visitor', () => {
{
enter(node) {
checkVisitorFnArgs(ast, arguments);
visited.push(['enter', node.kind, node.value]);
visited.push(['enter', node.kind, getValue(node)]);
},
leave(node) {
checkVisitorFnArgs(ast, arguments, /* isEdited */ true);
visited.push(['leave', node.kind, node.value]);
visited.push(['leave', node.kind, getValue(node)]);
},
},
]),
Expand Down

0 comments on commit ad2110e

Please sign in to comment.