Skip to content

Commit

Permalink
Merge pull request #1682 from CruGlobal/drawerStateToggle
Browse files Browse the repository at this point in the history
add an extension method to toggle a drawer open/closed
  • Loading branch information
frett authored Jul 14, 2023
2 parents 5756b59 + fe22841 commit 4c154ba
Show file tree
Hide file tree
Showing 3 changed files with 49 additions and 0 deletions.
2 changes: 2 additions & 0 deletions gto-support-androidx-compose-material3/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ dependencies {

implementation(project(":gto-support-androidx-compose"))

testImplementation(libs.kotlin.coroutines.test)

// region Linkify support
implementation(libs.androidx.core)
// endregion Linkify support
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package org.ccci.gto.android.common.androidx.compose.material3.ui.navigationdrawer

import androidx.compose.material3.DrawerState
import androidx.compose.material3.DrawerValue

suspend fun DrawerState.toggle() = if (targetValue == DrawerValue.Open) close() else open()
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
package org.ccci.gto.android.common.androidx.compose.material3.ui.navigationdrawer

import androidx.compose.material3.DrawerState
import androidx.compose.material3.DrawerValue
import io.mockk.Runs
import io.mockk.coEvery
import io.mockk.coVerifyAll
import io.mockk.every
import io.mockk.excludeRecords
import io.mockk.just
import io.mockk.mockk
import kotlinx.coroutines.test.runTest
import org.junit.Test

class DrawerStateTest {
@Test
fun `toggle() - Drawer currently open`() = runTest {
val state: DrawerState = mockk {
every { targetValue } returns DrawerValue.Open
coEvery { close() } just Runs

excludeRecords { targetValue }
}

state.toggle()
coVerifyAll { state.close() }
}

@Test
fun `toggle() - Drawer currently closed`() = runTest {
val state: DrawerState = mockk {
every { targetValue } returns DrawerValue.Closed
coEvery { open() } just Runs

excludeRecords { targetValue }
}

state.toggle()
coVerifyAll { state.open() }
}
}

0 comments on commit 4c154ba

Please sign in to comment.