-
Notifications
You must be signed in to change notification settings - Fork 29
/
Copy pathLiveUpdatesTests.swift
63 lines (55 loc) · 3.4 KB
/
LiveUpdatesTests.swift
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
//
// LiveUpdatesTests.swift
// XcodeServerSDK
//
// Created by Honza Dvorsky on 27/09/2015.
// Copyright © 2015 Honza Dvorsky. All rights reserved.
//
import XCTest
import Foundation
@testable import XcodeServerSDK
import Nimble
class LiveUpdatesTests: XCTestCase {
func testParsing_ConnectPacket() {
let message = "1::"
let packets: [SocketIOPacket] = SocketIOHelper.parsePackets(message)
expect(packets.count) == 1
let packet = packets.first!
expect(packet.type) == SocketIOPacket.PacketType.Connect
expect(packet.jsonPayload).to(beNil())
expect(packet.stringPayload) == ""
}
func testParsing_ErrorPacket() {
let message = "7:::1+0"
let packets: [SocketIOPacket] = SocketIOHelper.parsePackets(message)
expect(packets.count) == 1
let packet = packets.first!
expect(packet.type) == SocketIOPacket.PacketType.Error
let (reason, advice) = packet.parseError()
expect(reason) == SocketIOPacket.ErrorReason.ClientNotHandshaken
expect(advice) == SocketIOPacket.ErrorAdvice.Reconnect
}
func testParsing_SingleEventMessage() throws {
let message = "5:::{\"name\":\"advisoryIntegrationStatus\",\"args\":[{\"message\":\"BuildaKit : Linking\",\"_id\":\"07a63fae4ff2d5a37eee830be556d143\",\"percentage\":0.7578125,\"botId\":\"07a63fae4ff2d5a37eee830be50c502a\"},null]}"
let packets: [SocketIOPacket] = SocketIOHelper.parsePackets(message)
expect(packets.count) == 1
let packet = packets.first!
expect(packet.jsonPayload).toNot(beNil())
let msg = try LiveUpdateMessage(json: packet.jsonPayload!)
expect(msg.type) == LiveUpdateMessage.MessageType.AdvisoryIntegrationStatus
expect(msg.message) == "BuildaKit : Linking"
expect(msg.integrationId) == "07a63fae4ff2d5a37eee830be556d143"
expect(msg.progress) == 0.7578125
expect(msg.botId) == "07a63fae4ff2d5a37eee830be50c502a"
}
func testParsing_MultipleEventMessages() throws {
let message = "�205�5:::{\"name\":\"advisoryIntegrationStatus\",\"args\":[{\"message\":\"Buildasaur : Linking\",\"_id\":\"07a63fae4ff2d5a37eee830be556d143\",\"percentage\":0.8392857360839844,\"botId\":\"07a63fae4ff2d5a37eee830be50c502a\"},null]}�218�5:::{\"name\":\"advisoryIntegrationStatus\",\"args\":[{\"message\":\"Buildasaur : Copying 1 of 3 files\",\"_id\":\"07a63fae4ff2d5a37eee830be556d143\",\"percentage\":0.8571428680419921,\"botId\":\"07a63fae4ff2d5a37eee830be50c502a\"},null]}�218�5:::{\"name\":\"advisoryIntegrationStatus\",\"args\":[{\"message\":\"Buildasaur : Copying 2 of 3 files\",\"_id\":\"07a63fae4ff2d5a37eee830be556d143\",\"percentage\":0.8607142639160156,\"botId\":\"07a63fae4ff2d5a37eee830be50c502a\"},null]}�228�5:::{\"name\":\"advisoryIntegrationStatus\",\"args\":[{\"message\":\"BuildaUtils : Compiling Swift source files\",\"_id\":\"07a63fae4ff2d5a37eee830be556d143\",\"percentage\":0.05511363506317139,\"botId\":\"07a63fae4ff2d5a37eee830be50c502a\"},null]}"
let packets: [SocketIOPacket] = SocketIOHelper.parsePackets(message)
expect(packets.count) == 4
for packet in packets {
expect(packet.jsonPayload).toNot(beNil())
let msg = try LiveUpdateMessage(json: packet.jsonPayload!)
expect(msg.type) == LiveUpdateMessage.MessageType.AdvisoryIntegrationStatus
}
}
}