Skip to content

Commit

Permalink
fix: remove code smells
Browse files Browse the repository at this point in the history
  • Loading branch information
Balcan committed Dec 4, 2024
1 parent 2ee4dbf commit ba3b8cd
Show file tree
Hide file tree
Showing 2 changed files with 42 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -45,16 +45,16 @@ open class FormBaseConfiguration(private val d2: D2) {
val optionInGroupToHide = d2.optionModule().optionGroups()
.withOptions()
.byUid().`in`(optionGroupsToHide)
.blockingGet().find { optionGroup ->
.blockingGet().any { optionGroup ->
optionGroup.options()?.map { it.uid() }?.contains(option.uid()) == true
} != null
}

val optionInGroupToShow = d2.optionModule().optionGroups()
.withOptions()
.byUid().`in`(optionGroupsToShow)
.blockingGet().find { optionGroup ->
.blockingGet().any { optionGroup ->
optionGroup.options()?.map { it.uid() }?.contains(option.uid()) == true
} != null
}

val hideOption = if (optionGroupsToShow.isEmpty()) {
optionsToHide.contains(option.uid()) || optionInGroupToHide
Expand Down
40 changes: 38 additions & 2 deletions form/src/test/java/org/dhis2/form/data/FormRepositoryImplTest.kt
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,14 @@ package org.dhis2.form.data

import androidx.databinding.ObservableField
import io.reactivex.Flowable
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.emptyFlow
import org.dhis2.commons.prefs.PreferenceProvider
import org.dhis2.form.model.ActionType
import org.dhis2.form.model.EventCategory
import org.dhis2.form.model.FieldUiModel
import org.dhis2.form.model.FieldUiModelImpl
import org.dhis2.form.model.OptionSetConfiguration
import org.dhis2.form.model.RowAction
import org.dhis2.form.model.SectionUiModelImpl
import org.dhis2.form.model.StoreResult
Expand All @@ -30,6 +33,7 @@ import org.junit.Before
import org.junit.Test
import org.mockito.kotlin.any
import org.mockito.kotlin.anyOrNull
import org.mockito.kotlin.atLeast
import org.mockito.kotlin.doReturn
import org.mockito.kotlin.doReturnConsecutively
import org.mockito.kotlin.mock
Expand Down Expand Up @@ -200,6 +204,14 @@ class FormRepositoryImplTest {
mutableMapOf(Pair("field", "uid001")),
),
),
RuleEffect(
"rule2",
RuleAction(
"option1",
ProgramRuleActionType.HIDEOPTION.name,
mutableMapOf(Pair("field", "uid004")),
),
),
)

whenever(dataEntryRepository.isEvent()) doReturn true
Expand All @@ -215,12 +227,21 @@ class FormRepositoryImplTest {
fieldsToUpdate = listOf(FieldWithNewValue("uid001", "newValue")),
configurationErrors = emptyList(),
stagesToHide = emptyList(),
optionsToHide = emptyMap(),
optionsToHide = mapOf(
"uid004" to listOf("option1"),
),
optionGroupsToHide = emptyMap(),
optionGroupsToShow = emptyMap(),
)

verify(rulesUtilsProvider, times(1)).applyRuleEffects(
whenever(dataEntryRepository.options(any(), any(), any(), any()))doReturn Pair(
MutableStateFlow(""),
emptyFlow(),
)

repository.composeList()

verify(rulesUtilsProvider, atLeast(1)).applyRuleEffects(
any(),
any(),
any(),
Expand Down Expand Up @@ -441,6 +462,21 @@ class FormRepositoryImplTest {
optionSetConfiguration = null,
autocompleteList = null,
),
FieldUiModelImpl(
uid = "uid004",
value = null,
label = "field4",
valueType = ValueType.TEXT,
programStageSection = "section1",
uiEventFactory = null,
optionSet = "optionSetUid",
optionSetConfiguration = OptionSetConfiguration(
MutableStateFlow(""),
{},
emptyFlow(),
),
autocompleteList = null,
),
)

private fun section1() = SectionUiModelImpl(
Expand Down

0 comments on commit ba3b8cd

Please sign in to comment.