Skip to content

Commit

Permalink
Fixing issue with grouped test suites that have no test cases
Browse files Browse the repository at this point in the history
  • Loading branch information
craigatk committed Jan 15, 2020
1 parent 113bd79 commit 2626cf6
Show file tree
Hide file tree
Showing 3 changed files with 53 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -13,11 +13,12 @@ class GroupedResultsConverter(
val incomingGroupedResults = groupedResultsParser.parseGroupedResults(groupedResultsXml)

val groupedTestSuites = incomingGroupedResults.groupedTestSuites.map {
val nonEmptyTestSuites = testResultsProcessor.parseResultsBlob(it.testSuitesBlob).filter { testSuite -> !testSuite.testCases.isNullOrEmpty() }
GroupedTestSuites(
groupName = it.groupName,
groupLabel = it.groupLabel,
directory = it.directory,
testSuites = testResultsProcessor.parseResultsBlob(it.testSuitesBlob)
testSuites = nonEmptyTestSuites
)
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
package projektor.incomingresults

import kotlin.test.Test
import kotlin.test.assertNotNull
import kotlinx.coroutines.runBlocking
import org.awaitility.kotlin.await
import org.awaitility.kotlin.untilNotNull
import org.koin.core.inject
import projektor.DatabaseRepositoryTestCase
import projektor.parser.GroupedResultsXmlLoader
import projektor.parser.ResultsXmlLoader
import strikt.api.expectThat
import strikt.assertions.isNotEmpty

class GroupedTestResultsServiceTest : DatabaseRepositoryTestCase() {

@Test
fun `should filter out test suites that have no test cases`() {
val groupedTestResultsService: GroupedTestResultsService by inject()

val publicId = randomPublicId()

val resultXml = ResultsXmlLoader().cypressResults().joinToString("\n")
val groupedResultsJson = GroupedResultsXmlLoader().wrapResultsXmlInGroup(resultXml)

runBlocking { groupedTestResultsService.doPersistTestResults(publicId, groupedResultsJson) }

val testRun = await untilNotNull { testRunDao.fetchOneByPublicId(publicId.id) }
assertNotNull(testRun)

val testSuites = testSuiteDao.fetchByTestRunId(testRun.id)

testSuites.forEach { testSuite ->
val testCases = testCaseDao.fetchByTestSuiteId(testSuite.id)
expectThat(testCases).isNotEmpty()
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -26,4 +26,17 @@ class GroupedResultsXmlLoader {

return groupedResultsParser.serializeGroupedResults(groupedResults)
}

fun wrapResultsXmlInGroup(resultsXml: String): String {
val groupedTestSuites = GroupedTestSuites()
groupedTestSuites.groupName = "Group1"
groupedTestSuites.groupLabel = "unitTest"
groupedTestSuites.directory = "/test/unit"
groupedTestSuites.testSuitesBlob = resultsXml

val groupedResults = GroupedResults()
groupedResults.groupedTestSuites = listOf(groupedTestSuites)

return groupedResultsParser.serializeGroupedResults(groupedResults)
}
}

0 comments on commit 2626cf6

Please sign in to comment.