Skip to content

Commit 5879f1d

Browse files
committed
update tests to properly carry cell brands
1 parent 31e9a6f commit 5879f1d

19 files changed

+69
-49
lines changed

packages/schema-generator/src/formatters/common-tools-formatter.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -388,16 +388,16 @@ export class CommonToolsFormatter implements TypeFormatter {
388388
| undefined,
389389
targetKind: WrapperKind,
390390
): ts.TypeReferenceNode | undefined {
391-
if (resolvedWrapper?.kind === targetKind) {
392-
return resolvedWrapper.node;
393-
}
394391
if (
395392
originalNode &&
396393
ts.isTypeReferenceNode(originalNode) &&
397394
originalNode.typeArguments
398395
) {
399396
return originalNode;
400397
}
398+
if (resolvedWrapper?.kind === targetKind) {
399+
return resolvedWrapper.node;
400+
}
401401
return undefined;
402402
}
403403

packages/schema-generator/test/fixtures/schema/alias-edge-cases.input.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
interface Cell<T> {
1+
interface Cell<T> extends BrandedCell<T, "cell"> {
22
get(): T;
33
set(v: T): void;
44
}
55

6-
interface Stream<T> {
6+
interface Stream<T> extends BrandedCell<T, "stream"> {
77
subscribe(cb: (v: T) => void): void;
88
}
99

packages/schema-generator/test/fixtures/schema/aliases-of-aliases-cell-array.input.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
interface Cell<T> {
1+
interface Cell<T> extends BrandedCell<T, "cell"> {
22
get(): T;
33
set(v: T): void;
44
}

packages/schema-generator/test/fixtures/schema/array-of-cell-string.input.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
interface Cell<T> {
1+
interface Cell<T> extends BrandedCell<T, "cell"> {
22
get(): T;
33
set(v: T): void;
44
}

packages/schema-generator/test/fixtures/schema/cell-array-types.input.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
interface Cell<T> {
1+
interface Cell<T> extends BrandedCell<T, "cell"> {
22
get(): T;
33
set(v: T): void;
44
}
Lines changed: 28 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,49 @@
11
{
2-
"properties": {
3-
"comparableValue": {
2+
"$defs": {
3+
"MyComparableCell": {
44
"asCell": true,
55
"type": "number"
66
},
7-
"readonlyValue": {
7+
"MyOpaque": {
8+
"asOpaque": true,
9+
"type": "boolean"
10+
},
11+
"MyReadonlyCell": {
812
"asCell": true,
913
"type": "string"
1014
},
11-
"writeonlyValue": {
15+
"MyStream": {
16+
"asStream": true,
17+
"type": "number"
18+
},
19+
"MyWriteonlyCell": {
1220
"asCell": true,
1321
"type": "boolean"
22+
}
23+
},
24+
"properties": {
25+
"comparableValue": {
26+
"$ref": "#/$defs/MyComparableCell"
27+
},
28+
"opaqueValue": {
29+
"$ref": "#/$defs/MyOpaque"
30+
},
31+
"readonlyValue": {
32+
"$ref": "#/$defs/MyReadonlyCell"
1433
},
1534
"streamValue": {
16-
"asStream": true,
17-
"type": "number"
35+
"$ref": "#/$defs/MyStream"
1836
},
19-
"opaqueValue": {
20-
"asOpaque": true,
21-
"type": "boolean"
37+
"writeonlyValue": {
38+
"$ref": "#/$defs/MyWriteonlyCell"
2239
}
2340
},
2441
"required": [
2542
"comparableValue",
43+
"opaqueValue",
2644
"readonlyValue",
27-
"writeonlyValue",
2845
"streamValue",
29-
"opaqueValue"
46+
"writeonlyValue"
3047
],
3148
"type": "object"
3249
}

packages/schema-generator/test/fixtures/schema/cell-type.input.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
interface Cell<T> {
1+
interface Cell<T> extends BrandedCell<T, "cell"> {
22
get(): T;
33
set(v: T): void;
44
}

packages/schema-generator/test/fixtures/schema/default-type.input.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ interface ComplexDefault {
4141
}
4242

4343
// Test Default with Cell types
44-
interface Cell<T> {
44+
interface Cell<T> extends BrandedCell<T, "cell"> {
4545
get(): T;
4646
set(v: T): void;
4747
}

packages/schema-generator/test/fixtures/schema/descriptions-wrappers.input.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
type Default<T, V extends T = T> = T;
2-
interface Cell<T> {
2+
interface Cell<T> extends BrandedCell<T, "cell"> {
33
get(): T;
44
set(v: T): void;
55
}
6-
interface Stream<T> {
6+
interface Stream<T> extends BrandedCell<T, "stream"> {
77
subscribe(cb: (v: T) => void): void;
88
}
99

packages/schema-generator/test/fixtures/schema/opaque-opaqueref-stream.input.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
// This mimics the structure of BuiltInLLMState where cancelGeneration: Stream<void>
33
// becomes Opaque<OpaqueRef<Stream<void>>> when returned inside OpaqueRef<BuiltInLLMState>
44

5-
interface Stream<T> {
5+
interface Stream<T> extends BrandedCell<T, "stream"> {
66
send(event: T): void;
77
}
88

@@ -12,7 +12,10 @@ interface OpaqueRefMethods<T> {
1212
}
1313

1414
// OpaqueRef<T> is an intersection of OpaqueRefMethods<T> and T
15-
type OpaqueRef<T> = OpaqueRefMethods<T> & (
15+
type OpaqueRef<T> =
16+
& BrandedCell<T, "opaque">
17+
& OpaqueRefMethods<T>
18+
& (
1619
T extends Array<infer U> ? Array<OpaqueRef<U>>
1720
: T extends object ? { [K in keyof T]: OpaqueRef<T[K]> }
1821
: T

0 commit comments

Comments
 (0)