Skip to content

Commit 6964137

Browse files
authored
fix(37456): add tests for JsxOpeningElement nodes (#37752)
1 parent afc41f0 commit 6964137

File tree

4 files changed

+142
-3
lines changed

4 files changed

+142
-3
lines changed

tests/baselines/reference/tsxTypeArgumentsJsxPreserveOutput.js

Lines changed: 28 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ function Foo<T>() {
99
}
1010

1111
<>
12+
{/* JsxSelfClosingElement */}
1213
<Foo<unknown> />
1314
<Foo<string> />
1415
<Foo<boolean> />
@@ -19,7 +20,20 @@ function Foo<T>() {
1920
<Foo<undefined> />
2021
<Foo<TypeProps> />
2122
<Foo<InterfaceProps> />
22-
</>
23+
24+
{/* JsxOpeningElement */}
25+
<Foo<unknown>></Foo>
26+
<Foo<string>></Foo>
27+
<Foo<boolean>></Foo>
28+
<Foo<object>></Foo>
29+
<Foo<null>></Foo>
30+
<Foo<any>></Foo>
31+
<Foo<never>></Foo>
32+
<Foo<undefined>></Foo>
33+
<Foo<TypeProps>></Foo>
34+
<Foo<InterfaceProps>></Foo>
35+
</>
36+
2337

2438
//// [foo.jsx]
2539
"use strict";
@@ -29,6 +43,7 @@ function Foo() {
2943
return null;
3044
}
3145
<>
46+
3247
<Foo />
3348
<Foo />
3449
<Foo />
@@ -39,4 +54,16 @@ function Foo() {
3954
<Foo />
4055
<Foo />
4156
<Foo />
57+
58+
59+
<Foo></Foo>
60+
<Foo></Foo>
61+
<Foo></Foo>
62+
<Foo></Foo>
63+
<Foo></Foo>
64+
<Foo></Foo>
65+
<Foo></Foo>
66+
<Foo></Foo>
67+
<Foo></Foo>
68+
<Foo></Foo>
4269
</>;

tests/baselines/reference/tsxTypeArgumentsJsxPreserveOutput.symbols

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ function Foo<T>() {
1818
}
1919

2020
<>
21+
{/* JsxSelfClosingElement */}
2122
<Foo<unknown> />
2223
>Foo : Symbol(Foo, Decl(foo.tsx, 3, 43))
2324

@@ -50,4 +51,48 @@ function Foo<T>() {
5051
>Foo : Symbol(Foo, Decl(foo.tsx, 3, 43))
5152
>InterfaceProps : Symbol(InterfaceProps, Decl(foo.tsx, 2, 36))
5253

54+
{/* JsxOpeningElement */}
55+
<Foo<unknown>></Foo>
56+
>Foo : Symbol(Foo, Decl(foo.tsx, 3, 43))
57+
>Foo : Symbol(Foo, Decl(foo.tsx, 3, 43))
58+
59+
<Foo<string>></Foo>
60+
>Foo : Symbol(Foo, Decl(foo.tsx, 3, 43))
61+
>Foo : Symbol(Foo, Decl(foo.tsx, 3, 43))
62+
63+
<Foo<boolean>></Foo>
64+
>Foo : Symbol(Foo, Decl(foo.tsx, 3, 43))
65+
>Foo : Symbol(Foo, Decl(foo.tsx, 3, 43))
66+
67+
<Foo<object>></Foo>
68+
>Foo : Symbol(Foo, Decl(foo.tsx, 3, 43))
69+
>Foo : Symbol(Foo, Decl(foo.tsx, 3, 43))
70+
71+
<Foo<null>></Foo>
72+
>Foo : Symbol(Foo, Decl(foo.tsx, 3, 43))
73+
>Foo : Symbol(Foo, Decl(foo.tsx, 3, 43))
74+
75+
<Foo<any>></Foo>
76+
>Foo : Symbol(Foo, Decl(foo.tsx, 3, 43))
77+
>Foo : Symbol(Foo, Decl(foo.tsx, 3, 43))
78+
79+
<Foo<never>></Foo>
80+
>Foo : Symbol(Foo, Decl(foo.tsx, 3, 43))
81+
>Foo : Symbol(Foo, Decl(foo.tsx, 3, 43))
82+
83+
<Foo<undefined>></Foo>
84+
>Foo : Symbol(Foo, Decl(foo.tsx, 3, 43))
85+
>Foo : Symbol(Foo, Decl(foo.tsx, 3, 43))
86+
87+
<Foo<TypeProps>></Foo>
88+
>Foo : Symbol(Foo, Decl(foo.tsx, 3, 43))
89+
>TypeProps : Symbol(TypeProps, Decl(foo.tsx, 0, 32))
90+
>Foo : Symbol(Foo, Decl(foo.tsx, 3, 43))
91+
92+
<Foo<InterfaceProps>></Foo>
93+
>Foo : Symbol(Foo, Decl(foo.tsx, 3, 43))
94+
>InterfaceProps : Symbol(InterfaceProps, Decl(foo.tsx, 2, 36))
95+
>Foo : Symbol(Foo, Decl(foo.tsx, 3, 43))
96+
5397
</>
98+

tests/baselines/reference/tsxTypeArgumentsJsxPreserveOutput.types

Lines changed: 55 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,9 @@ function Foo<T>() {
1717
}
1818

1919
<>
20-
><> <Foo<unknown> /> <Foo<string> /> <Foo<boolean> /> <Foo<object> /> <Foo<null> /> <Foo<any> /> <Foo<never> /> <Foo<undefined> /> <Foo<TypeProps> /> <Foo<InterfaceProps> /></> : JSX.Element
20+
><> {/* JsxSelfClosingElement */} <Foo<unknown> /> <Foo<string> /> <Foo<boolean> /> <Foo<object> /> <Foo<null> /> <Foo<any> /> <Foo<never> /> <Foo<undefined> /> <Foo<TypeProps> /> <Foo<InterfaceProps> /> {/* JsxOpeningElement */} <Foo<unknown>></Foo> <Foo<string>></Foo> <Foo<boolean>></Foo> <Foo<object>></Foo> <Foo<null>></Foo> <Foo<any>></Foo> <Foo<never>></Foo> <Foo<undefined>></Foo> <Foo<TypeProps>></Foo> <Foo<InterfaceProps>></Foo></> : JSX.Element
2121

22+
{/* JsxSelfClosingElement */}
2223
<Foo<unknown> />
2324
><Foo<unknown> /> : JSX.Element
2425
>Foo : <T>() => any
@@ -58,6 +59,59 @@ function Foo<T>() {
5859

5960
<Foo<InterfaceProps> />
6061
><Foo<InterfaceProps> /> : JSX.Element
62+
>Foo : <T>() => any
63+
64+
{/* JsxOpeningElement */}
65+
<Foo<unknown>></Foo>
66+
><Foo<unknown>></Foo> : JSX.Element
67+
>Foo : <T>() => any
68+
>Foo : <T>() => any
69+
70+
<Foo<string>></Foo>
71+
><Foo<string>></Foo> : JSX.Element
72+
>Foo : <T>() => any
73+
>Foo : <T>() => any
74+
75+
<Foo<boolean>></Foo>
76+
><Foo<boolean>></Foo> : JSX.Element
77+
>Foo : <T>() => any
78+
>Foo : <T>() => any
79+
80+
<Foo<object>></Foo>
81+
><Foo<object>></Foo> : JSX.Element
82+
>Foo : <T>() => any
83+
>Foo : <T>() => any
84+
85+
<Foo<null>></Foo>
86+
><Foo<null>></Foo> : JSX.Element
87+
>Foo : <T>() => any
88+
>null : null
89+
>Foo : <T>() => any
90+
91+
<Foo<any>></Foo>
92+
><Foo<any>></Foo> : JSX.Element
93+
>Foo : <T>() => any
94+
>Foo : <T>() => any
95+
96+
<Foo<never>></Foo>
97+
><Foo<never>></Foo> : JSX.Element
98+
>Foo : <T>() => any
99+
>Foo : <T>() => any
100+
101+
<Foo<undefined>></Foo>
102+
><Foo<undefined>></Foo> : JSX.Element
103+
>Foo : <T>() => any
104+
>Foo : <T>() => any
105+
106+
<Foo<TypeProps>></Foo>
107+
><Foo<TypeProps>></Foo> : JSX.Element
108+
>Foo : <T>() => any
109+
>Foo : <T>() => any
110+
111+
<Foo<InterfaceProps>></Foo>
112+
><Foo<InterfaceProps>></Foo> : JSX.Element
113+
>Foo : <T>() => any
61114
>Foo : <T>() => any
62115

63116
</>
117+

tests/cases/conformance/jsx/tsxTypeArgumentsJsxPreserveOutput.tsx

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ function Foo<T>() {
1414
}
1515

1616
<>
17+
{/* JsxSelfClosingElement */}
1718
<Foo<unknown> />
1819
<Foo<string> />
1920
<Foo<boolean> />
@@ -24,4 +25,16 @@ function Foo<T>() {
2425
<Foo<undefined> />
2526
<Foo<TypeProps> />
2627
<Foo<InterfaceProps> />
27-
</>
28+
29+
{/* JsxOpeningElement */}
30+
<Foo<unknown>></Foo>
31+
<Foo<string>></Foo>
32+
<Foo<boolean>></Foo>
33+
<Foo<object>></Foo>
34+
<Foo<null>></Foo>
35+
<Foo<any>></Foo>
36+
<Foo<never>></Foo>
37+
<Foo<undefined>></Foo>
38+
<Foo<TypeProps>></Foo>
39+
<Foo<InterfaceProps>></Foo>
40+
</>

0 commit comments

Comments
 (0)