fix(jest-globals
): set array accessor type for parser compatibility
#586
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #585
Given an expression statement like
someSpy.calls.argsFor(0)[1]
, different parsers assign differenttype
values to theargsFor
arg node.babel
andflow
parse it astype: "Literal"
, where asbabylon
,ts
andtsx
parse it astype: "NumericLiteral"
. When parsed asNumericLiteral
, it results in invalid syntax when used as an array accessor.This change updates the transform to explicitly set it as
type: "Literal"
regardless of the parser used. I also updated the test for this scenario to use multiple parsers. It's maybe a pattern that would be useful elsewhere, but I'll leave that as a separate effort 😅I also added support for
argsFor
args that aretype: "Identifier"
(e.g.argsFor(someVariable)
).