Skip to content

Commit

Permalink
feat(core): add use unmerged tree to kakao compose test rule
Browse files Browse the repository at this point in the history
  • Loading branch information
Vacxe committed Jul 7, 2024
1 parent 4bf8b30 commit 1fd8edd
Showing 1 changed file with 11 additions and 8 deletions.
Original file line number Diff line number Diff line change
@@ -1,25 +1,28 @@
package io.github.kakaocup.compose.rule

import androidx.compose.ui.test.SemanticsMatcher
import androidx.compose.ui.test.SemanticsNodeInteraction
import androidx.compose.ui.test.SemanticsNodeInteractionCollection
import androidx.compose.ui.test.SemanticsNodeInteractionsProvider
import androidx.compose.ui.test.junit4.ComposeContentTestRule
import io.github.kakaocup.compose.KakaoCompose
import org.junit.rules.TestRule
import org.junit.runner.Description
import org.junit.runners.model.Statement

class KakaoComposeTestRule(
val semanticsProvider: SemanticsNodeInteractionsProvider,
val semanticsProvider: SemanticsNodeInteractionsProvider? = null,
val useUnmergedTree: Boolean? = null
) : TestRule {
override fun apply(base: Statement, description: Description): Statement =
object : Statement() {
override fun evaluate() {
val oldSemanticsProvided = KakaoCompose.Global.semanticsProvider
KakaoCompose.Global.semanticsProvider = semanticsProvider
val preEvaluatedSemanticsProvided = KakaoCompose.Global.semanticsProvider
semanticsProvider?.let { KakaoCompose.Global.semanticsProvider = it }
val preUseUnmergedTree = KakaoCompose.Override.useUnmergedTree
useUnmergedTree?.let { KakaoCompose.Override.useUnmergedTree = it }

base.evaluate()
KakaoCompose.Global.semanticsProvider = oldSemanticsProvided

KakaoCompose.Global.semanticsProvider = preEvaluatedSemanticsProvided
KakaoCompose.Override.useUnmergedTree = preUseUnmergedTree
}
}
}

0 comments on commit 1fd8edd

Please sign in to comment.