[threading] IJPL-246537: Fix waiting for code vision in tests

GitOrigin-RevId: f0f4d5a35e27e45fe6be383ab31ea8b2a2cc838b
This commit is contained in:
Konstantin Nisht
2026-06-09 18:38:02 +00:00
committed by intellij-monorepo-bot
parent a1c67da8ef
commit 25facb735b
4 changed files with 18 additions and 4 deletions
@@ -12,6 +12,7 @@ import com.intellij.openapi.components.service
import com.intellij.openapi.fileTypes.LanguageFileType
import com.intellij.refactoring.suggested.BaseSuggestedRefactoringAvailabilityTest
import com.intellij.refactoring.suggested.SuggestedRefactoringProviderImpl
import com.intellij.testFramework.utils.codeVision.CodeVisionTestCase
class JavaChangeSignatureInlayProviderTest : BaseSuggestedRefactoringAvailabilityTest() {
@@ -604,7 +605,7 @@ class JavaChangeSignatureInlayProviderTest : BaseSuggestedRefactoringAvailabilit
executeEditingActions(editingActions)
myFixture.availableIntentions
project.service<CodeVisionHost>().calculateCodeVisionSync(editor, testRootDisposable)
CodeVisionTestCase.waitForCodeVisionSync(editor, project.service<CodeVisionHost>(), testRootDisposable)
val actualText = InlayDumpUtil.dumpInlays(
file.text,
@@ -12,6 +12,7 @@ import com.intellij.openapi.components.service
import com.intellij.openapi.fileTypes.LanguageFileType
import com.intellij.refactoring.suggested.BaseSuggestedRefactoringAvailabilityTest
import com.intellij.refactoring.suggested.SuggestedRefactoringProviderImpl
import com.intellij.testFramework.utils.codeVision.CodeVisionTestCase
class JavaRenameInlayProviderTest : BaseSuggestedRefactoringAvailabilityTest() {
@@ -250,7 +251,7 @@ class JavaRenameInlayProviderTest : BaseSuggestedRefactoringAvailabilityTest() {
executeEditingActions(editingActions)
myFixture.availableIntentions
project.service<CodeVisionHost>().calculateCodeVisionSync(editor, testRootDisposable)
CodeVisionTestCase.waitForCodeVisionSync(editor, project.service<CodeVisionHost>(), testRootDisposable)
val actualText = InlayDumpUtil.dumpInlays(
file.text,
@@ -23,11 +23,13 @@ import com.intellij.openapi.vfs.VirtualFile
import com.intellij.psi.PsiDocumentManager
import com.intellij.psi.PsiFile
import com.intellij.psi.PsiManager
import com.intellij.testFramework.PlatformTestUtil
import com.intellij.testFramework.TestModeFlags
import com.intellij.testFramework.fixtures.BasePlatformTestCase.assertEquals
import com.intellij.testFramework.fixtures.impl.CodeInsightTestFixtureImpl
import com.intellij.testFramework.junit5.fixture.TestFixture
import com.intellij.testFramework.junit5.fixture.testFixture
import com.intellij.testFramework.utils.codeVision.CodeVisionTestCase
import com.intellij.util.ArrayUtilRt
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
@@ -76,7 +78,7 @@ class CodeVisionTestFixture(
}
val newFile = requireNotNull(PsiDocumentManager.getInstance(project).getPsiFile(document, context))
doHighlighting(newFile)
codeVisionHost.calculateCodeVisionSync(editor, disposable)
CodeVisionTestCase.waitForCodeVisionSync(editor, codeVisionHost, disposable)
}
}
assertText(expectedText)
@@ -7,14 +7,24 @@ import com.intellij.codeInsight.codeVision.settings.CodeVisionSettings
import com.intellij.codeInsight.codeVision.ui.model.CodeVisionListData
import com.intellij.codeInsight.codeVision.ui.renderers.CodeVisionInlayRenderer
import com.intellij.codeInsight.hints.InlayDumpUtil
import com.intellij.openapi.Disposable
import com.intellij.openapi.editor.Editor
import com.intellij.openapi.util.registry.Registry
import com.intellij.testFramework.PlatformTestUtil
import com.intellij.testFramework.TestModeFlags
import com.intellij.testFramework.utils.inlays.InlayHintsProviderTestCase
import com.intellij.util.ui.EDT
abstract class CodeVisionTestCase : InlayHintsProviderTestCase() {
companion object {
const val AUTHOR_HINT: String = "John Smith +2"
@JvmStatic
fun waitForCodeVisionSync(editor: Editor, host: CodeVisionHost, disposable: Disposable) {
val done = host.calculateCodeVisionSync(editor, disposable)
PlatformTestUtil.waitForFuture(done)
}
}
protected open val onlyCodeVisionHintsAllowed: Boolean
@@ -63,7 +73,7 @@ abstract class CodeVisionTestCase : InlayHintsProviderTestCase() {
}
myFixture.doHighlighting()
codeVisionHost.calculateCodeVisionSync(editor, testRootDisposable)
waitForCodeVisionSync(editor, codeVisionHost, testRootDisposable)
val actualText = dumpCodeVisionHints(sourceText)
assertEquals(expectedText, actualText)