Skip to content

Commit 2ba41bf

Browse files
committed
should revert replaceService in after hook
1 parent 0c989ef commit 2ba41bf

File tree

1 file changed

+9
-3
lines changed
  • plugins/core/jetbrains-community/tstFixtures/software/aws/toolkits/jetbrains/services/telemetry

1 file changed

+9
-3
lines changed

plugins/core/jetbrains-community/tstFixtures/software/aws/toolkits/jetbrains/services/telemetry/MockTelemetryService.kt

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,9 @@
33

44
package software.aws.toolkits.jetbrains.services.telemetry
55

6+
import com.intellij.openapi.Disposable
67
import com.intellij.openapi.application.ApplicationManager
8+
import com.intellij.openapi.util.Disposer
79
import com.intellij.testFramework.replaceService
810
import org.junit.jupiter.api.extension.AfterEachCallback
911
import org.junit.jupiter.api.extension.BeforeEachCallback
@@ -37,17 +39,21 @@ class NoOpPublisher : TelemetryPublisher {
3739
}
3840

3941
sealed class MockTelemetryServiceBase : ExternalResource() {
40-
private val publisher: NoOpPublisher by lazy { NoOpTelemetryService.NO_OP_PUBLISHER }
41-
private val batcher: TelemetryBatcher by lazy { spy(DefaultTelemetryBatcher(publisher)) }
42+
protected val publisher: NoOpPublisher by lazy { NoOpTelemetryService.NO_OP_PUBLISHER }
43+
protected val batcher: TelemetryBatcher by lazy { spy(DefaultTelemetryBatcher(publisher)) }
44+
private lateinit var disposableParent: Disposable
4245

4346
private val mockTelemetryService: NoOpTelemetryService by lazy { NoOpTelemetryService(publisher, batcher) }
4447

4548
override fun before() {
46-
ApplicationManager.getApplication().replaceService(TelemetryService::class.java, mockTelemetryService, mockTelemetryService)
49+
// hack because @TestDisposable doesn't work here as it's not a test
50+
disposableParent = Disposer.newDisposable()
51+
ApplicationManager.getApplication().replaceService(TelemetryService::class.java, mockTelemetryService, disposableParent)
4752
}
4853

4954
override fun after() {
5055
reset(batcher())
56+
Disposer.dispose(disposableParent)
5157
}
5258

5359
fun telemetryService() = mockTelemetryService

0 commit comments

Comments
 (0)