Skip to content

Commit 7902b4f

Browse files
authored
Merge pull request #4 from j-roskopf/jr/deletebaseline
delete baseline when all warnings are fixed
2 parents 2f4c694 + a0c36bf commit 7902b4f

File tree

5 files changed

+65
-20
lines changed

5 files changed

+65
-20
lines changed

kotlin-warning-baseline-generator/gradle-plugin/src/functionalTest/kotlin/com/joetr/kotlin/warning/baseline/generator/task/WriteKotlinWarningBaselineTaskTest.kt

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,43 @@ class WriteKotlinWarningBaselineTaskTest {
6161
assertThat(baselineFile.readText()).doesNotContain("w: file:///")
6262
}
6363

64+
@Test
65+
fun `if all files are cleaned up in baseline, baseline is deleted`() {
66+
val project = BasicAndroidProject.getComposeProject()
67+
68+
val generateTask = ":android:releaseWriteKotlinWarningBaseline"
69+
val generateResult = project.execute(generateTask)
70+
71+
assertThat(generateResult).task(generateTask).succeeded()
72+
val baselineFile = project.projectDir(":android").resolve("warning-baseline-release-android.txt")
73+
assertThat(baselineFile.toFile()).exists()
74+
assertThat(baselineFile.readText())
75+
.contains("TestComposable.kt:6:20 Condition 'test != null' is always 'true")
76+
77+
project
78+
.projectDir("android")
79+
.resolve("src/main/kotlin/com/example/myapplication/TestComposable.kt")
80+
.toFile()
81+
.writeText(
82+
"""
83+
package com.example.myapplication
84+
85+
class AndroidApp {
86+
init {
87+
val test = "hello"
88+
println(test)
89+
}
90+
}
91+
"""
92+
.trimIndent(),
93+
)
94+
95+
val newGenerateResult = project.execute(generateTask)
96+
97+
assertThat(newGenerateResult).task(generateTask).succeeded()
98+
assertThat(baselineFile).doesNotExist()
99+
}
100+
64101
@Test
65102
fun `write generates no baseline if no warnings exist`() {
66103
val project = BasicAndroidProject.getComposeProject(

kotlin-warning-baseline-generator/gradle-plugin/src/main/kotlin/com/joetr/kotlin/warning/baseline/generator/KotlinWarningBaselineGeneratorService.kt

Lines changed: 22 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -74,21 +74,29 @@ public abstract class KotlinWarningBaselineGeneratorService :
7474
projectName,
7575
) ?: emptySet()
7676

77-
if (content.isNotEmpty()) {
78-
val warningFileCollector = warningFileCollectors[projectName]
79-
val filePathToWriteTo = if (isWriteTask) {
80-
baselineFilePaths[projectName]
81-
} else if (isCheckTask) {
82-
warningFilePaths[projectName]
77+
val warningFileCollector = warningFileCollectors[projectName]
78+
val filePathToWriteTo = if (isWriteTask) {
79+
baselineFilePaths[projectName]
80+
} else if (isCheckTask) {
81+
warningFilePaths[projectName]
82+
} else {
83+
null
84+
}
85+
if (filePathToWriteTo != null) {
86+
val baselineFile = File(filePathToWriteTo)
87+
if (content.isNotEmpty()) {
88+
if (warningFileCollector != null) {
89+
println("joerDebug - writing warnings to file, $filePathToWriteTo")
90+
warningFileCollector.writeWarningsToFile(
91+
content,
92+
baselineFile,
93+
)
94+
}
8395
} else {
84-
null
85-
}
86-
87-
if (warningFileCollector != null && filePathToWriteTo != null) {
88-
warningFileCollector.writeWarningsToFile(
89-
content,
90-
File(filePathToWriteTo),
91-
)
96+
if (baselineFile.exists()) {
97+
// had a baseline file previously, but no warnings, delete the file
98+
baselineFile.delete()
99+
}
92100
}
93101
}
94102

kotlin-warning-baseline-generator/gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
kotlin.code.style=official
22

33
GROUP=com.joetr.kotlin.warning.baseline.generator
4-
VERSION_NAME=1.0.2
4+
VERSION_NAME=1.0.3
55
YEAR=2024
66
DISPLAY_NAME=Kotlin Warning Baseline Generator
77
DESCRIPTION=A Gradle plugin for creating baselines from Kotlin warnings
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# This file was automatically generated by the Kotlin Warning Baseline Generator Plugin
22
# and should not be edited manually.
33

4-
ExampleInstrumentedTest.kt:10:12 Condition is always 'true'.
5-
ExampleUnitTest.kt:16:12 Condition is always 'true'.
6-
MainActivity.kt:25:12 Condition is always 'true'.
4+
.../src/androidTest/java/com/example/myapplication/ExampleInstrumentedTest.kt:10:12 Condition is always 'true'.
5+
.../src/main/java/com/example/myapplication/MainActivity.kt:25:12 Condition is always 'true'.
6+
.../src/test/java/com/example/myapplication/ExampleUnitTest.kt:16:12 Condition is always 'true'.
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# This file was automatically generated by the Kotlin Warning Baseline Generator Plugin
22
# and should not be edited manually.
33

4-
w: file:///Users/joeroskopf/Code/KotlinWarningBaselineGeneratorGithub/KotlinWarningBaselineGenerator/sandbox-android-app/feature/src/main/kotlin/com/example/myapplication/feature/MyComposable.kt:13:8 Condition is always 'true'.
5-
w: file:///Users/joeroskopf/Code/KotlinWarningBaselineGeneratorGithub/KotlinWarningBaselineGenerator/sandbox-android-app/feature/src/test/java/com/example/myapplication/ExampleUnitTest.kt:31:12 Condition is always 'true'.
4+
.../src/main/kotlin/com/example/myapplication/feature/MyComposable.kt:13:8 Condition is always 'true'.
5+
.../src/test/java/com/example/myapplication/ExampleUnitTest.kt:31:12 Condition is always 'true'.

0 commit comments

Comments
 (0)