Skip to content

Commit 297c77c

Browse files
committed
fixes for tests to get proper event schemas
1 parent c138f3c commit 297c77c

File tree

3 files changed

+35
-6
lines changed

3 files changed

+35
-6
lines changed

packages/ts-transformers/test/fixtures/closures/handler-event-param.expected.tsx

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,15 @@ export default recipe({
3232
required: ["metrics"]
3333
} as const satisfies __ctHelpers.JSONSchema, (state) => {
3434
return {
35-
[UI]: (<button type="button" onClick={__ctHelpers.handler(true as const satisfies __ctHelpers.JSONSchema, {
35+
[UI]: (<button type="button" onClick={__ctHelpers.handler({
36+
anyOf: [{
37+
type: "object",
38+
properties: {
39+
detail: true
40+
},
41+
required: ["detail"]
42+
}]
43+
} as const satisfies __ctHelpers.JSONSchema, {
3644
$schema: "https://json-schema.org/draft/2020-12/schema",
3745
type: "object",
3846
properties: {

packages/ts-transformers/test/fixtures/closures/handler-unused-event.expected.tsx

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,15 @@ export default recipe({
1414
required: ["counter"]
1515
} as const satisfies __ctHelpers.JSONSchema, (state) => {
1616
return {
17-
[UI]: (<button type="button" onClick={__ctHelpers.handler(true as const satisfies __ctHelpers.JSONSchema, {
17+
[UI]: (<button type="button" onClick={__ctHelpers.handler({
18+
anyOf: [{
19+
type: "object",
20+
properties: {
21+
detail: true
22+
},
23+
required: ["detail"]
24+
}]
25+
} as const satisfies __ctHelpers.JSONSchema, {
1826
$schema: "https://json-schema.org/draft/2020-12/schema",
1927
type: "object",
2028
properties: {

packages/ts-transformers/test/utils.ts

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -57,11 +57,17 @@ export async function transformFiles(
5757
strict: true,
5858
};
5959

60+
// Merge environment types and custom types
61+
// Store environment types with .d.ts extension for consistent TypeScript resolution
6062
const allTypes: Record<string, string> = {
61-
...envTypesCache,
6263
...types,
6364
};
6465

66+
// Add environment types with .d.ts extension
67+
for (const [key, value] of Object.entries(envTypesCache)) {
68+
allTypes[`${key}.d.ts`] = value;
69+
}
70+
6571
const host: ts.CompilerHost = {
6672
getSourceFile: (name) => {
6773
if (files[name] !== undefined) {
@@ -75,7 +81,7 @@ export async function transformFiles(
7581
if (name === "lib.d.ts" || name.endsWith("/lib.d.ts")) {
7682
return ts.createSourceFile(
7783
name,
78-
allTypes.es2023 || "",
84+
allTypes["es2023.d.ts"] || "",
7985
compilerOptions.target!,
8086
true,
8187
);
@@ -113,7 +119,7 @@ export async function transformFiles(
113119
readFile: (name) => {
114120
if (files[name]) return files[name];
115121
if (name === "lib.d.ts" || name.endsWith("/lib.d.ts")) {
116-
return allTypes.es2023;
122+
return allTypes["es2023.d.ts"];
117123
}
118124
if (allTypes[name]) return allTypes[name];
119125
const baseName = baseNameFromPath(name);
@@ -160,7 +166,14 @@ export async function transformFiles(
160166
}),
161167
};
162168

163-
const program = ts.createProgram(Object.keys(files), compilerOptions, host);
169+
// Include type definition files in the program so their global declarations are loaded
170+
// This is critical for JSX.IntrinsicElements and other global type augmentations
171+
const typeDefFiles = Object.keys(allTypes).filter((name) =>
172+
name.endsWith(".d.ts")
173+
);
174+
const rootFiles = [...Object.keys(files), ...typeDefFiles];
175+
176+
const program = ts.createProgram(rootFiles, compilerOptions, host);
164177

165178
if (logger) {
166179
const diagnostics = ts.getPreEmitDiagnostics(program);

0 commit comments

Comments
 (0)