diff --git a/CHANGELOG.md b/CHANGELOG.md index 57517e27..38851fe0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -17,6 +17,7 @@ ### Removed ### Fixed +- Fixed duplicate test name error when no test name is given yet. ([#61](https://github.com/pestphp/pest-intellij/pull/61)) ### Security ## [0.3.3] diff --git a/src/main/kotlin/com/pestphp/pest/GithubErrorReporter.kt b/src/main/kotlin/com/pestphp/pest/GithubErrorReporter.kt index c52028c9..826e39fd 100644 --- a/src/main/kotlin/com/pestphp/pest/GithubErrorReporter.kt +++ b/src/main/kotlin/com/pestphp/pest/GithubErrorReporter.kt @@ -6,7 +6,11 @@ import com.intellij.openapi.diagnostic.ErrorReportSubmitter import com.intellij.openapi.diagnostic.IdeaLoggingEvent import com.intellij.openapi.diagnostic.SubmittedReportInfo import com.intellij.openapi.extensions.PluginId +import com.intellij.openapi.project.Project +import com.intellij.openapi.project.ProjectManager import com.intellij.util.Consumer +import com.jetbrains.php.testFramework.PhpTestFrameworkSettingsManager +import com.jetbrains.php.testFramework.PhpTestFrameworkVersionCache import java.awt.Component import java.io.UnsupportedEncodingException import java.net.URLEncoder @@ -39,6 +43,9 @@ class GithubErrorReporter : ErrorReportSubmitter() { val body = event?.throwableText ?: "Please paste the full stacktrace from the IDEA error popup." val version = PluginManagerCore.getPlugin(PluginId.getId("com.pestphp.pest-intellij"))?.version + val project: Project? = ProjectManager.getInstance().openProjects.first() + val pestVersion = getPestVersion(project) + val builder = StringBuilder(URL) try { builder.append(URLEncoder.encode(title, ENCODING)) @@ -50,7 +57,7 @@ class GithubErrorReporter : ErrorReportSubmitter() { || ---------------- | ----- || Bug report? | yes || Plugin version | $version - || Pest version | x.y.z + || Pest version | $pestVersion || OS | ${System.getProperty("os.name")} | |### Description @@ -85,4 +92,11 @@ class GithubErrorReporter : ErrorReportSubmitter() { ) return true } + + private fun getPestVersion(project: Project?): String { + return PhpTestFrameworkSettingsManager.getInstance(project) + .getLocalConfig(PestFrameworkType.instance)?.let { + PhpTestFrameworkVersionCache.getCache(project, it) + } ?: "x.y.z" + } } diff --git a/src/main/kotlin/com/pestphp/pest/inspections/DuplicateTestNameInspection.kt b/src/main/kotlin/com/pestphp/pest/inspections/DuplicateTestNameInspection.kt index af5bcafa..ae31c90e 100644 --- a/src/main/kotlin/com/pestphp/pest/inspections/DuplicateTestNameInspection.kt +++ b/src/main/kotlin/com/pestphp/pest/inspections/DuplicateTestNameInspection.kt @@ -20,7 +20,8 @@ class DuplicateTestNameInspection : PhpInspection() { return object : PhpElementVisitor() { override fun visitPhpFile(file: PhpFile) { file.getPestTests() - .groupBy { it.getPestTestName()!! } + .groupBy { it.getPestTestName() } + .filterKeys { it != null } .filter { it.value.count() > 1 } .forEach { declareProblemType(holder, it.value)