                 case .added:
                     XCTAssertEqual("A", stringRead)
                     self.state = .inlineDataRead
+                    if stringRead == .some("A") {
+                        self.firstByteDonePromise.succeed(result: ())
+                    } else {
+                        self.firstByteDonePromise.fail(error: ReceivedTheWrongThingError.error)
+                    }
                 case .inlineDataRead:
                     XCTAssertEqual("B", stringRead)
                     self.state = .extraDataRead
                     ctx.channel.close(promise: nil)
+                    if stringRead == .some("B") {
+                        self.secondByteDonePromise.succeed(result: ())
+                    } else {
+                        self.secondByteDonePromise.fail(error: ReceivedTheWrongThingError.error)
+                    }
                 default:
                     XCTFail("channel read in wrong state \(self.state)")
                 }

    }
    
    func testUpgradeWithUpgradePayloadInlineWithRequestWorks() throws {
        var upgradeRequest: HTTPRequestHead? = nil
        var upgradeHandlerCbFired = false
        var upgraderCbFired = false

            upgraderCbFired = true
        }
        
        let firstByteDonePromise: EventLoopPromise<Void> = EmbeddedEventLoop().newPromise()
        let secondByteDonePromise: EventLoopPromise<Void> = EmbeddedEventLoop().newPromise()
        let allDonePromise: EventLoopPromise<Void> = EmbeddedEventLoop().newPromise()
        let (group, server, client, connectedServer) = try setUpTestWithAutoremoval(upgraders: [upgrader],
                                                                                    extraHandlers: []) { (ctx) in
