diff --git a/Sources/Segment/Plugins/SegmentDestination.swift b/Sources/Segment/Plugins/SegmentDestination.swift index fcb4b716..5011323c 100644 --- a/Sources/Segment/Plugins/SegmentDestination.swift +++ b/Sources/Segment/Plugins/SegmentDestination.swift @@ -72,7 +72,8 @@ public class SegmentDestination: DestinationPlugin { // MARK: - Event Handling Methods public func execute(event: T?) -> T? { - let result: T? = event + guard let event = event else { return nil } + let result = process(incomingEvent: event) if let r = result { queueEvent(event: r) } diff --git a/Tests/Segment-Tests/Analytics_Tests.swift b/Tests/Segment-Tests/Analytics_Tests.swift index 31efd321..c008919f 100644 --- a/Tests/Segment-Tests/Analytics_Tests.swift +++ b/Tests/Segment-Tests/Analytics_Tests.swift @@ -358,9 +358,13 @@ final class Analytics_Tests: XCTestCase { let analytics = Analytics(configuration: Configuration(writeKey: "test")) let mixpanel = AnyDestination(key: "Mixpanel") let outputReader = OutputReaderPlugin() - analytics.add(plugin: outputReader) + + // we want the output reader on the segment plugin + // cuz that's the only place the metadata is getting added. + let segmentDest = analytics.find(pluginType: SegmentDestination.self) + segmentDest?.add(plugin: outputReader) + analytics.add(plugin: mixpanel) - analytics.add(plugin: DestinationMetadataPlugin()) var settings = Settings(writeKey: "123") let integrations = try? JSON([ "Segment.io": JSON([