From 676bfd2451f522420099209af19f3b3622cc6496 Mon Sep 17 00:00:00 2001 From: Rocky <72559939+hkgood@users.noreply.github.com> Date: Sun, 16 Aug 2026 21:14:50 +0800 Subject: [PATCH] Fix production referral service wiring Bind the referral route interface to its service and extend the module regression test to cover every route-facing operations boundary. --- src/main/kotlin/com/osglab/account/Application.kt | 2 ++ src/test/kotlin/com/osglab/account/ApplicationTest.kt | 6 +++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/main/kotlin/com/osglab/account/Application.kt b/src/main/kotlin/com/osglab/account/Application.kt index b85bf79..9ef91b9 100644 --- a/src/main/kotlin/com/osglab/account/Application.kt +++ b/src/main/kotlin/com/osglab/account/Application.kt @@ -83,6 +83,7 @@ import com.osglab.account.features.inviteweb.InviteWebConfig import com.osglab.account.features.inviteweb.ReferralLookupPort import com.osglab.account.features.inviteweb.configureInviteWebRoutes import com.osglab.account.features.referrals.routes.referralRoutes +import com.osglab.account.features.referrals.services.ReferralOperations import com.osglab.account.features.referrals.services.ReferralService import com.osglab.account.features.referrals.services.ReferralRiskIdentity import com.osglab.account.features.referrals.services.ReferralRiskProvider @@ -422,6 +423,7 @@ fun accountServerModule(config: AppConfig): Module = module { bindingWindow = Duration.ofDays(config.credits.referralBindingDays), ) } + single { get() } single { val transactions = get() ReferralLookupPort { code -> diff --git a/src/test/kotlin/com/osglab/account/ApplicationTest.kt b/src/test/kotlin/com/osglab/account/ApplicationTest.kt index 207f094..37d2a38 100644 --- a/src/test/kotlin/com/osglab/account/ApplicationTest.kt +++ b/src/test/kotlin/com/osglab/account/ApplicationTest.kt @@ -5,6 +5,8 @@ import com.osglab.account.features.credits.repositories.BillingTransactionRunner import com.osglab.account.features.credits.repositories.BillingUnitOfWork import com.osglab.account.features.credits.services.CreditOperations import com.osglab.account.features.credits.services.CreditService +import com.osglab.account.features.referrals.services.ReferralOperations +import com.osglab.account.features.referrals.services.ReferralService import io.kotest.matchers.shouldBe import io.ktor.client.request.get import io.ktor.http.HttpStatusCode @@ -27,7 +29,7 @@ class ApplicationTest { } @Test - fun `application module exposes credit operations through its interface`() { + fun `application module exposes route services through their interfaces`() { val transactionRunner = object : BillingTransactionRunner { override suspend fun inTransaction(block: (BillingUnitOfWork) -> T): T = error("Transaction runner is not used while resolving dependencies") @@ -41,6 +43,8 @@ class ApplicationTest { try { application.koin.get() shouldBe application.koin.get() + application.koin.get() shouldBe + application.koin.get() } finally { application.close() }