commit d119993059159885d75b6c49417533c8bda03a1e
parent d79070cf10ef3c99d0728475d76b82f4d9c7dbbc
Author: triesap <tyson@radroots.org>
Date: Sat, 1 Aug 2026 18:25:30 +0000
test: centralize synthetic account fixtures
- define reusable accounts under the test source boundary
- reserve example domains for deterministic account data
- provide valid selected state construction for later suites
- remove duplicated model fixture construction
Diffstat:
2 files changed, 36 insertions(+), 16 deletions(-)
diff --git a/app/desktop/src/test/kotlin/org/radroots/studio/accounts/TestAccounts.kt b/app/desktop/src/test/kotlin/org/radroots/studio/accounts/TestAccounts.kt
@@ -0,0 +1,26 @@
+package org.radroots.studio.accounts
+
+import org.radroots.studio.accounts.model.Account
+import org.radroots.studio.accounts.model.AccountId
+import org.radroots.studio.accounts.model.AccountsState
+import org.radroots.studio.accounts.model.LoginStatus
+
+internal fun testAccount(
+ id: String = "account-1",
+ displayName: String = "Farm Account",
+ serverUrl: String = "https://farm.example.test",
+ loginStatus: LoginStatus = LoginStatus.LoggedOut,
+) = Account(
+ id = AccountId(id),
+ displayName = displayName,
+ serverUrl = serverUrl,
+ loginStatus = loginStatus,
+)
+
+internal fun testAccountsState(
+ vararg accounts: Account,
+ selectedAccountId: AccountId? = accounts.firstOrNull()?.id,
+) = AccountsState(
+ accounts = accounts.toList(),
+ selectedAccountId = selectedAccountId,
+)
diff --git a/app/desktop/src/test/kotlin/org/radroots/studio/accounts/model/AccountsStateTest.kt b/app/desktop/src/test/kotlin/org/radroots/studio/accounts/model/AccountsStateTest.kt
@@ -4,6 +4,7 @@ import kotlin.test.Test
import kotlin.test.assertEquals
import kotlin.test.assertFailsWith
import kotlin.test.assertNull
+import org.radroots.studio.accounts.testAccount
class AccountsStateTest {
@Test
@@ -34,7 +35,7 @@ class AccountsStateTest {
@Test
fun validStatePassesInvariantValidation() {
- val account = validAccount()
+ val account = testAccount()
assertEquals(
AccountsState(
@@ -76,7 +77,7 @@ class AccountsStateTest {
@Test
fun duplicateIdsAreRejected() {
- val account = validAccount()
+ val account = testAccount()
assertFailsWith<IllegalArgumentException> {
AccountsState(
@@ -88,7 +89,7 @@ class AccountsStateTest {
@Test
fun danglingSelectionAndRemovalTargetsAreRejected() {
- val account = validAccount()
+ val account = testAccount()
val missingId = AccountId("missing")
listOf(
@@ -110,19 +111,12 @@ class AccountsStateTest {
}
}
- private fun validAccount() = Account(
- id = AccountId("account-1"),
- displayName = "Farm Account",
- serverUrl = "https://farm.example.test",
- loginStatus = LoginStatus.LoggedOut,
- )
-
private fun invalidAccounts() = listOf(
- validAccount().copy(id = AccountId("")),
- validAccount().copy(id = AccountId(" account-1")),
- validAccount().copy(displayName = ""),
- validAccount().copy(displayName = " Farm Account"),
- validAccount().copy(serverUrl = "ftp://farm.example.test"),
- validAccount().copy(serverUrl = "HTTPS://FARM.EXAMPLE.TEST"),
+ testAccount().copy(id = AccountId("")),
+ testAccount().copy(id = AccountId(" account-1")),
+ testAccount().copy(displayName = ""),
+ testAccount().copy(displayName = " Farm Account"),
+ testAccount().copy(serverUrl = "ftp://farm.example.test"),
+ testAccount().copy(serverUrl = "HTTPS://FARM.EXAMPLE.TEST"),
)
}