Skip to content

Commit 43433eb

Browse files
committed
Add tests related to the key prop when using new JSX transform
1 parent 8963338 commit 43433eb

21 files changed

+678
-0
lines changed
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
//// [jsxJsxsCjsTransformKeyProp.tsx]
2+
/// <reference path="/.lib/react16.d.ts" />
3+
const props = { answer: 42 }
4+
const a = <div key="foo" {...props}>text</div>;
5+
const b = <div {...props} key="bar">text</div>;
6+
7+
export {};
8+
9+
10+
//// [jsxJsxsCjsTransformKeyProp.js]
11+
"use strict";
12+
var __assign = (this && this.__assign) || function () {
13+
__assign = Object.assign || function(t) {
14+
for (var s, i = 1, n = arguments.length; i < n; i++) {
15+
s = arguments[i];
16+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
17+
t[p] = s[p];
18+
}
19+
return t;
20+
};
21+
return __assign.apply(this, arguments);
22+
};
23+
exports.__esModule = true;
24+
var jsx_runtime_js_1 = require("react/jsx-runtime.js");
25+
/// <reference path="react16.d.ts" />
26+
var props = { answer: 42 };
27+
var a = jsx_runtime_js_1.jsx("div", __assign({}, props, { children: "text" }), "foo");
28+
var b = React.createElement("div", __assign({}, props, { key: "bar" }), "text");
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
=== tests/cases/conformance/jsx/jsxs/jsxJsxsCjsTransformKeyProp.tsx ===
2+
/// <reference path="react16.d.ts" />
3+
const props = { answer: 42 }
4+
>props : Symbol(props, Decl(jsxJsxsCjsTransformKeyProp.tsx, 1, 5))
5+
>answer : Symbol(answer, Decl(jsxJsxsCjsTransformKeyProp.tsx, 1, 15))
6+
7+
const a = <div key="foo" {...props}>text</div>;
8+
>a : Symbol(a, Decl(jsxJsxsCjsTransformKeyProp.tsx, 2, 5))
9+
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2420, 114))
10+
>key : Symbol(key, Decl(jsxJsxsCjsTransformKeyProp.tsx, 2, 14))
11+
>props : Symbol(props, Decl(jsxJsxsCjsTransformKeyProp.tsx, 1, 5))
12+
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2420, 114))
13+
14+
const b = <div {...props} key="bar">text</div>;
15+
>b : Symbol(b, Decl(jsxJsxsCjsTransformKeyProp.tsx, 3, 5))
16+
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2420, 114))
17+
>props : Symbol(props, Decl(jsxJsxsCjsTransformKeyProp.tsx, 1, 5))
18+
>key : Symbol(key, Decl(jsxJsxsCjsTransformKeyProp.tsx, 3, 25))
19+
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2420, 114))
20+
21+
export {};
22+
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
=== tests/cases/conformance/jsx/jsxs/jsxJsxsCjsTransformKeyProp.tsx ===
2+
/// <reference path="react16.d.ts" />
3+
const props = { answer: 42 }
4+
>props : { answer: number; }
5+
>{ answer: 42 } : { answer: number; }
6+
>answer : number
7+
>42 : 42
8+
9+
const a = <div key="foo" {...props}>text</div>;
10+
>a : JSX.Element
11+
><div key="foo" {...props}>text</div> : JSX.Element
12+
>div : any
13+
>key : string
14+
>props : { answer: number; }
15+
>div : any
16+
17+
const b = <div {...props} key="bar">text</div>;
18+
>b : JSX.Element
19+
><div {...props} key="bar">text</div> : JSX.Element
20+
>div : any
21+
>props : { answer: number; }
22+
>key : string
23+
>div : any
24+
25+
export {};
26+
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
//// [jsxJsxsCjsTransformKeyProp.tsx]
2+
/// <reference path="/.lib/react16.d.ts" />
3+
const props = { answer: 42 }
4+
const a = <div key="foo" {...props}>text</div>;
5+
const b = <div {...props} key="bar">text</div>;
6+
7+
export {};
8+
9+
10+
//// [jsxJsxsCjsTransformKeyProp.js]
11+
"use strict";
12+
var __assign = (this && this.__assign) || function () {
13+
__assign = Object.assign || function(t) {
14+
for (var s, i = 1, n = arguments.length; i < n; i++) {
15+
s = arguments[i];
16+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
17+
t[p] = s[p];
18+
}
19+
return t;
20+
};
21+
return __assign.apply(this, arguments);
22+
};
23+
exports.__esModule = true;
24+
var jsx_dev_runtime_js_1 = require("react/jsx-dev-runtime.js");
25+
var _jsxFileName = "tests/cases/conformance/jsx/jsxs/jsxJsxsCjsTransformKeyProp.tsx";
26+
/// <reference path="react16.d.ts" />
27+
var props = { answer: 42 };
28+
var a = jsx_dev_runtime_js_1.jsxDEV("div", __assign({}, props, { children: "text" }), "foo", false, { fileName: _jsxFileName, lineNumber: 3, columnNumber: 10 }, this);
29+
var b = React.createElement("div", __assign({}, props, { key: "bar" }), "text");
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
=== tests/cases/conformance/jsx/jsxs/jsxJsxsCjsTransformKeyProp.tsx ===
2+
/// <reference path="react16.d.ts" />
3+
const props = { answer: 42 }
4+
>props : Symbol(props, Decl(jsxJsxsCjsTransformKeyProp.tsx, 1, 5))
5+
>answer : Symbol(answer, Decl(jsxJsxsCjsTransformKeyProp.tsx, 1, 15))
6+
7+
const a = <div key="foo" {...props}>text</div>;
8+
>a : Symbol(a, Decl(jsxJsxsCjsTransformKeyProp.tsx, 2, 5))
9+
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2420, 114))
10+
>key : Symbol(key, Decl(jsxJsxsCjsTransformKeyProp.tsx, 2, 14))
11+
>props : Symbol(props, Decl(jsxJsxsCjsTransformKeyProp.tsx, 1, 5))
12+
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2420, 114))
13+
14+
const b = <div {...props} key="bar">text</div>;
15+
>b : Symbol(b, Decl(jsxJsxsCjsTransformKeyProp.tsx, 3, 5))
16+
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2420, 114))
17+
>props : Symbol(props, Decl(jsxJsxsCjsTransformKeyProp.tsx, 1, 5))
18+
>key : Symbol(key, Decl(jsxJsxsCjsTransformKeyProp.tsx, 3, 25))
19+
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2420, 114))
20+
21+
export {};
22+
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
=== tests/cases/conformance/jsx/jsxs/jsxJsxsCjsTransformKeyProp.tsx ===
2+
/// <reference path="react16.d.ts" />
3+
const props = { answer: 42 }
4+
>props : { answer: number; }
5+
>{ answer: 42 } : { answer: number; }
6+
>answer : number
7+
>42 : 42
8+
9+
const a = <div key="foo" {...props}>text</div>;
10+
>a : JSX.Element
11+
><div key="foo" {...props}>text</div> : JSX.Element
12+
>div : any
13+
>key : string
14+
>props : { answer: number; }
15+
>div : any
16+
17+
const b = <div {...props} key="bar">text</div>;
18+
>b : JSX.Element
19+
><div {...props} key="bar">text</div> : JSX.Element
20+
>div : any
21+
>props : { answer: number; }
22+
>key : string
23+
>div : any
24+
25+
export {};
26+
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
//// [jsxJsxsCjsTransformKeyPropCustomImport.tsx]
2+
/// <reference path="/.lib/react16.d.ts" />
3+
const props = { answer: 42 }
4+
const a = <div key="foo" {...props}>text</div>;
5+
const b = <div {...props} key="bar">text</div>;
6+
7+
export {};
8+
9+
10+
//// [jsxJsxsCjsTransformKeyPropCustomImport.js]
11+
"use strict";
12+
var __assign = (this && this.__assign) || function () {
13+
__assign = Object.assign || function(t) {
14+
for (var s, i = 1, n = arguments.length; i < n; i++) {
15+
s = arguments[i];
16+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
17+
t[p] = s[p];
18+
}
19+
return t;
20+
};
21+
return __assign.apply(this, arguments);
22+
};
23+
exports.__esModule = true;
24+
var jsx_runtime_js_1 = require("preact/jsx-runtime.js");
25+
/// <reference path="react16.d.ts" />
26+
var props = { answer: 42 };
27+
var a = jsx_runtime_js_1.jsx("div", __assign({}, props, { children: "text" }), "foo");
28+
var b = React.createElement("div", __assign({}, props, { key: "bar" }), "text");
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
=== tests/cases/conformance/jsx/jsxs/jsxJsxsCjsTransformKeyPropCustomImport.tsx ===
2+
/// <reference path="react16.d.ts" />
3+
const props = { answer: 42 }
4+
>props : Symbol(props, Decl(jsxJsxsCjsTransformKeyPropCustomImport.tsx, 1, 5))
5+
>answer : Symbol(answer, Decl(jsxJsxsCjsTransformKeyPropCustomImport.tsx, 1, 15))
6+
7+
const a = <div key="foo" {...props}>text</div>;
8+
>a : Symbol(a, Decl(jsxJsxsCjsTransformKeyPropCustomImport.tsx, 2, 5))
9+
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2420, 114))
10+
>key : Symbol(key, Decl(jsxJsxsCjsTransformKeyPropCustomImport.tsx, 2, 14))
11+
>props : Symbol(props, Decl(jsxJsxsCjsTransformKeyPropCustomImport.tsx, 1, 5))
12+
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2420, 114))
13+
14+
const b = <div {...props} key="bar">text</div>;
15+
>b : Symbol(b, Decl(jsxJsxsCjsTransformKeyPropCustomImport.tsx, 3, 5))
16+
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2420, 114))
17+
>props : Symbol(props, Decl(jsxJsxsCjsTransformKeyPropCustomImport.tsx, 1, 5))
18+
>key : Symbol(key, Decl(jsxJsxsCjsTransformKeyPropCustomImport.tsx, 3, 25))
19+
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2420, 114))
20+
21+
export {};
22+
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
=== tests/cases/conformance/jsx/jsxs/jsxJsxsCjsTransformKeyPropCustomImport.tsx ===
2+
/// <reference path="react16.d.ts" />
3+
const props = { answer: 42 }
4+
>props : { answer: number; }
5+
>{ answer: 42 } : { answer: number; }
6+
>answer : number
7+
>42 : 42
8+
9+
const a = <div key="foo" {...props}>text</div>;
10+
>a : JSX.Element
11+
><div key="foo" {...props}>text</div> : JSX.Element
12+
>div : any
13+
>key : string
14+
>props : { answer: number; }
15+
>div : any
16+
17+
const b = <div {...props} key="bar">text</div>;
18+
>b : JSX.Element
19+
><div {...props} key="bar">text</div> : JSX.Element
20+
>div : any
21+
>props : { answer: number; }
22+
>key : string
23+
>div : any
24+
25+
export {};
26+
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
//// [jsxJsxsCjsTransformKeyPropCustomImport.tsx]
2+
/// <reference path="/.lib/react16.d.ts" />
3+
const props = { answer: 42 }
4+
const a = <div key="foo" {...props}>text</div>;
5+
const b = <div {...props} key="bar">text</div>;
6+
7+
export {};
8+
9+
10+
//// [jsxJsxsCjsTransformKeyPropCustomImport.js]
11+
"use strict";
12+
var __assign = (this && this.__assign) || function () {
13+
__assign = Object.assign || function(t) {
14+
for (var s, i = 1, n = arguments.length; i < n; i++) {
15+
s = arguments[i];
16+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
17+
t[p] = s[p];
18+
}
19+
return t;
20+
};
21+
return __assign.apply(this, arguments);
22+
};
23+
exports.__esModule = true;
24+
var jsx_dev_runtime_js_1 = require("preact/jsx-dev-runtime.js");
25+
var _jsxFileName = "tests/cases/conformance/jsx/jsxs/jsxJsxsCjsTransformKeyPropCustomImport.tsx";
26+
/// <reference path="react16.d.ts" />
27+
var props = { answer: 42 };
28+
var a = jsx_dev_runtime_js_1.jsxDEV("div", __assign({}, props, { children: "text" }), "foo", false, { fileName: _jsxFileName, lineNumber: 3, columnNumber: 10 }, this);
29+
var b = React.createElement("div", __assign({}, props, { key: "bar" }), "text");
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
=== tests/cases/conformance/jsx/jsxs/jsxJsxsCjsTransformKeyPropCustomImport.tsx ===
2+
/// <reference path="react16.d.ts" />
3+
const props = { answer: 42 }
4+
>props : Symbol(props, Decl(jsxJsxsCjsTransformKeyPropCustomImport.tsx, 1, 5))
5+
>answer : Symbol(answer, Decl(jsxJsxsCjsTransformKeyPropCustomImport.tsx, 1, 15))
6+
7+
const a = <div key="foo" {...props}>text</div>;
8+
>a : Symbol(a, Decl(jsxJsxsCjsTransformKeyPropCustomImport.tsx, 2, 5))
9+
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2420, 114))
10+
>key : Symbol(key, Decl(jsxJsxsCjsTransformKeyPropCustomImport.tsx, 2, 14))
11+
>props : Symbol(props, Decl(jsxJsxsCjsTransformKeyPropCustomImport.tsx, 1, 5))
12+
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2420, 114))
13+
14+
const b = <div {...props} key="bar">text</div>;
15+
>b : Symbol(b, Decl(jsxJsxsCjsTransformKeyPropCustomImport.tsx, 3, 5))
16+
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2420, 114))
17+
>props : Symbol(props, Decl(jsxJsxsCjsTransformKeyPropCustomImport.tsx, 1, 5))
18+
>key : Symbol(key, Decl(jsxJsxsCjsTransformKeyPropCustomImport.tsx, 3, 25))
19+
>div : Symbol(JSX.IntrinsicElements.div, Decl(react16.d.ts, 2420, 114))
20+
21+
export {};
22+
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
=== tests/cases/conformance/jsx/jsxs/jsxJsxsCjsTransformKeyPropCustomImport.tsx ===
2+
/// <reference path="react16.d.ts" />
3+
const props = { answer: 42 }
4+
>props : { answer: number; }
5+
>{ answer: 42 } : { answer: number; }
6+
>answer : number
7+
>42 : 42
8+
9+
const a = <div key="foo" {...props}>text</div>;
10+
>a : JSX.Element
11+
><div key="foo" {...props}>text</div> : JSX.Element
12+
>div : any
13+
>key : string
14+
>props : { answer: number; }
15+
>div : any
16+
17+
const b = <div {...props} key="bar">text</div>;
18+
>b : JSX.Element
19+
><div {...props} key="bar">text</div> : JSX.Element
20+
>div : any
21+
>props : { answer: number; }
22+
>key : string
23+
>div : any
24+
25+
export {};
26+
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
//// [tests/cases/conformance/jsx/jsxs/jsxJsxsCjsTransformKeyPropCustomImportPragma.tsx] ////
2+
3+
//// [preact.tsx]
4+
/// <reference path="/.lib/react16.d.ts" />
5+
/* @jsxImportSource preact */
6+
const props = { answer: 42 }
7+
const a = <div key="foo" {...props}>text</div>;
8+
const b = <div {...props} key="bar">text</div>;
9+
10+
export {};
11+
12+
//// [react.tsx]
13+
/// <reference path="/.lib/react16.d.ts" />
14+
/* @jsxImportSource react */
15+
import "./preact";
16+
const props2 = { answer: 42 }
17+
const a2 = <div key="foo" {...props2}>text</div>;
18+
const b2 = <div {...props2} key="bar">text</div>;
19+
20+
export {};
21+
22+
23+
//// [preact.js]
24+
"use strict";
25+
var __assign = (this && this.__assign) || function () {
26+
__assign = Object.assign || function(t) {
27+
for (var s, i = 1, n = arguments.length; i < n; i++) {
28+
s = arguments[i];
29+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
30+
t[p] = s[p];
31+
}
32+
return t;
33+
};
34+
return __assign.apply(this, arguments);
35+
};
36+
exports.__esModule = true;
37+
var jsx_runtime_js_1 = require("preact/jsx-runtime.js");
38+
/// <reference path="react16.d.ts" />
39+
/* @jsxImportSource preact */
40+
var props = { answer: 42 };
41+
var a = jsx_runtime_js_1.jsx("div", __assign({}, props, { children: "text" }), "foo");
42+
var b = React.createElement("div", __assign({}, props, { key: "bar" }), "text");
43+
//// [react.js]
44+
"use strict";
45+
var __assign = (this && this.__assign) || function () {
46+
__assign = Object.assign || function(t) {
47+
for (var s, i = 1, n = arguments.length; i < n; i++) {
48+
s = arguments[i];
49+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
50+
t[p] = s[p];
51+
}
52+
return t;
53+
};
54+
return __assign.apply(this, arguments);
55+
};
56+
exports.__esModule = true;
57+
var jsx_runtime_js_1 = require("react/jsx-runtime.js");
58+
/// <reference path="react16.d.ts" />
59+
/* @jsxImportSource react */
60+
require("./preact");
61+
var props2 = { answer: 42 };
62+
var a2 = jsx_runtime_js_1.jsx("div", __assign({}, props2, { children: "text" }), "foo");
63+
var b2 = React.createElement("div", __assign({}, props2, { key: "bar" }), "text");

0 commit comments

Comments
 (0)