Files
buzz/mobile/ios/BuzzPushKit/Tests/BuzzPushKitTests/APNsRegistrationBufferTests.swift
Tom Brow d69b89c43c feat: add internal iOS push MVP
Signed-off-by: Tom Brow <tomb@squareup.com>
2026-08-18 16:23:53 -07:00

30 lines
1.1 KiB
Swift

import Foundation
import XCTest
@testable import BuzzPushKit
final class APNsRegistrationBufferTests: XCTestCase {
func testReplaysTokenAfterChannelAttachment() {
let buffer = APNsRegistrationBuffer()
buffer.recordToken(Data([0x01, 0xAB, 0x00]))
var delivered: [APNsRegistrationUpdate] = []
buffer.attach { delivered.append($0) }
XCTAssertEqual(delivered, [
APNsRegistrationUpdate(method: "apnsTokenChanged", arguments: ["token": "01ab00"])
])
XCTAssertNil(buffer.pending)
}
func testKeepsLatestUpdateAndDeliversLiveFailures() {
let buffer = APNsRegistrationBuffer()
buffer.recordToken(Data([0x01]))
buffer.recordError("offline")
var delivered: [APNsRegistrationUpdate] = []
buffer.attach { delivered.append($0) }
buffer.recordError("denied")
XCTAssertEqual(delivered, [
APNsRegistrationUpdate(method: "apnsRegistrationFailed", arguments: ["message": "offline"]),
APNsRegistrationUpdate(method: "apnsRegistrationFailed", arguments: ["message": "denied"]),
])
}
}