Skip to content

Commit ccf518c

Browse files
rlikaranA-aws
authored andcommitted
Fix test failures caused by mockk not cleaning up (aws#5207)
1 parent 7e4dc9a commit ccf518c

File tree

3 files changed

+16
-12
lines changed

3 files changed

+16
-12
lines changed

plugins/core/jetbrains-community/src/software/aws/toolkits/jetbrains/services/telemetry/PluginResolver.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ class PluginResolver private constructor(callerStackTrace: Array<StackTraceEleme
4545
* Sets a PluginResolver instance to a thread-local for the current thread.
4646
* This value will be retrieved by subsequent calls to fromCurrentThread.
4747
*/
48-
fun setThreadLocal(value: PluginResolver) {
48+
fun setThreadLocal(value: PluginResolver?) {
4949
threadLocalResolver.set(value)
5050
}
5151
}

plugins/core/jetbrains-community/tst/software/aws/toolkits/jetbrains/services/telemetry/PluginResolverTest.kt

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,28 +6,25 @@ package software.aws.toolkits.jetbrains.services.telemetry
66
import com.intellij.ide.plugins.IdeaPluginDescriptor
77
import com.intellij.ide.plugins.PluginManagerCore
88
import io.mockk.called
9-
import io.mockk.clearAllMocks
109
import io.mockk.every
10+
import io.mockk.junit5.MockKExtension
1111
import io.mockk.mockk
1212
import io.mockk.mockkStatic
1313
import io.mockk.verify
1414
import junit.framework.TestCase.assertEquals
15-
import org.junit.jupiter.api.AfterEach
1615
import org.junit.jupiter.api.BeforeEach
1716
import org.junit.jupiter.api.Test
17+
import org.junit.jupiter.api.extension.ExtendWith
1818
import software.amazon.awssdk.services.toolkittelemetry.model.AWSProduct
1919

20+
@ExtendWith(MockKExtension::class)
2021
class PluginResolverTest {
2122
@BeforeEach
2223
fun setup() {
24+
PluginResolver.setThreadLocal(null)
2325
mockkStatic(PluginManagerCore::class)
2426
}
2527

26-
@AfterEach
27-
fun tearDown() {
28-
clearAllMocks()
29-
}
30-
3128
@Test
3229
fun getsProductForAmazonQPlugin() {
3330
val pluginDescriptor = mockk<IdeaPluginDescriptor> {

plugins/core/jetbrains-community/tst/software/aws/toolkits/jetbrains/utils/ThreadingUtilsKtTest.kt

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ import com.intellij.openapi.progress.ProgressManager
1010
import com.intellij.testFramework.ApplicationRule
1111
import com.intellij.util.concurrency.AppExecutorUtil
1212
import io.mockk.every
13-
import io.mockk.mockk
13+
import io.mockk.impl.annotations.MockK
14+
import io.mockk.junit4.MockKRule
1415
import org.assertj.core.api.Assertions.assertThatThrownBy
1516
import org.junit.Assert.assertEquals
1617
import org.junit.Rule
@@ -26,6 +27,12 @@ class ThreadingUtilsKtTest {
2627
@JvmField
2728
val application = ApplicationRule()
2829

30+
@get:Rule
31+
val mockkRule = MockKRule(this)
32+
33+
@MockK
34+
private lateinit var pluginResolver: PluginResolver
35+
2936
@Test
3037
fun `computeOnEdt runs on edt`() {
3138
computeOnEdt {
@@ -78,13 +85,13 @@ class ThreadingUtilsKtTest {
7885

7986
@Test
8087
fun `pluginAwareExecuteOnPooledThread inherits plugin resolver`() {
81-
val pluginResolver = mockk<PluginResolver> {
82-
every { product } returns AWSProduct.AMAZON_Q_FOR_JET_BRAINS
83-
}
88+
every { pluginResolver.product } returns AWSProduct.AMAZON_Q_FOR_JET_BRAINS
8489
PluginResolver.setThreadLocal(pluginResolver)
8590

8691
pluginAwareExecuteOnPooledThread {
8792
assertEquals(PluginResolver.fromCurrentThread().product, AWSProduct.AMAZON_Q_FOR_JET_BRAINS)
8893
}.get()
94+
95+
PluginResolver.setThreadLocal(PluginResolver.fromStackTrace(Thread.currentThread().stackTrace))
8996
}
9097
}

0 commit comments

Comments
 (0)