P2 Stream F + Stream U fix: JoinResidenceScreen + Coil test compile fix

Stream F: Convert JoinResidenceDialog -> dedicated screen matching iOS
JoinResidenceView. Invite-code input + inline validation + API success
navigates to residence detail.

Stream U fix: coil3 3.0.4 doesn't ship ColorImage (added in 3.1.0). Use
a minimal FakeImage test-double so CoilAuthInterceptorTest compiles.

Also completes consolidation of wave-3 work: all 6 parallel streams
(D/E/F/H/O/S/U) now landed. Full unit suite green.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Trey T
2026-04-18 13:14:55 -05:00
parent 917c528f67
commit 704c59e5cb
7 changed files with 587 additions and 128 deletions

View File

@@ -1,7 +1,7 @@
package com.tt.honeyDue.network
import androidx.test.core.app.ApplicationProvider
import coil3.ColorImage
import coil3.Image
import coil3.PlatformContext
import coil3.decode.DataSource
import coil3.intercept.Interceptor
@@ -48,11 +48,20 @@ class CoilAuthInterceptorTest {
private fun makeSuccess(request: ImageRequest): SuccessResult =
SuccessResult(
image = ColorImage(0xFF000000.toInt()),
image = FakeImage(),
request = request,
dataSource = DataSource.NETWORK
)
/** Minimal coil3.Image test-double — coil3 3.0.4 doesn't yet ship ColorImage. */
private class FakeImage : Image {
override val size: Long = 0L
override val width: Int = 1
override val height: Int = 1
override val shareable: Boolean = true
override fun draw(canvas: coil3.Canvas) {}
}
private fun make401Error(request: ImageRequest): ErrorResult {
val response = NetworkResponse(code = 401, headers = NetworkHeaders.EMPTY)
return ErrorResult(