package com.yorvana.ui.navigation

import androidx.compose.ui.test.junit4.createComposeRule
import androidx.compose.ui.test.onNodeWithText
import com.yorvana.TestYorvanaApplication
import com.yorvana.ui.theme.YorvanaTheme
import org.junit.Rule
import org.junit.Test
import org.junit.runner.RunWith
import org.robolectric.RobolectricTestRunner
import org.robolectric.annotation.Config

@RunWith(RobolectricTestRunner::class)
@Config(application = TestYorvanaApplication::class, sdk = [34])
class SetupScreenTest {
    @get:Rule
    val composeTestRule = createComposeRule()

    @Test
    fun `setup screen displays title and description`() {
        val context = org.robolectric.RuntimeEnvironment.getApplication()
        composeTestRule.setContent {
            YorvanaTheme {
                SetupScreen()
            }
        }

        val welcomeText = context.getString(com.yorvana.R.string.setup_title)
        val chooseFolderText = context.getString(com.yorvana.R.string.setup_choose_folder)
        composeTestRule.onNodeWithText(welcomeText, substring = true).assertExists()
        composeTestRule.onNodeWithText(chooseFolderText, substring = true).assertExists()
    }

    // Testing the folder picker interaction in Robolectric is hard because it uses
    // rememberLauncherForActivityResult. Usually we mock the activity result.
}
