@@ -34,7 +34,7 @@ final class PrometheusMetricsTests: XCTestCase {
3434 XCTAssertEqual ( try ! promise. futureResult. wait ( ) , """
3535 # TYPE my_counter counter
3636 my_counter 10
37- my_counter{myValue= \" labels \" } 10
37+ my_counter{myValue= \" labels \" } 10 \n
3838 """ )
3939 }
4040
@@ -65,7 +65,44 @@ final class PrometheusMetricsTests: XCTestCase {
6565 """ )
6666 }
6767
68- func testCollectAFewMetricsIntoBuffer( ) {
68+ func testEmptyCollectIsConsistent( ) throws {
69+ let promise = self . eventLoop. makePromise ( of: ByteBuffer . self)
70+ prom. collect ( promise. succeed)
71+ var buffer = try promise. futureResult. wait ( )
72+
73+ let stringPromise = self . eventLoop. makePromise ( of: String . self)
74+ prom. collect ( stringPromise. succeed)
75+ let collectedToString = try stringPromise. futureResult. wait ( )
76+
77+ let collectedToBuffer = buffer. readString ( length: buffer. readableBytes)
78+ XCTAssertEqual ( collectedToBuffer, " " )
79+ XCTAssertEqual ( collectedToBuffer, collectedToString)
80+ }
81+
82+ func testCollectIsConsistent( ) throws {
83+ let counter = Counter ( label: " my_counter " )
84+ counter. increment ( by: 10 )
85+ let counterTwo = Counter ( label: " my_counter " , dimensions: [ ( " myValue " , " labels " ) ] )
86+ counterTwo. increment ( by: 10 )
87+
88+ let promise = self . eventLoop. makePromise ( of: ByteBuffer . self)
89+ prom. collect ( promise. succeed)
90+ var buffer = try promise. futureResult. wait ( )
91+
92+ let stringPromise = self . eventLoop. makePromise ( of: String . self)
93+ prom. collect ( stringPromise. succeed)
94+ let collectedToString = try stringPromise. futureResult. wait ( )
95+
96+ let collectedToBuffer = buffer. readString ( length: buffer. readableBytes)
97+ XCTAssertEqual ( collectedToBuffer, """
98+ # TYPE my_counter counter
99+ my_counter 10
100+ my_counter{myValue= \" labels \" } 10 \n
101+ """ )
102+ XCTAssertEqual ( collectedToBuffer, collectedToString)
103+ }
104+
105+ func testCollectAFewMetricsIntoBuffer( ) throws {
69106 let counter = Counter ( label: " my_counter " )
70107 counter. increment ( by: 10 )
71108 let counterA = Counter ( label: " my_counter " , dimensions: [ ( " a " , " aaa " ) , ( " x " , " x " ) ] )
@@ -75,7 +112,7 @@ final class PrometheusMetricsTests: XCTestCase {
75112
76113 let promise = self . eventLoop. makePromise ( of: ByteBuffer . self)
77114 prom. collect ( promise. succeed)
78- var buffer = try ! promise. futureResult. wait ( )
115+ var buffer = try promise. futureResult. wait ( )
79116
80117 XCTAssertEqual ( buffer. readString ( length: buffer. readableBytes) ,
81118 """
@@ -105,8 +142,7 @@ final class PrometheusMetricsTests: XCTestCase {
105142 my_counter 10
106143 my_counter{x= " x " , a= " aaa " } 4
107144 # TYPE my_gauge gauge
108- my_gauge 100.0
145+ my_gauge 100.0 \n
109146 """ )
110147 }
111148}
112-
0 commit comments