From 15cfba46bc117bfda40c4f2ac018829c822dfd32 Mon Sep 17 00:00:00 2001 From: Erik Date: Sat, 16 Jan 2016 15:16:18 -0500 Subject: [PATCH] refactor didError --- SocketIO-MacTests/SocketSideEffectTest.swift | 12 ++++++++++++ Source/SocketClientSpec.swift | 7 +++---- Source/SocketParsable.swift | 2 +- 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/SocketIO-MacTests/SocketSideEffectTest.swift b/SocketIO-MacTests/SocketSideEffectTest.swift index 6bae725..ba2d795 100644 --- a/SocketIO-MacTests/SocketSideEffectTest.swift +++ b/SocketIO-MacTests/SocketSideEffectTest.swift @@ -100,6 +100,18 @@ class SocketSideEffectTest: XCTestCase { XCTAssertEqual(socket.testHandlers.count, 1) } + func testHandlesErrorPacket() { + let expectation = expectationWithDescription("Handled error") + socket.on("error") {data, ack in + if let error = data[0] as? String where error == "test error" { + expectation.fulfill() + } + } + + socket.parseSocketMessage("4\"test error\"") + waitForExpectationsWithTimeout(3, handler: nil) + } + func testHandleBinaryEvent() { let expectation = expectationWithDescription("handled binary event") socket.on("test") {data, ack in diff --git a/Source/SocketClientSpec.swift b/Source/SocketClientSpec.swift index 7a72cad..6408f39 100644 --- a/Source/SocketClientSpec.swift +++ b/Source/SocketClientSpec.swift @@ -28,17 +28,16 @@ protocol SocketClientSpec: class { func didConnect() func didDisconnect(reason: String) - func didError(reason: AnyObject) + func didError(reason: String) func handleAck(ack: Int, data: [AnyObject]) func handleEvent(event: String, data: [AnyObject], isInternalMessage: Bool, withAck ack: Int) func joinNamespace(namespace: String) } extension SocketClientSpec { - func didError(reason: AnyObject) { + func didError(reason: String) { DefaultSocketLogger.Logger.error("%@", type: "SocketIOClient", args: reason) - handleEvent("error", data: reason as? [AnyObject] ?? [reason], - isInternalMessage: true, withAck: -1) + handleEvent("error", data: [reason], isInternalMessage: true, withAck: -1) } } diff --git a/Source/SocketParsable.swift b/Source/SocketParsable.swift index 35117ef..f7304c4 100644 --- a/Source/SocketParsable.swift +++ b/Source/SocketParsable.swift @@ -58,7 +58,7 @@ extension SocketParsable { case .Disconnect: didDisconnect("Got Disconnect") case .Error: - didError(pack.data) + handleEvent("error", data: pack.data, isInternalMessage: false, withAck: pack.id) default: DefaultSocketLogger.Logger.log("Got invalid packet: %@", type: "SocketParser", args: pack.description) }