Skip to content

Instantly share code, notes, and snippets.

View krzdabrowski's full-sized avatar

Krzysztof Dąbrowski krzdabrowski

View GitHub Profile
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
"config:base"
],
"labels": [
"dependency-update"
],
"packageRules": [
{
name: CI workflow
on: pull_request
jobs:
build:
runs-on: macos-latest
timeout-minutes: 30
steps:
allprojects {
apply(
plugin = "io.gitlab.arturbosch.detekt"
)
detekt {
buildUponDefaultConfig = true
config = files("$rootDir/gradle/detekt.yml")
}
}
@HiltAndroidTest
class RocketsRouteTest {
@get:Rule(order = 0)
val hiltTestRule = HiltAndroidRule(this)
@get:Rule(order = 1)
val composeTestRule = createAndroidComposeRule<MainActivity>()
private val testRockets = generateTestRocketsFromDomain()
class HiltTestRunner : AndroidJUnitRunner() {
override fun newApplication(cl: ClassLoader?, name: String?, context: Context?): Application {
return super.newApplication(cl, HiltTestApplication::class.java.name, context)
}
}
internal fun generateTestRocketsFromDomain() = listOf(
Rocket(
id = "1",
name = "test rocket",
costPerLaunch = 10_000_000,
firstFlight = LocalDate.parse("2022-09-25"),
height = 20,
weight = 30_000,
wikiUrl = "https://testrocket.com",
imageUrl = "https://testrocket.com/1.jpg"
@Module
@TestInstallIn(
components = [SingletonComponent::class],
replaces = [RocketModule::class]
)
internal object FakeRocketModule {
@Provides
fun provideFakeGetRocketsUseCase(): GetRocketsUseCase {
return GetRocketsUseCase {
class RocketsScreenTest {
@get:Rule
val composeTestRule = createAndroidComposeRule<ComponentActivity>()
private val testRockets = generateTestRocketsFromPresentation()
private lateinit var rocketContentDescription: String
private lateinit var errorRefreshingMessage: String
(...)
@Composable
internal fun RocketsScreen(
uiState: RocketsUiState,
(...)
) {
(...)
if (uiState.rockets.isNotEmpty()) {
RocketsAvailableContent(
snackbarHostState = snackbarHostState,
const val ROCKET_DIVIDER_TEST_TAG = "rocketDividerTestTag"
@Composable
fun RocketsListContent(
rocketList: List<RocketDisplayable>,
(...)
) {
LazyColumn(...) {
itemsIndexed(
items = rocketList,