#if Analytics import Elementary import Testing @testable import Infrastructure @Suite( "MarkupContent+Reporting extension", .tags(.extension) ) struct MarkupContentReportingTests { // MARK: Methods tests @Test func `renders the same markup as applying the event's tagging`() { let event = Analytics.Event( name: "playlist", properties: ["set": "avc-xi"] ) let reported = a(.href("/")) { "Listen" } .reporting(event) .render() let tagged = a(.href("/")) { "Listen" } .attributes(contentsOf: event.tagging()) .render() #expect(reported == tagged) #expect(reported == #"Listen"#) } @Test func `keeps the attributes chained before it`() { let rendered = a(.href("https://example.com")) { "Listen" } .attributes(.target(.blank), when: true) .reporting(.init(name: "playlist")) .render() #expect(rendered == #"Listen"#) } @Test func `tags a view under its own prefix`() { let rendered = h2 { "KLM" } .reporting( .init( name: "case_view", properties: ["case": "klm"] ), on: .view ) .render() #expect(rendered == #"

KLM

"#) } @Test func `reports from an SVG tag`() { let rendered = SVG.path {} .reporting(.init(name: "logo")) .render() #expect(rendered.contains(#"data-umami-event="logo""#)) } } #endif