Skip to content

Commit a0d6a7b

Browse files
authored
Fix field nullability in Caliban schema instances (#490)
I copied the Cats Effect integration but it turns out [there was a bug in it](ghostdogpr/caliban#2296) 😄
1 parent 12184b4 commit a0d6a7b

File tree

2 files changed

+9
-7
lines changed

2 files changed

+9
-7
lines changed

kyo-caliban/src/main/scala/kyo/schemas.scala

+4-2
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ import zio.query.ZQuery
1010

1111
given zioSchema[R, T: Flat, S](using ev: Schema[R, T], ev2: (T < S) <:< (T < (Aborts[Throwable] & ZIOs))): Schema[R, T < S] =
1212
new Schema[R, T < S]:
13-
override def canFail: Boolean = true
13+
override def nullable: Boolean = ev.nullable
14+
override def canFail: Boolean = ev.canFail
1415

1516
override def toType(isInput: Boolean, isSubscription: Boolean): __Type =
1617
ev.toType_(isInput, isSubscription)
@@ -25,7 +26,8 @@ trait Runner[S]:
2526

2627
given runnerSchema[R, T: Flat, S](using ev: Schema[R, T], tag: zio.Tag[Runner[S]]): Schema[R & Runner[S], T < S] =
2728
new Schema[R & Runner[S], T < S]:
28-
override def canFail: Boolean = true
29+
override def nullable: Boolean = ev.nullable
30+
override def canFail: Boolean = ev.canFail
2931

3032
override def toType(isInput: Boolean, isSubscription: Boolean): __Type =
3133
ev.toType_(isInput, isSubscription)

kyo-caliban/src/test/scala/kyo/resolversTest.scala

+5-5
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,11 @@ class resolversTest extends KyoTest:
3535

3636
"schema derivation" in {
3737
val expected = """type Query {
38-
| k1: Int
39-
| k2: Int
40-
| k3: Int
41-
| k4: Int
42-
| k5: Int
38+
| k1: Int!
39+
| k2: Int!
40+
| k3: Int!
41+
| k4: Int!
42+
| k5: Int!
4343
|}""".stripMargin
4444
assert(render[Query].trim == expected)
4545
}

0 commit comments

Comments
 (0)