diff --git a/core/src/main/java/com/segment/analytics/kotlin/core/platform/Mediator.kt b/core/src/main/java/com/segment/analytics/kotlin/core/platform/Mediator.kt index 0fcfbf92..e51ed831 100644 --- a/core/src/main/java/com/segment/analytics/kotlin/core/platform/Mediator.kt +++ b/core/src/main/java/com/segment/analytics/kotlin/core/platform/Mediator.kt @@ -30,13 +30,14 @@ internal class Mediator(internal var plugins: CopyOnWriteArrayList = Cop plugins.forEach { plugin -> result?.let { + val copy = it.copy() try { when (plugin) { is DestinationPlugin -> { - plugin.execute(it) + plugin.execute(copy) } else -> { - result = plugin.execute(it) + result = plugin.execute(copy) } } } catch (t: Throwable) { diff --git a/core/src/test/kotlin/com/segment/analytics/kotlin/core/platform/plugins/DestinationPluginTests.kt b/core/src/test/kotlin/com/segment/analytics/kotlin/core/platform/plugins/DestinationPluginTests.kt index 1db724aa..c1e8e3b2 100644 --- a/core/src/test/kotlin/com/segment/analytics/kotlin/core/platform/plugins/DestinationPluginTests.kt +++ b/core/src/test/kotlin/com/segment/analytics/kotlin/core/platform/plugins/DestinationPluginTests.kt @@ -155,7 +155,9 @@ class DestinationPluginTests { val result = timeline.process(trackEvent) - assertEquals(expected, result) + assertEquals(expected.type, result?.type) + assertEquals(expected.event, (result as TrackEvent).event) + assertEquals(expected.properties, (result as TrackEvent).properties) } @Test