Skip to content

Commit

Permalink
Always update the baseline file if it exists already
Browse files Browse the repository at this point in the history
  • Loading branch information
BraisGabin committed Jan 3, 2022
1 parent da64952 commit beb229a
Show file tree
Hide file tree
Showing 4 changed files with 10 additions and 30 deletions.
Expand Up @@ -19,14 +19,19 @@ class BaselineFacade {

fun createOrUpdate(baselineFile: Path, findings: List<Finding>) {
val ids = findings.map { it.baselineId }.toSortedSet()
val baseline = if (baselineExists(baselineFile)) {
val exists = baselineExists(baselineFile)
val baseline = if (exists) {
Baseline.load(baselineFile).copy(currentIssues = ids)
} else {
Baseline(emptySet(), ids)
}
baselineFile.parent?.let { Files.createDirectories(it) }
BaselineFormat().write(baseline, baselineFile)
if (baseline.isNotEmpty() || exists) {
baselineFile.parent?.let { Files.createDirectories(it) }
BaselineFormat().write(baseline, baselineFile)
}
}

private fun baselineExists(baseline: Path) = baseline.exists() && baseline.isFile()

private fun Baseline.isNotEmpty() = currentIssues.isNotEmpty() || manuallySuppressedIssues.isNotEmpty()
}
Expand Up @@ -33,10 +33,6 @@ class BaselineResultMapping : ReportingExtension {
val facade = BaselineFacade()
val flatten = this.flatMap { it.value }

if (flatten.isEmpty()) {
return this
}

if (createBaseline) {
facade.createOrUpdate(baselinePath, flatten)
}
Expand Down
Expand Up @@ -33,18 +33,10 @@ class BaselineFacadeSpec : Spek({
assertThat(detektion).isEqualTo(initialDetektion)
}

it("creates a baseline file without findings") {
it("doesn't create a baseline file without findings") {
BaselineFacade().createOrUpdate(baselineFile, emptyList())

assertThat(baselineFile).hasContent(
"""
<?xml version="1.0" ?>
<SmellBaseline>
<ManuallySuppressedIssues></ManuallySuppressedIssues>
<CurrentIssues></CurrentIssues>
</SmellBaseline>
""".trimIndent()
)
assertThat(baselineFile).doesNotExist()
}

it("creates on top of an existing a baseline file without findings") {
Expand Down
Expand Up @@ -49,19 +49,6 @@ class BaselineResultMappingSpec : Spek({
assertThat(baselineFile.exists()).isFalse()
}

it("should not update an existing baseline file when no findings occurred") {
val existing = Baseline.load(existingBaselineFile)
val mapping = resultMapping(
baselineFile = existingBaselineFile,
createBaseline = true,
)

mapping.transformFindings(emptyMap())

val changed = Baseline.load(existingBaselineFile)
assertThat(existing).isEqualTo(changed)
}

it("should not update an existing baseline file if option configured as false") {
val existing = Baseline.load(existingBaselineFile)
val mapping = resultMapping(
Expand Down

0 comments on commit beb229a

Please sign in to comment.