Skip to content

Commit 47ddb0a

Browse files
author
sjin
committed
Add federation url check to generator
1 parent aa07c9a commit 47ddb0a

File tree

2 files changed

+23
-2
lines changed

2 files changed

+23
-2
lines changed

generator/graphql-kotlin-federation/src/main/kotlin/com/expediagroup/graphql/generator/federation/FederatedSchemaGeneratorHooks.kt

+2-2
Original file line numberDiff line numberDiff line change
@@ -100,9 +100,9 @@ open class FederatedSchemaGeneratorHooks(
100100

101101
data class LinkSpec(val namespace: String, val imports: Map<String, String>, val url: String? = FEDERATION_SPEC_LATEST_URL)
102102

103-
public val linkSpecs: MutableMap<String, LinkSpec> = HashMap()
103+
val linkSpecs: MutableMap<String, LinkSpec> = HashMap()
104104

105-
private val federationUrl: String
105+
val federationUrl: String
106106
get() = linkSpecs[FEDERATION_SPEC]?.url ?: FEDERATION_SPEC_LATEST_URL
107107

108108
// workaround to https://github.com/ExpediaGroup/graphql-kotlin/issues/1815

generator/graphql-kotlin-federation/src/test/kotlin/com/expediagroup/graphql/generator/federation/FederatedSchemaGeneratorTest.kt

+21
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,9 @@ import com.expediagroup.graphql.generator.TopLevelObject
2020
import com.expediagroup.graphql.generator.extensions.print
2121
import com.expediagroup.graphql.generator.federation.data.queries.simple.NestedQuery
2222
import com.expediagroup.graphql.generator.federation.data.queries.simple.SimpleQuery
23+
import com.expediagroup.graphql.generator.federation.directives.FEDERATION_SPEC
24+
import com.expediagroup.graphql.generator.federation.directives.FEDERATION_SPEC_LATEST_URL
25+
import com.expediagroup.graphql.generator.federation.directives.FEDERATION_SPEC_URL_PREFIX
2326
import com.expediagroup.graphql.generator.federation.directives.KEY_DIRECTIVE_NAME
2427
import com.expediagroup.graphql.generator.federation.types.ENTITY_UNION_NAME
2528
import graphql.schema.GraphQLUnionType
@@ -278,4 +281,22 @@ class FederatedSchemaGeneratorTest {
278281
val schema = toFederatedSchema(config, listOf(TopLevelObject(NestedQuery())))
279282
assertEquals(expectedSchema, schema.print(includeDirectives = true).trim())
280283
}
284+
285+
@Test
286+
fun `verify federationUrl property returns correct URL`() {
287+
val hooks = FederatedSchemaGeneratorHooks(emptyList()).apply {
288+
this.linkSpecs[FEDERATION_SPEC] = FederatedSchemaGeneratorHooks.LinkSpec(
289+
namespace = FEDERATION_SPEC,
290+
imports = emptyMap(),
291+
url = "$FEDERATION_SPEC_URL_PREFIX/v2.5"
292+
)
293+
}
294+
assertEquals("$FEDERATION_SPEC_URL_PREFIX/v2.5", hooks.federationUrl)
295+
}
296+
297+
@Test
298+
fun `verify federationUrl property returns default when not specified`() {
299+
val hooks = FederatedSchemaGeneratorHooks(emptyList())
300+
assertEquals(FEDERATION_SPEC_LATEST_URL, hooks.federationUrl)
301+
}
281302
}

0 commit comments

Comments
 (0)