From d94f54bc750324d8b81ebecf539b2c2acaf7d218 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Brais=20Gab=C3=ADn?= Date: Sun, 14 Jan 2024 01:18:03 +0100 Subject: [PATCH 1/3] Move test to the correct project --- .../gitlab/arturbosch/detekt/api/internal}/PathFiltersSpec.kt | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) rename {detekt-cli/src/test/kotlin/io/gitlab/arturbosch/detekt/cli => detekt-api/src/test/kotlin/io/gitlab/arturbosch/detekt/api/internal}/PathFiltersSpec.kt (94%) diff --git a/detekt-cli/src/test/kotlin/io/gitlab/arturbosch/detekt/cli/PathFiltersSpec.kt b/detekt-api/src/test/kotlin/io/gitlab/arturbosch/detekt/api/internal/PathFiltersSpec.kt similarity index 94% rename from detekt-cli/src/test/kotlin/io/gitlab/arturbosch/detekt/cli/PathFiltersSpec.kt rename to detekt-api/src/test/kotlin/io/gitlab/arturbosch/detekt/api/internal/PathFiltersSpec.kt index 598eb054a63..ada52d76241 100644 --- a/detekt-cli/src/test/kotlin/io/gitlab/arturbosch/detekt/cli/PathFiltersSpec.kt +++ b/detekt-api/src/test/kotlin/io/gitlab/arturbosch/detekt/api/internal/PathFiltersSpec.kt @@ -1,6 +1,5 @@ -package io.gitlab.arturbosch.detekt.cli +package io.gitlab.arturbosch.detekt.api.internal -import io.gitlab.arturbosch.detekt.api.internal.PathFilters import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.Nested import org.junit.jupiter.api.Test From bed35670104b714c3cead3bc001b2e22d4122d83 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Brais=20Gab=C3=ADn?= Date: Sun, 14 Jan 2024 01:19:20 +0100 Subject: [PATCH 2/3] Simplify code --- .../detekt/api/internal/PathFiltersSpec.kt | 62 +++++++++---------- 1 file changed, 29 insertions(+), 33 deletions(-) diff --git a/detekt-api/src/test/kotlin/io/gitlab/arturbosch/detekt/api/internal/PathFiltersSpec.kt b/detekt-api/src/test/kotlin/io/gitlab/arturbosch/detekt/api/internal/PathFiltersSpec.kt index ada52d76241..b571ed9499a 100644 --- a/detekt-api/src/test/kotlin/io/gitlab/arturbosch/detekt/api/internal/PathFiltersSpec.kt +++ b/detekt-api/src/test/kotlin/io/gitlab/arturbosch/detekt/api/internal/PathFiltersSpec.kt @@ -1,46 +1,42 @@ package io.gitlab.arturbosch.detekt.api.internal import org.assertj.core.api.Assertions.assertThat -import org.junit.jupiter.api.Nested import org.junit.jupiter.api.Test import kotlin.io.path.Path class PathFiltersSpec { - @Nested - inner class `parsing with different nullability combinations of path filters` { - @Test - fun `returns an empty path filter when includes are empty and excludes are empty`() { - val pathFilter = PathFilters.of(emptyList(), emptyList()) - assertThat(pathFilter).isNull() - } + @Test + fun `returns an empty path filter when includes are empty and excludes are empty`() { + val pathFilter = PathFilters.of(emptyList(), emptyList()) + assertThat(pathFilter).isNull() + } - @Test - fun `parses includes correctly`() { - val pathFilter = PathFilters.of(listOf("**/one/**", "**/two/**"), emptyList()) - assertThat(pathFilter).isNotNull - assertThat(pathFilter?.isIgnored(Path("/one/path"))).isFalse - assertThat(pathFilter?.isIgnored(Path("/two/path"))).isFalse - assertThat(pathFilter?.isIgnored(Path("/three/path"))).isTrue - } + @Test + fun `parses includes correctly`() { + val pathFilter = PathFilters.of(listOf("**/one/**", "**/two/**"), emptyList()) + assertThat(pathFilter).isNotNull + assertThat(pathFilter?.isIgnored(Path("/one/path"))).isFalse + assertThat(pathFilter?.isIgnored(Path("/two/path"))).isFalse + assertThat(pathFilter?.isIgnored(Path("/three/path"))).isTrue + } - @Test - fun `parses excludes correctly`() { - val pathFilter = PathFilters.of(emptyList(), listOf("**/one/**", "**/two/**")) - assertThat(pathFilter).isNotNull - assertThat(pathFilter?.isIgnored(Path("/one/path"))).isTrue - assertThat(pathFilter?.isIgnored(Path("/two/path"))).isTrue - assertThat(pathFilter?.isIgnored(Path("/three/path"))).isFalse - } + @Test + fun `parses excludes correctly`() { + val pathFilter = PathFilters.of(emptyList(), listOf("**/one/**", "**/two/**")) + assertThat(pathFilter).isNotNull + assertThat(pathFilter?.isIgnored(Path("/one/path"))).isTrue + assertThat(pathFilter?.isIgnored(Path("/two/path"))).isTrue + assertThat(pathFilter?.isIgnored(Path("/three/path"))).isFalse + } - @Test - fun `parses both includes and excludes correctly`() { - val pathFilter = PathFilters.of(listOf("**/one/**"), listOf("**/two/**")) - assertThat(pathFilter).isNotNull - assertThat(pathFilter?.isIgnored(Path("/one/path"))).isFalse - assertThat(pathFilter?.isIgnored(Path("/two/path"))).isTrue - assertThat(pathFilter?.isIgnored(Path("/three/path"))).isTrue - assertThat(pathFilter?.isIgnored(Path("/one/two/three/path"))).isTrue - } + @Test + fun `parses both includes and excludes correctly`() { + val pathFilter = PathFilters.of(listOf("**/one/**"), listOf("**/two/**")) + assertThat(pathFilter).isNotNull + assertThat(pathFilter?.isIgnored(Path("/one/path"))).isFalse + assertThat(pathFilter?.isIgnored(Path("/two/path"))).isTrue + assertThat(pathFilter?.isIgnored(Path("/three/path"))).isTrue + assertThat(pathFilter?.isIgnored(Path("/one/two/three/path"))).isTrue } } From 9360ab5dca85ff5d1ced4657656fed4f780628c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Brais=20Gab=C3=ADn?= Date: Sun, 14 Jan 2024 01:27:39 +0100 Subject: [PATCH 3/3] Move PathFilters to detekt-utils --- detekt-cli/build.gradle.kts | 1 + .../src/main/kotlin/io/gitlab/arturbosch/detekt/cli/Spec.kt | 2 +- .../io/gitlab/arturbosch/detekt/core/util/ConfigExtensions.kt | 2 +- .../src/main/kotlin/io/github/detekt/utils}/PathFilters.kt | 2 +- .../src/main/kotlin/io/github/detekt/utils}/PathMatchers.kt | 4 ++-- .../test/kotlin/io/github/detekt/utils}/PathFiltersSpec.kt | 2 +- .../test/kotlin/io/github/detekt/utils}/PathMatchersSpec.kt | 2 +- 7 files changed, 8 insertions(+), 7 deletions(-) rename {detekt-api/src/main/kotlin/io/gitlab/arturbosch/detekt/api/internal => detekt-utils/src/main/kotlin/io/github/detekt/utils}/PathFilters.kt (96%) rename {detekt-api/src/main/kotlin/io/gitlab/arturbosch/detekt/api/internal => detekt-utils/src/main/kotlin/io/github/detekt/utils}/PathMatchers.kt (88%) rename {detekt-api/src/test/kotlin/io/gitlab/arturbosch/detekt/api/internal => detekt-utils/src/test/kotlin/io/github/detekt/utils}/PathFiltersSpec.kt (97%) rename {detekt-api/src/test/kotlin/io/gitlab/arturbosch/detekt/api/internal => detekt-utils/src/test/kotlin/io/github/detekt/utils}/PathMatchersSpec.kt (96%) diff --git a/detekt-cli/build.gradle.kts b/detekt-cli/build.gradle.kts index 282327a0d6a..1cd13b2caab 100644 --- a/detekt-cli/build.gradle.kts +++ b/detekt-cli/build.gradle.kts @@ -22,6 +22,7 @@ val pluginsJarFiles by configurations.resolvable("pluginsJarFiles") { dependencies { implementation(libs.jcommander) implementation(projects.detektTooling) + implementation(projects.detektUtils) implementation(libs.kotlin.compilerEmbeddable) { version { strictly(libs.versions.kotlin.get()) diff --git a/detekt-cli/src/main/kotlin/io/gitlab/arturbosch/detekt/cli/Spec.kt b/detekt-cli/src/main/kotlin/io/gitlab/arturbosch/detekt/cli/Spec.kt index 4a519a9129b..d77294f62f7 100644 --- a/detekt-cli/src/main/kotlin/io/gitlab/arturbosch/detekt/cli/Spec.kt +++ b/detekt-cli/src/main/kotlin/io/gitlab/arturbosch/detekt/cli/Spec.kt @@ -2,9 +2,9 @@ package io.gitlab.arturbosch.detekt.cli import io.github.detekt.tooling.api.spec.ProcessingSpec import io.github.detekt.tooling.api.spec.RulesSpec +import io.github.detekt.utils.PathFilters import io.gitlab.arturbosch.detekt.api.Rule import io.gitlab.arturbosch.detekt.api.RuleSet -import io.gitlab.arturbosch.detekt.api.internal.PathFilters import java.nio.file.Path import kotlin.io.path.ExperimentalPathApi import kotlin.io.path.absolute diff --git a/detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/util/ConfigExtensions.kt b/detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/util/ConfigExtensions.kt index ef4f64b6166..6c409e23438 100644 --- a/detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/util/ConfigExtensions.kt +++ b/detekt-core/src/main/kotlin/io/gitlab/arturbosch/detekt/core/util/ConfigExtensions.kt @@ -1,8 +1,8 @@ package io.gitlab.arturbosch.detekt.core.util import io.github.detekt.psi.absolutePath +import io.github.detekt.utils.PathFilters import io.gitlab.arturbosch.detekt.api.Config -import io.gitlab.arturbosch.detekt.api.internal.PathFilters import org.jetbrains.kotlin.psi.KtFile import java.nio.file.Path import kotlin.io.path.Path diff --git a/detekt-api/src/main/kotlin/io/gitlab/arturbosch/detekt/api/internal/PathFilters.kt b/detekt-utils/src/main/kotlin/io/github/detekt/utils/PathFilters.kt similarity index 96% rename from detekt-api/src/main/kotlin/io/gitlab/arturbosch/detekt/api/internal/PathFilters.kt rename to detekt-utils/src/main/kotlin/io/github/detekt/utils/PathFilters.kt index f3f2377fb91..52780df9658 100644 --- a/detekt-api/src/main/kotlin/io/gitlab/arturbosch/detekt/api/internal/PathFilters.kt +++ b/detekt-utils/src/main/kotlin/io/github/detekt/utils/PathFilters.kt @@ -1,4 +1,4 @@ -package io.gitlab.arturbosch.detekt.api.internal +package io.github.detekt.utils import java.nio.file.Path import java.nio.file.PathMatcher diff --git a/detekt-api/src/main/kotlin/io/gitlab/arturbosch/detekt/api/internal/PathMatchers.kt b/detekt-utils/src/main/kotlin/io/github/detekt/utils/PathMatchers.kt similarity index 88% rename from detekt-api/src/main/kotlin/io/gitlab/arturbosch/detekt/api/internal/PathMatchers.kt rename to detekt-utils/src/main/kotlin/io/github/detekt/utils/PathMatchers.kt index 0f25edad542..3ef0f86e01b 100644 --- a/detekt-api/src/main/kotlin/io/gitlab/arturbosch/detekt/api/internal/PathMatchers.kt +++ b/detekt-utils/src/main/kotlin/io/github/detekt/utils/PathMatchers.kt @@ -1,4 +1,4 @@ -package io.gitlab.arturbosch.detekt.api.internal +package io.github.detekt.utils import java.nio.file.FileSystem import java.nio.file.FileSystems @@ -9,7 +9,7 @@ import java.nio.file.PathMatcher * We only support the "glob:" syntax to stay os independently. * Internally a globbing pattern is transformed to a regex respecting the Windows file system. */ -fun pathMatcher(pattern: String): PathMatcher { +internal fun pathMatcher(pattern: String): PathMatcher { val result = when (pattern.substringBefore(":")) { "glob" -> pattern "regex" -> throw IllegalArgumentException(USE_GLOB_MSG) diff --git a/detekt-api/src/test/kotlin/io/gitlab/arturbosch/detekt/api/internal/PathFiltersSpec.kt b/detekt-utils/src/test/kotlin/io/github/detekt/utils/PathFiltersSpec.kt similarity index 97% rename from detekt-api/src/test/kotlin/io/gitlab/arturbosch/detekt/api/internal/PathFiltersSpec.kt rename to detekt-utils/src/test/kotlin/io/github/detekt/utils/PathFiltersSpec.kt index b571ed9499a..daac6111258 100644 --- a/detekt-api/src/test/kotlin/io/gitlab/arturbosch/detekt/api/internal/PathFiltersSpec.kt +++ b/detekt-utils/src/test/kotlin/io/github/detekt/utils/PathFiltersSpec.kt @@ -1,4 +1,4 @@ -package io.gitlab.arturbosch.detekt.api.internal +package io.github.detekt.utils import org.assertj.core.api.Assertions.assertThat import org.junit.jupiter.api.Test diff --git a/detekt-api/src/test/kotlin/io/gitlab/arturbosch/detekt/api/internal/PathMatchersSpec.kt b/detekt-utils/src/test/kotlin/io/github/detekt/utils/PathMatchersSpec.kt similarity index 96% rename from detekt-api/src/test/kotlin/io/gitlab/arturbosch/detekt/api/internal/PathMatchersSpec.kt rename to detekt-utils/src/test/kotlin/io/github/detekt/utils/PathMatchersSpec.kt index 46d2669793f..d1925723c70 100644 --- a/detekt-api/src/test/kotlin/io/gitlab/arturbosch/detekt/api/internal/PathMatchersSpec.kt +++ b/detekt-utils/src/test/kotlin/io/github/detekt/utils/PathMatchersSpec.kt @@ -1,4 +1,4 @@ -package io.gitlab.arturbosch.detekt.api.internal +package io.github.detekt.utils import org.assertj.core.api.Assertions.assertThat import org.assertj.core.api.Assertions.assertThatThrownBy