Skip to content

Commit

Permalink
Added a test to verify that drafts are bulk finalized in oldest first…
Browse files Browse the repository at this point in the history
… order
  • Loading branch information
grzesiek2010 committed Aug 20, 2024
1 parent 2e9be6c commit cabe723
Showing 1 changed file with 36 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -1,12 +1,15 @@
package org.odk.collect.android.feature.formmanagement

import android.app.Application
import androidx.test.core.app.ApplicationProvider
import androidx.test.ext.junit.runners.AndroidJUnit4
import org.hamcrest.MatcherAssert.assertThat
import org.hamcrest.Matchers.equalTo
import org.junit.Rule
import org.junit.Test
import org.junit.rules.RuleChain
import org.junit.runner.RunWith
import org.odk.collect.android.injection.DaggerUtils
import org.odk.collect.android.support.TestDependencies
import org.odk.collect.android.support.pages.AccessControlPage
import org.odk.collect.android.support.pages.EditSavedFormPage
Expand All @@ -17,6 +20,8 @@ import org.odk.collect.android.support.pages.SaveOrDiscardFormDialog
import org.odk.collect.android.support.rules.CollectTestRule
import org.odk.collect.android.support.rules.RecentAppsRule
import org.odk.collect.android.support.rules.TestRuleChain
import org.odk.collect.forms.instances.Instance
import org.odk.collect.forms.instances.InstancesRepository
import org.odk.collect.strings.R.plurals
import org.odk.collect.strings.R.string

Expand Down Expand Up @@ -51,6 +56,37 @@ class BulkFinalizationTest {
.assertNumberOfFinalizedForms(2)
}

@Test
fun draftsAreBulkFinalizedInOldestFirstOrder() {
lateinit var instancesRepository: InstancesRepository
lateinit var draftForms: List<Instance>

rule.withProject("http://example.com")
.copyForm("one-question.xml", "example.com")
.startBlankForm("One Question")
.fillOutAndSave(QuestionAndAnswer("what is your age", "97"))
.startBlankForm("One Question")
.fillOutAndSave(QuestionAndAnswer("what is your age", "98")).also {
val application = ApplicationProvider.getApplicationContext<Application>()
val component = DaggerUtils.getComponent(application)
val currentProject = DaggerUtils.getComponent(application).currentProjectProvider().getCurrentProject()
instancesRepository = component.instancesRepositoryProvider().create(currentProject.uuid)
draftForms = instancesRepository.all.sortedBy { it.lastStatusChangeDate }
}

.clickDrafts(2)
.clickFinalizeAll(2)
.clickFinalize()
.checkIsSnackbarWithQuantityDisplayed(plurals.bulk_finalize_success, 2)

val finalizedForms = instancesRepository.all

val firstFinalizedForm = finalizedForms.find { it.instanceFilePath == draftForms[0].instanceFilePath }!!
val secondFinalizedForm = finalizedForms.find { it.instanceFilePath == draftForms[1].instanceFilePath }!!

assertThat(firstFinalizedForm.lastStatusChangeDate < secondFinalizedForm.lastStatusChangeDate, equalTo(true))
}

@Test
fun canNotBulkFinalizeDraftsInTheListOfSentForms() {
rule.withProject("http://example.com")
Expand Down

0 comments on commit cabe723

Please sign in to comment.