Add once for client events
This commit is contained in:
parent
18efea4bad
commit
5621f0dbe1
@ -83,6 +83,22 @@ class SocketSideEffectTest: XCTestCase {
|
|||||||
waitForExpectations(timeout: 3, handler: nil)
|
waitForExpectations(timeout: 3, handler: nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func testHandleOnceClientEvent() {
|
||||||
|
let expect = expectation(description: "handled event")
|
||||||
|
|
||||||
|
socket.once(clientEvent: .connect) {data, ack in
|
||||||
|
XCTAssertEqual(self.socket.testHandlers.count, 0)
|
||||||
|
expect.fulfill()
|
||||||
|
}
|
||||||
|
|
||||||
|
DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 0.1) {
|
||||||
|
// Fake connecting
|
||||||
|
self.socket.parseEngineMessage("0/")
|
||||||
|
}
|
||||||
|
|
||||||
|
waitForExpectations(timeout: 3, handler: nil)
|
||||||
|
}
|
||||||
|
|
||||||
func testOffWithEvent() {
|
func testOffWithEvent() {
|
||||||
socket.on("test") {data, ack in }
|
socket.on("test") {data, ack in }
|
||||||
socket.on("test") {data, ack in }
|
socket.on("test") {data, ack in }
|
||||||
|
|||||||
@ -508,6 +508,16 @@ open class SocketIOClient : NSObject, SocketIOClientSpec, SocketEngineClient, So
|
|||||||
return handler.id
|
return handler.id
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Adds a single-use handler for a client event.
|
||||||
|
///
|
||||||
|
/// - parameter clientEvent: The event for this handler.
|
||||||
|
/// - parameter callback: The callback that will execute when this event is received.
|
||||||
|
/// - returns: A unique id for the handler that can be used to remove it.
|
||||||
|
@discardableResult
|
||||||
|
open func once(clientEvent event: SocketClientEvent, callback: @escaping NormalCallback) -> UUID {
|
||||||
|
return once(event.rawValue, callback: callback)
|
||||||
|
}
|
||||||
|
|
||||||
/// Adds a single-use handler for an event.
|
/// Adds a single-use handler for an event.
|
||||||
///
|
///
|
||||||
/// - parameter event: The event name for this handler.
|
/// - parameter event: The event name for this handler.
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user