From f68e4337720a4b7c414b508abe488937e726fa90 Mon Sep 17 00:00:00 2001 From: auvred Date: Sun, 21 Jan 2024 18:47:16 +0000 Subject: [PATCH 1/3] fix(ast-spec): add `JSXElement` type to the `JSXAttribute['value']` --- packages/ast-spec/src/jsx/JSXAttribute/spec.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/ast-spec/src/jsx/JSXAttribute/spec.ts b/packages/ast-spec/src/jsx/JSXAttribute/spec.ts index 8fc8364c05fd..c8e52b244578 100644 --- a/packages/ast-spec/src/jsx/JSXAttribute/spec.ts +++ b/packages/ast-spec/src/jsx/JSXAttribute/spec.ts @@ -1,5 +1,6 @@ import type { AST_NODE_TYPES } from '../../ast-node-types'; import type { BaseNode } from '../../base/BaseNode'; +import type { JSXElement } from '../../expression/JSXElement/spec'; import type { JSXExpression } from '../../unions/JSXExpression'; import type { Literal } from '../../unions/Literal'; import type { JSXIdentifier } from '../JSXIdentifier/spec'; @@ -8,5 +9,5 @@ import type { JSXNamespacedName } from '../JSXNamespacedName/spec'; export interface JSXAttribute extends BaseNode { type: AST_NODE_TYPES.JSXAttribute; name: JSXIdentifier | JSXNamespacedName; - value: JSXExpression | Literal | null; + value: JSXElement | JSXExpression | Literal | null; } From ece3c9406915161fa313a57ef6559c5d019f075a Mon Sep 17 00:00:00 2001 From: auvred Date: Mon, 29 Jan 2024 20:46:02 +0300 Subject: [PATCH 2/3] test: add fixtures --- .../element-non-self-closing/fixture.tsx | 1 + .../snapshots/1-TSESTree-AST.shot | 139 +++++++++++++++++ .../snapshots/2-TSESTree-Tokens.shot | 146 ++++++++++++++++++ .../snapshots/3-Babel-AST.shot | 139 +++++++++++++++++ .../snapshots/4-Babel-Tokens.shot | 146 ++++++++++++++++++ .../snapshots/5-AST-Alignment-AST.shot | 6 + .../snapshots/6-AST-Alignment-Tokens.shot | 6 + .../fixtures/element-self-closing/fixture.tsx | 1 + .../snapshots/1-TSESTree-AST.shot | 109 +++++++++++++ .../snapshots/2-TSESTree-Tokens.shot | 106 +++++++++++++ .../snapshots/3-Babel-AST.shot | 109 +++++++++++++ .../snapshots/4-Babel-Tokens.shot | 106 +++++++++++++ .../snapshots/5-AST-Alignment-AST.shot | 6 + .../snapshots/6-AST-Alignment-Tokens.shot | 6 + 14 files changed, 1026 insertions(+) create mode 100644 packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-non-self-closing/fixture.tsx create mode 100644 packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-non-self-closing/snapshots/1-TSESTree-AST.shot create mode 100644 packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-non-self-closing/snapshots/2-TSESTree-Tokens.shot create mode 100644 packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-non-self-closing/snapshots/3-Babel-AST.shot create mode 100644 packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-non-self-closing/snapshots/4-Babel-Tokens.shot create mode 100644 packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-non-self-closing/snapshots/5-AST-Alignment-AST.shot create mode 100644 packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-non-self-closing/snapshots/6-AST-Alignment-Tokens.shot create mode 100644 packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-self-closing/fixture.tsx create mode 100644 packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-self-closing/snapshots/1-TSESTree-AST.shot create mode 100644 packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-self-closing/snapshots/2-TSESTree-Tokens.shot create mode 100644 packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-self-closing/snapshots/3-Babel-AST.shot create mode 100644 packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-self-closing/snapshots/4-Babel-Tokens.shot create mode 100644 packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-self-closing/snapshots/5-AST-Alignment-AST.shot create mode 100644 packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-self-closing/snapshots/6-AST-Alignment-Tokens.shot diff --git a/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-non-self-closing/fixture.tsx b/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-non-self-closing/fixture.tsx new file mode 100644 index 000000000000..898c2784387e --- /dev/null +++ b/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-non-self-closing/fixture.tsx @@ -0,0 +1 @@ +bar />; diff --git a/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-non-self-closing/snapshots/1-TSESTree-AST.shot b/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-non-self-closing/snapshots/1-TSESTree-AST.shot new file mode 100644 index 000000000000..9cf1e230ccd8 --- /dev/null +++ b/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-non-self-closing/snapshots/1-TSESTree-AST.shot @@ -0,0 +1,139 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`AST Fixtures jsx JSXAttribute element-non-self-closing TSESTree - AST 1`] = ` +Program { + type: "Program", + body: [ + ExpressionStatement { + type: "ExpressionStatement", + expression: JSXElement { + type: "JSXElement", + children: [], + closingElement: null, + openingElement: JSXOpeningElement { + type: "JSXOpeningElement", + attributes: [ + JSXAttribute { + type: "JSXAttribute", + name: JSXIdentifier { + type: "JSXIdentifier", + name: "foo", + + range: [5, 8], + loc: { + start: { column: 5, line: 1 }, + end: { column: 8, line: 1 }, + }, + }, + value: JSXElement { + type: "JSXElement", + children: [ + JSXText { + type: "JSXText", + raw: "bar", + value: "bar", + + range: [14, 17], + loc: { + start: { column: 14, line: 1 }, + end: { column: 17, line: 1 }, + }, + }, + ], + closingElement: JSXClosingElement { + type: "JSXClosingElement", + name: JSXIdentifier { + type: "JSXIdentifier", + name: "div", + + range: [19, 22], + loc: { + start: { column: 19, line: 1 }, + end: { column: 22, line: 1 }, + }, + }, + + range: [17, 23], + loc: { + start: { column: 17, line: 1 }, + end: { column: 23, line: 1 }, + }, + }, + openingElement: JSXOpeningElement { + type: "JSXOpeningElement", + attributes: [], + name: JSXIdentifier { + type: "JSXIdentifier", + name: "div", + + range: [10, 13], + loc: { + start: { column: 10, line: 1 }, + end: { column: 13, line: 1 }, + }, + }, + selfClosing: false, + + range: [9, 14], + loc: { + start: { column: 9, line: 1 }, + end: { column: 14, line: 1 }, + }, + }, + + range: [9, 23], + loc: { + start: { column: 9, line: 1 }, + end: { column: 23, line: 1 }, + }, + }, + + range: [5, 23], + loc: { + start: { column: 5, line: 1 }, + end: { column: 23, line: 1 }, + }, + }, + ], + name: JSXIdentifier { + type: "JSXIdentifier", + name: "App", + + range: [1, 4], + loc: { + start: { column: 1, line: 1 }, + end: { column: 4, line: 1 }, + }, + }, + selfClosing: true, + + range: [0, 26], + loc: { + start: { column: 0, line: 1 }, + end: { column: 26, line: 1 }, + }, + }, + + range: [0, 26], + loc: { + start: { column: 0, line: 1 }, + end: { column: 26, line: 1 }, + }, + }, + + range: [0, 26], + loc: { + start: { column: 0, line: 1 }, + end: { column: 26, line: 1 }, + }, + }, + ], + sourceType: "script", + + range: [0, 27], + loc: { + start: { column: 0, line: 1 }, + end: { column: 0, line: 2 }, + }, +} +`; diff --git a/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-non-self-closing/snapshots/2-TSESTree-Tokens.shot b/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-non-self-closing/snapshots/2-TSESTree-Tokens.shot new file mode 100644 index 000000000000..d6a2a02f0ddb --- /dev/null +++ b/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-non-self-closing/snapshots/2-TSESTree-Tokens.shot @@ -0,0 +1,146 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`AST Fixtures jsx JSXAttribute element-non-self-closing TSESTree - Tokens 1`] = ` +[ + Punctuator { + type: "Punctuator", + value: "<", + + range: [0, 1], + loc: { + start: { column: 0, line: 1 }, + end: { column: 1, line: 1 }, + }, + }, + JSXIdentifier { + type: "JSXIdentifier", + value: "App", + + range: [1, 4], + loc: { + start: { column: 1, line: 1 }, + end: { column: 4, line: 1 }, + }, + }, + JSXIdentifier { + type: "JSXIdentifier", + value: "foo", + + range: [5, 8], + loc: { + start: { column: 5, line: 1 }, + end: { column: 8, line: 1 }, + }, + }, + Punctuator { + type: "Punctuator", + value: "=", + + range: [8, 9], + loc: { + start: { column: 8, line: 1 }, + end: { column: 9, line: 1 }, + }, + }, + Punctuator { + type: "Punctuator", + value: "<", + + range: [9, 10], + loc: { + start: { column: 9, line: 1 }, + end: { column: 10, line: 1 }, + }, + }, + JSXIdentifier { + type: "JSXIdentifier", + value: "div", + + range: [10, 13], + loc: { + start: { column: 10, line: 1 }, + end: { column: 13, line: 1 }, + }, + }, + Punctuator { + type: "Punctuator", + value: ">", + + range: [13, 14], + loc: { + start: { column: 13, line: 1 }, + end: { column: 14, line: 1 }, + }, + }, + JSXText { + type: "JSXText", + value: "bar", + + range: [14, 17], + loc: { + start: { column: 14, line: 1 }, + end: { column: 17, line: 1 }, + }, + }, + Punctuator { + type: "Punctuator", + value: "<", + + range: [17, 18], + loc: { + start: { column: 17, line: 1 }, + end: { column: 18, line: 1 }, + }, + }, + Punctuator { + type: "Punctuator", + value: "/", + + range: [18, 19], + loc: { + start: { column: 18, line: 1 }, + end: { column: 19, line: 1 }, + }, + }, + JSXIdentifier { + type: "JSXIdentifier", + value: "div", + + range: [19, 22], + loc: { + start: { column: 19, line: 1 }, + end: { column: 22, line: 1 }, + }, + }, + Punctuator { + type: "Punctuator", + value: ">", + + range: [22, 23], + loc: { + start: { column: 22, line: 1 }, + end: { column: 23, line: 1 }, + }, + }, + Punctuator { + type: "Punctuator", + value: "/", + + range: [24, 25], + loc: { + start: { column: 24, line: 1 }, + end: { column: 25, line: 1 }, + }, + }, + Punctuator { + type: "Punctuator", + value: ">", + + range: [25, 26], + loc: { + start: { column: 25, line: 1 }, + end: { column: 26, line: 1 }, + }, + }, +] +`; diff --git a/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-non-self-closing/snapshots/3-Babel-AST.shot b/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-non-self-closing/snapshots/3-Babel-AST.shot new file mode 100644 index 000000000000..2c443b7da6fc --- /dev/null +++ b/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-non-self-closing/snapshots/3-Babel-AST.shot @@ -0,0 +1,139 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`AST Fixtures jsx JSXAttribute element-non-self-closing Babel - AST 1`] = ` +Program { + type: "Program", + body: [ + ExpressionStatement { + type: "ExpressionStatement", + expression: JSXElement { + type: "JSXElement", + children: [], + closingElement: null, + openingElement: JSXOpeningElement { + type: "JSXOpeningElement", + attributes: [ + JSXAttribute { + type: "JSXAttribute", + name: JSXIdentifier { + type: "JSXIdentifier", + name: "foo", + + range: [5, 8], + loc: { + start: { column: 5, line: 1 }, + end: { column: 8, line: 1 }, + }, + }, + value: JSXElement { + type: "JSXElement", + children: [ + JSXText { + type: "JSXText", + raw: "bar", + value: "bar", + + range: [14, 17], + loc: { + start: { column: 14, line: 1 }, + end: { column: 17, line: 1 }, + }, + }, + ], + closingElement: JSXClosingElement { + type: "JSXClosingElement", + name: JSXIdentifier { + type: "JSXIdentifier", + name: "div", + + range: [19, 22], + loc: { + start: { column: 19, line: 1 }, + end: { column: 22, line: 1 }, + }, + }, + + range: [17, 23], + loc: { + start: { column: 17, line: 1 }, + end: { column: 23, line: 1 }, + }, + }, + openingElement: JSXOpeningElement { + type: "JSXOpeningElement", + attributes: [], + name: JSXIdentifier { + type: "JSXIdentifier", + name: "div", + + range: [10, 13], + loc: { + start: { column: 10, line: 1 }, + end: { column: 13, line: 1 }, + }, + }, + selfClosing: false, + + range: [9, 14], + loc: { + start: { column: 9, line: 1 }, + end: { column: 14, line: 1 }, + }, + }, + + range: [9, 23], + loc: { + start: { column: 9, line: 1 }, + end: { column: 23, line: 1 }, + }, + }, + + range: [5, 23], + loc: { + start: { column: 5, line: 1 }, + end: { column: 23, line: 1 }, + }, + }, + ], + name: JSXIdentifier { + type: "JSXIdentifier", + name: "App", + + range: [1, 4], + loc: { + start: { column: 1, line: 1 }, + end: { column: 4, line: 1 }, + }, + }, + selfClosing: true, + + range: [0, 26], + loc: { + start: { column: 0, line: 1 }, + end: { column: 26, line: 1 }, + }, + }, + + range: [0, 26], + loc: { + start: { column: 0, line: 1 }, + end: { column: 26, line: 1 }, + }, + }, + + range: [0, 26], + loc: { + start: { column: 0, line: 1 }, + end: { column: 26, line: 1 }, + }, + }, + ], + sourceType: "script", + + range: [0, 27], + loc: { + start: { column: 0, line: 1 }, + end: { column: 0, line: 2 }, + }, +} +`; diff --git a/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-non-self-closing/snapshots/4-Babel-Tokens.shot b/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-non-self-closing/snapshots/4-Babel-Tokens.shot new file mode 100644 index 000000000000..0b9d81c1492f --- /dev/null +++ b/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-non-self-closing/snapshots/4-Babel-Tokens.shot @@ -0,0 +1,146 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`AST Fixtures jsx JSXAttribute element-non-self-closing Babel - Tokens 1`] = ` +[ + Punctuator { + type: "Punctuator", + value: "<", + + range: [0, 1], + loc: { + start: { column: 0, line: 1 }, + end: { column: 1, line: 1 }, + }, + }, + JSXIdentifier { + type: "JSXIdentifier", + value: "App", + + range: [1, 4], + loc: { + start: { column: 1, line: 1 }, + end: { column: 4, line: 1 }, + }, + }, + JSXIdentifier { + type: "JSXIdentifier", + value: "foo", + + range: [5, 8], + loc: { + start: { column: 5, line: 1 }, + end: { column: 8, line: 1 }, + }, + }, + Punctuator { + type: "Punctuator", + value: "=", + + range: [8, 9], + loc: { + start: { column: 8, line: 1 }, + end: { column: 9, line: 1 }, + }, + }, + Punctuator { + type: "Punctuator", + value: "<", + + range: [9, 10], + loc: { + start: { column: 9, line: 1 }, + end: { column: 10, line: 1 }, + }, + }, + JSXIdentifier { + type: "JSXIdentifier", + value: "div", + + range: [10, 13], + loc: { + start: { column: 10, line: 1 }, + end: { column: 13, line: 1 }, + }, + }, + Punctuator { + type: "Punctuator", + value: ">", + + range: [13, 14], + loc: { + start: { column: 13, line: 1 }, + end: { column: 14, line: 1 }, + }, + }, + JSXText { + type: "JSXText", + value: "bar", + + range: [14, 17], + loc: { + start: { column: 14, line: 1 }, + end: { column: 17, line: 1 }, + }, + }, + Punctuator { + type: "Punctuator", + value: "<", + + range: [17, 18], + loc: { + start: { column: 17, line: 1 }, + end: { column: 18, line: 1 }, + }, + }, + Punctuator { + type: "Punctuator", + value: "/", + + range: [18, 19], + loc: { + start: { column: 18, line: 1 }, + end: { column: 19, line: 1 }, + }, + }, + JSXIdentifier { + type: "JSXIdentifier", + value: "div", + + range: [19, 22], + loc: { + start: { column: 19, line: 1 }, + end: { column: 22, line: 1 }, + }, + }, + Punctuator { + type: "Punctuator", + value: ">", + + range: [22, 23], + loc: { + start: { column: 22, line: 1 }, + end: { column: 23, line: 1 }, + }, + }, + Punctuator { + type: "Punctuator", + value: "/", + + range: [24, 25], + loc: { + start: { column: 24, line: 1 }, + end: { column: 25, line: 1 }, + }, + }, + Punctuator { + type: "Punctuator", + value: ">", + + range: [25, 26], + loc: { + start: { column: 25, line: 1 }, + end: { column: 26, line: 1 }, + }, + }, +] +`; diff --git a/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-non-self-closing/snapshots/5-AST-Alignment-AST.shot b/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-non-self-closing/snapshots/5-AST-Alignment-AST.shot new file mode 100644 index 000000000000..de99bf49c756 --- /dev/null +++ b/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-non-self-closing/snapshots/5-AST-Alignment-AST.shot @@ -0,0 +1,6 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`AST Fixtures jsx JSXAttribute element-non-self-closing AST Alignment - AST 1`] = ` +"Snapshot Diff: +Compared values have no visual difference." +`; diff --git a/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-non-self-closing/snapshots/6-AST-Alignment-Tokens.shot b/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-non-self-closing/snapshots/6-AST-Alignment-Tokens.shot new file mode 100644 index 000000000000..3bd6a3615c1d --- /dev/null +++ b/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-non-self-closing/snapshots/6-AST-Alignment-Tokens.shot @@ -0,0 +1,6 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`AST Fixtures jsx JSXAttribute element-non-self-closing AST Alignment - Token 1`] = ` +"Snapshot Diff: +Compared values have no visual difference." +`; diff --git a/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-self-closing/fixture.tsx b/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-self-closing/fixture.tsx new file mode 100644 index 000000000000..5581b85c881c --- /dev/null +++ b/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-self-closing/fixture.tsx @@ -0,0 +1 @@ + />; diff --git a/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-self-closing/snapshots/1-TSESTree-AST.shot b/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-self-closing/snapshots/1-TSESTree-AST.shot new file mode 100644 index 000000000000..ee6ecfb1bbd8 --- /dev/null +++ b/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-self-closing/snapshots/1-TSESTree-AST.shot @@ -0,0 +1,109 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`AST Fixtures jsx JSXAttribute element-self-closing TSESTree - AST 1`] = ` +Program { + type: "Program", + body: [ + ExpressionStatement { + type: "ExpressionStatement", + expression: JSXElement { + type: "JSXElement", + children: [], + closingElement: null, + openingElement: JSXOpeningElement { + type: "JSXOpeningElement", + attributes: [ + JSXAttribute { + type: "JSXAttribute", + name: JSXIdentifier { + type: "JSXIdentifier", + name: "foo", + + range: [5, 8], + loc: { + start: { column: 5, line: 1 }, + end: { column: 8, line: 1 }, + }, + }, + value: JSXElement { + type: "JSXElement", + children: [], + closingElement: null, + openingElement: JSXOpeningElement { + type: "JSXOpeningElement", + attributes: [], + name: JSXIdentifier { + type: "JSXIdentifier", + name: "div", + + range: [10, 13], + loc: { + start: { column: 10, line: 1 }, + end: { column: 13, line: 1 }, + }, + }, + selfClosing: true, + + range: [9, 15], + loc: { + start: { column: 9, line: 1 }, + end: { column: 15, line: 1 }, + }, + }, + + range: [9, 15], + loc: { + start: { column: 9, line: 1 }, + end: { column: 15, line: 1 }, + }, + }, + + range: [5, 15], + loc: { + start: { column: 5, line: 1 }, + end: { column: 15, line: 1 }, + }, + }, + ], + name: JSXIdentifier { + type: "JSXIdentifier", + name: "App", + + range: [1, 4], + loc: { + start: { column: 1, line: 1 }, + end: { column: 4, line: 1 }, + }, + }, + selfClosing: true, + + range: [0, 18], + loc: { + start: { column: 0, line: 1 }, + end: { column: 18, line: 1 }, + }, + }, + + range: [0, 18], + loc: { + start: { column: 0, line: 1 }, + end: { column: 18, line: 1 }, + }, + }, + + range: [0, 18], + loc: { + start: { column: 0, line: 1 }, + end: { column: 18, line: 1 }, + }, + }, + ], + sourceType: "script", + + range: [0, 19], + loc: { + start: { column: 0, line: 1 }, + end: { column: 0, line: 2 }, + }, +} +`; diff --git a/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-self-closing/snapshots/2-TSESTree-Tokens.shot b/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-self-closing/snapshots/2-TSESTree-Tokens.shot new file mode 100644 index 000000000000..7c25f9e88968 --- /dev/null +++ b/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-self-closing/snapshots/2-TSESTree-Tokens.shot @@ -0,0 +1,106 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`AST Fixtures jsx JSXAttribute element-self-closing TSESTree - Tokens 1`] = ` +[ + Punctuator { + type: "Punctuator", + value: "<", + + range: [0, 1], + loc: { + start: { column: 0, line: 1 }, + end: { column: 1, line: 1 }, + }, + }, + JSXIdentifier { + type: "JSXIdentifier", + value: "App", + + range: [1, 4], + loc: { + start: { column: 1, line: 1 }, + end: { column: 4, line: 1 }, + }, + }, + JSXIdentifier { + type: "JSXIdentifier", + value: "foo", + + range: [5, 8], + loc: { + start: { column: 5, line: 1 }, + end: { column: 8, line: 1 }, + }, + }, + Punctuator { + type: "Punctuator", + value: "=", + + range: [8, 9], + loc: { + start: { column: 8, line: 1 }, + end: { column: 9, line: 1 }, + }, + }, + Punctuator { + type: "Punctuator", + value: "<", + + range: [9, 10], + loc: { + start: { column: 9, line: 1 }, + end: { column: 10, line: 1 }, + }, + }, + JSXIdentifier { + type: "JSXIdentifier", + value: "div", + + range: [10, 13], + loc: { + start: { column: 10, line: 1 }, + end: { column: 13, line: 1 }, + }, + }, + Punctuator { + type: "Punctuator", + value: "/", + + range: [13, 14], + loc: { + start: { column: 13, line: 1 }, + end: { column: 14, line: 1 }, + }, + }, + Punctuator { + type: "Punctuator", + value: ">", + + range: [14, 15], + loc: { + start: { column: 14, line: 1 }, + end: { column: 15, line: 1 }, + }, + }, + Punctuator { + type: "Punctuator", + value: "/", + + range: [16, 17], + loc: { + start: { column: 16, line: 1 }, + end: { column: 17, line: 1 }, + }, + }, + Punctuator { + type: "Punctuator", + value: ">", + + range: [17, 18], + loc: { + start: { column: 17, line: 1 }, + end: { column: 18, line: 1 }, + }, + }, +] +`; diff --git a/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-self-closing/snapshots/3-Babel-AST.shot b/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-self-closing/snapshots/3-Babel-AST.shot new file mode 100644 index 000000000000..0c2d8a86e0aa --- /dev/null +++ b/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-self-closing/snapshots/3-Babel-AST.shot @@ -0,0 +1,109 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`AST Fixtures jsx JSXAttribute element-self-closing Babel - AST 1`] = ` +Program { + type: "Program", + body: [ + ExpressionStatement { + type: "ExpressionStatement", + expression: JSXElement { + type: "JSXElement", + children: [], + closingElement: null, + openingElement: JSXOpeningElement { + type: "JSXOpeningElement", + attributes: [ + JSXAttribute { + type: "JSXAttribute", + name: JSXIdentifier { + type: "JSXIdentifier", + name: "foo", + + range: [5, 8], + loc: { + start: { column: 5, line: 1 }, + end: { column: 8, line: 1 }, + }, + }, + value: JSXElement { + type: "JSXElement", + children: [], + closingElement: null, + openingElement: JSXOpeningElement { + type: "JSXOpeningElement", + attributes: [], + name: JSXIdentifier { + type: "JSXIdentifier", + name: "div", + + range: [10, 13], + loc: { + start: { column: 10, line: 1 }, + end: { column: 13, line: 1 }, + }, + }, + selfClosing: true, + + range: [9, 15], + loc: { + start: { column: 9, line: 1 }, + end: { column: 15, line: 1 }, + }, + }, + + range: [9, 15], + loc: { + start: { column: 9, line: 1 }, + end: { column: 15, line: 1 }, + }, + }, + + range: [5, 15], + loc: { + start: { column: 5, line: 1 }, + end: { column: 15, line: 1 }, + }, + }, + ], + name: JSXIdentifier { + type: "JSXIdentifier", + name: "App", + + range: [1, 4], + loc: { + start: { column: 1, line: 1 }, + end: { column: 4, line: 1 }, + }, + }, + selfClosing: true, + + range: [0, 18], + loc: { + start: { column: 0, line: 1 }, + end: { column: 18, line: 1 }, + }, + }, + + range: [0, 18], + loc: { + start: { column: 0, line: 1 }, + end: { column: 18, line: 1 }, + }, + }, + + range: [0, 18], + loc: { + start: { column: 0, line: 1 }, + end: { column: 18, line: 1 }, + }, + }, + ], + sourceType: "script", + + range: [0, 19], + loc: { + start: { column: 0, line: 1 }, + end: { column: 0, line: 2 }, + }, +} +`; diff --git a/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-self-closing/snapshots/4-Babel-Tokens.shot b/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-self-closing/snapshots/4-Babel-Tokens.shot new file mode 100644 index 000000000000..e22c97ddb136 --- /dev/null +++ b/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-self-closing/snapshots/4-Babel-Tokens.shot @@ -0,0 +1,106 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`AST Fixtures jsx JSXAttribute element-self-closing Babel - Tokens 1`] = ` +[ + Punctuator { + type: "Punctuator", + value: "<", + + range: [0, 1], + loc: { + start: { column: 0, line: 1 }, + end: { column: 1, line: 1 }, + }, + }, + JSXIdentifier { + type: "JSXIdentifier", + value: "App", + + range: [1, 4], + loc: { + start: { column: 1, line: 1 }, + end: { column: 4, line: 1 }, + }, + }, + JSXIdentifier { + type: "JSXIdentifier", + value: "foo", + + range: [5, 8], + loc: { + start: { column: 5, line: 1 }, + end: { column: 8, line: 1 }, + }, + }, + Punctuator { + type: "Punctuator", + value: "=", + + range: [8, 9], + loc: { + start: { column: 8, line: 1 }, + end: { column: 9, line: 1 }, + }, + }, + Punctuator { + type: "Punctuator", + value: "<", + + range: [9, 10], + loc: { + start: { column: 9, line: 1 }, + end: { column: 10, line: 1 }, + }, + }, + JSXIdentifier { + type: "JSXIdentifier", + value: "div", + + range: [10, 13], + loc: { + start: { column: 10, line: 1 }, + end: { column: 13, line: 1 }, + }, + }, + Punctuator { + type: "Punctuator", + value: "/", + + range: [13, 14], + loc: { + start: { column: 13, line: 1 }, + end: { column: 14, line: 1 }, + }, + }, + Punctuator { + type: "Punctuator", + value: ">", + + range: [14, 15], + loc: { + start: { column: 14, line: 1 }, + end: { column: 15, line: 1 }, + }, + }, + Punctuator { + type: "Punctuator", + value: "/", + + range: [16, 17], + loc: { + start: { column: 16, line: 1 }, + end: { column: 17, line: 1 }, + }, + }, + Punctuator { + type: "Punctuator", + value: ">", + + range: [17, 18], + loc: { + start: { column: 17, line: 1 }, + end: { column: 18, line: 1 }, + }, + }, +] +`; diff --git a/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-self-closing/snapshots/5-AST-Alignment-AST.shot b/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-self-closing/snapshots/5-AST-Alignment-AST.shot new file mode 100644 index 000000000000..f2e3d006593a --- /dev/null +++ b/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-self-closing/snapshots/5-AST-Alignment-AST.shot @@ -0,0 +1,6 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`AST Fixtures jsx JSXAttribute element-self-closing AST Alignment - AST 1`] = ` +"Snapshot Diff: +Compared values have no visual difference." +`; diff --git a/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-self-closing/snapshots/6-AST-Alignment-Tokens.shot b/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-self-closing/snapshots/6-AST-Alignment-Tokens.shot new file mode 100644 index 000000000000..c18356864d71 --- /dev/null +++ b/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-self-closing/snapshots/6-AST-Alignment-Tokens.shot @@ -0,0 +1,6 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`AST Fixtures jsx JSXAttribute element-self-closing AST Alignment - Token 1`] = ` +"Snapshot Diff: +Compared values have no visual difference." +`; From 0f9b00dc1be33df908a06da4497196b6daf5b64b Mon Sep 17 00:00:00 2001 From: auvred Date: Mon, 29 Jan 2024 21:29:15 +0300 Subject: [PATCH 3/3] chore: sync snapshots --- .../snapshots/1-TSESTree-AST.shot | 6 ++-- .../snapshots/2-TSESTree-Tokens.shot | 10 ++++++ .../snapshots/3-Babel-AST.shot | 6 ++-- .../snapshots/4-Babel-Tokens.shot | 10 ++++++ .../snapshots/1-TSESTree-AST.shot | 26 +++++++------- .../snapshots/2-TSESTree-Tokens.shot | 34 ++++++++++++------- .../snapshots/3-Babel-AST.shot | 26 +++++++------- .../snapshots/4-Babel-Tokens.shot | 34 ++++++++++++------- 8 files changed, 96 insertions(+), 56 deletions(-) diff --git a/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-non-self-closing/snapshots/1-TSESTree-AST.shot b/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-non-self-closing/snapshots/1-TSESTree-AST.shot index 9cf1e230ccd8..eab486714e39 100644 --- a/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-non-self-closing/snapshots/1-TSESTree-AST.shot +++ b/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-non-self-closing/snapshots/1-TSESTree-AST.shot @@ -121,16 +121,16 @@ Program { }, }, - range: [0, 26], + range: [0, 27], loc: { start: { column: 0, line: 1 }, - end: { column: 26, line: 1 }, + end: { column: 27, line: 1 }, }, }, ], sourceType: "script", - range: [0, 27], + range: [0, 28], loc: { start: { column: 0, line: 1 }, end: { column: 0, line: 2 }, diff --git a/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-non-self-closing/snapshots/2-TSESTree-Tokens.shot b/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-non-self-closing/snapshots/2-TSESTree-Tokens.shot index d6a2a02f0ddb..53e9b6e6968a 100644 --- a/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-non-self-closing/snapshots/2-TSESTree-Tokens.shot +++ b/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-non-self-closing/snapshots/2-TSESTree-Tokens.shot @@ -142,5 +142,15 @@ exports[`AST Fixtures jsx JSXAttribute element-non-self-closing TSESTree - Token end: { column: 26, line: 1 }, }, }, + Punctuator { + type: "Punctuator", + value: ";", + + range: [26, 27], + loc: { + start: { column: 26, line: 1 }, + end: { column: 27, line: 1 }, + }, + }, ] `; diff --git a/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-non-self-closing/snapshots/3-Babel-AST.shot b/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-non-self-closing/snapshots/3-Babel-AST.shot index 2c443b7da6fc..a4e6e9336d9a 100644 --- a/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-non-self-closing/snapshots/3-Babel-AST.shot +++ b/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-non-self-closing/snapshots/3-Babel-AST.shot @@ -121,16 +121,16 @@ Program { }, }, - range: [0, 26], + range: [0, 27], loc: { start: { column: 0, line: 1 }, - end: { column: 26, line: 1 }, + end: { column: 27, line: 1 }, }, }, ], sourceType: "script", - range: [0, 27], + range: [0, 28], loc: { start: { column: 0, line: 1 }, end: { column: 0, line: 2 }, diff --git a/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-non-self-closing/snapshots/4-Babel-Tokens.shot b/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-non-self-closing/snapshots/4-Babel-Tokens.shot index 0b9d81c1492f..01f9e5c53588 100644 --- a/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-non-self-closing/snapshots/4-Babel-Tokens.shot +++ b/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-non-self-closing/snapshots/4-Babel-Tokens.shot @@ -142,5 +142,15 @@ exports[`AST Fixtures jsx JSXAttribute element-non-self-closing Babel - Tokens 1 end: { column: 26, line: 1 }, }, }, + Punctuator { + type: "Punctuator", + value: ";", + + range: [26, 27], + loc: { + start: { column: 26, line: 1 }, + end: { column: 27, line: 1 }, + }, + }, ] `; diff --git a/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-self-closing/snapshots/1-TSESTree-AST.shot b/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-self-closing/snapshots/1-TSESTree-AST.shot index ee6ecfb1bbd8..664985ec64e6 100644 --- a/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-self-closing/snapshots/1-TSESTree-AST.shot +++ b/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-self-closing/snapshots/1-TSESTree-AST.shot @@ -44,24 +44,24 @@ Program { }, selfClosing: true, - range: [9, 15], + range: [9, 16], loc: { start: { column: 9, line: 1 }, - end: { column: 15, line: 1 }, + end: { column: 16, line: 1 }, }, }, - range: [9, 15], + range: [9, 16], loc: { start: { column: 9, line: 1 }, - end: { column: 15, line: 1 }, + end: { column: 16, line: 1 }, }, }, - range: [5, 15], + range: [5, 16], loc: { start: { column: 5, line: 1 }, - end: { column: 15, line: 1 }, + end: { column: 16, line: 1 }, }, }, ], @@ -77,30 +77,30 @@ Program { }, selfClosing: true, - range: [0, 18], + range: [0, 19], loc: { start: { column: 0, line: 1 }, - end: { column: 18, line: 1 }, + end: { column: 19, line: 1 }, }, }, - range: [0, 18], + range: [0, 19], loc: { start: { column: 0, line: 1 }, - end: { column: 18, line: 1 }, + end: { column: 19, line: 1 }, }, }, - range: [0, 18], + range: [0, 20], loc: { start: { column: 0, line: 1 }, - end: { column: 18, line: 1 }, + end: { column: 20, line: 1 }, }, }, ], sourceType: "script", - range: [0, 19], + range: [0, 21], loc: { start: { column: 0, line: 1 }, end: { column: 0, line: 2 }, diff --git a/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-self-closing/snapshots/2-TSESTree-Tokens.shot b/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-self-closing/snapshots/2-TSESTree-Tokens.shot index 7c25f9e88968..a854372f0ef6 100644 --- a/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-self-closing/snapshots/2-TSESTree-Tokens.shot +++ b/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-self-closing/snapshots/2-TSESTree-Tokens.shot @@ -66,40 +66,50 @@ exports[`AST Fixtures jsx JSXAttribute element-self-closing TSESTree - Tokens 1` type: "Punctuator", value: "/", - range: [13, 14], + range: [14, 15], loc: { - start: { column: 13, line: 1 }, - end: { column: 14, line: 1 }, + start: { column: 14, line: 1 }, + end: { column: 15, line: 1 }, }, }, Punctuator { type: "Punctuator", value: ">", - range: [14, 15], + range: [15, 16], loc: { - start: { column: 14, line: 1 }, - end: { column: 15, line: 1 }, + start: { column: 15, line: 1 }, + end: { column: 16, line: 1 }, }, }, Punctuator { type: "Punctuator", value: "/", - range: [16, 17], + range: [17, 18], loc: { - start: { column: 16, line: 1 }, - end: { column: 17, line: 1 }, + start: { column: 17, line: 1 }, + end: { column: 18, line: 1 }, }, }, Punctuator { type: "Punctuator", value: ">", - range: [17, 18], + range: [18, 19], loc: { - start: { column: 17, line: 1 }, - end: { column: 18, line: 1 }, + start: { column: 18, line: 1 }, + end: { column: 19, line: 1 }, + }, + }, + Punctuator { + type: "Punctuator", + value: ";", + + range: [19, 20], + loc: { + start: { column: 19, line: 1 }, + end: { column: 20, line: 1 }, }, }, ] diff --git a/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-self-closing/snapshots/3-Babel-AST.shot b/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-self-closing/snapshots/3-Babel-AST.shot index 0c2d8a86e0aa..505e346e0b1f 100644 --- a/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-self-closing/snapshots/3-Babel-AST.shot +++ b/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-self-closing/snapshots/3-Babel-AST.shot @@ -44,24 +44,24 @@ Program { }, selfClosing: true, - range: [9, 15], + range: [9, 16], loc: { start: { column: 9, line: 1 }, - end: { column: 15, line: 1 }, + end: { column: 16, line: 1 }, }, }, - range: [9, 15], + range: [9, 16], loc: { start: { column: 9, line: 1 }, - end: { column: 15, line: 1 }, + end: { column: 16, line: 1 }, }, }, - range: [5, 15], + range: [5, 16], loc: { start: { column: 5, line: 1 }, - end: { column: 15, line: 1 }, + end: { column: 16, line: 1 }, }, }, ], @@ -77,30 +77,30 @@ Program { }, selfClosing: true, - range: [0, 18], + range: [0, 19], loc: { start: { column: 0, line: 1 }, - end: { column: 18, line: 1 }, + end: { column: 19, line: 1 }, }, }, - range: [0, 18], + range: [0, 19], loc: { start: { column: 0, line: 1 }, - end: { column: 18, line: 1 }, + end: { column: 19, line: 1 }, }, }, - range: [0, 18], + range: [0, 20], loc: { start: { column: 0, line: 1 }, - end: { column: 18, line: 1 }, + end: { column: 20, line: 1 }, }, }, ], sourceType: "script", - range: [0, 19], + range: [0, 21], loc: { start: { column: 0, line: 1 }, end: { column: 0, line: 2 }, diff --git a/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-self-closing/snapshots/4-Babel-Tokens.shot b/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-self-closing/snapshots/4-Babel-Tokens.shot index e22c97ddb136..5da3b4ac7cb5 100644 --- a/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-self-closing/snapshots/4-Babel-Tokens.shot +++ b/packages/ast-spec/src/jsx/JSXAttribute/fixtures/element-self-closing/snapshots/4-Babel-Tokens.shot @@ -66,40 +66,50 @@ exports[`AST Fixtures jsx JSXAttribute element-self-closing Babel - Tokens 1`] = type: "Punctuator", value: "/", - range: [13, 14], + range: [14, 15], loc: { - start: { column: 13, line: 1 }, - end: { column: 14, line: 1 }, + start: { column: 14, line: 1 }, + end: { column: 15, line: 1 }, }, }, Punctuator { type: "Punctuator", value: ">", - range: [14, 15], + range: [15, 16], loc: { - start: { column: 14, line: 1 }, - end: { column: 15, line: 1 }, + start: { column: 15, line: 1 }, + end: { column: 16, line: 1 }, }, }, Punctuator { type: "Punctuator", value: "/", - range: [16, 17], + range: [17, 18], loc: { - start: { column: 16, line: 1 }, - end: { column: 17, line: 1 }, + start: { column: 17, line: 1 }, + end: { column: 18, line: 1 }, }, }, Punctuator { type: "Punctuator", value: ">", - range: [17, 18], + range: [18, 19], loc: { - start: { column: 17, line: 1 }, - end: { column: 18, line: 1 }, + start: { column: 18, line: 1 }, + end: { column: 19, line: 1 }, + }, + }, + Punctuator { + type: "Punctuator", + value: ";", + + range: [19, 20], + loc: { + start: { column: 19, line: 1 }, + end: { column: 20, line: 1 }, }, }, ]