Skip to content

Commit 8965ad7

Browse files
committed
Updated unit tests
1 parent 85c5043 commit 8965ad7

File tree

1 file changed

+34
-24
lines changed

1 file changed

+34
-24
lines changed

Tests/TemporalTests/Worker/Activities/ActivityWorkerTests.swift

Lines changed: 34 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -231,17 +231,20 @@ private struct BadHeartbeatAcivity: ActivityDefinition {
231231
}
232232
}
233233

234-
private struct ReadingHeartbeatAcivity: ActivityDefinition {
234+
struct ReadingHeartbeatActivity: ActivityDefinition {
235235
struct HeartbeatDetails: Codable, Hashable {
236236
var string: String
237237
var data: Data
238238
}
239239
typealias Input = Void
240-
typealias Output = HeartbeatDetails
240+
typealias Output = HeartbeatDetails?
241241

242-
static let name: String? = "ReadingHeartbeatAcivity"
242+
static let name: String? = "ReadingHeartbeatActivity"
243243

244-
func run(input: Void) async throws -> HeartbeatDetails {
244+
func run(input: Void) async throws -> HeartbeatDetails? {
245+
guard ActivityExecutionContext.current!.info.hasHeartbeatDetails else {
246+
return nil
247+
}
245248
let (string, data) = try await ActivityExecutionContext.current!.info.heartbeatDetails(
246249
as: String.self,
247250
Data.self
@@ -748,9 +751,9 @@ struct ActivityWorkerTests {
748751
}
749752
}
750753

751-
@Test
752-
static func readingHeartbeat() async throws {
753-
let test = ActivityWorkerTests(activities: [ReadingHeartbeatAcivity()])
754+
@Test("Read Heartbeat Details", arguments: [true, false])
755+
static func readingHeartbeat(heartbeatDetailsAvailable: Bool) async throws {
756+
let test = ActivityWorkerTests(activities: [ReadingHeartbeatActivity()])
754757

755758
try await withThrowingTaskGroup(of: Void.self) { group in
756759
group.addTask {
@@ -760,40 +763,47 @@ struct ActivityWorkerTests {
760763
test.bridgeWorker.activityTaskContinuation.yield(
761764
.with {
762765
$0.taskToken = Data([1])
763-
$0.start.activityType = "ReadingHeartbeatAcivity"
766+
$0.start.activityType = "ReadingHeartbeatActivity"
764767
$0.start.activityID = "ActivityID1"
765768
$0.start.attempt = 1
766769
$0.start.workflowType = "WorkflowType"
767770
$0.start.workflowExecution = .with {
768771
$0.runID = "RunID"
769772
$0.workflowID = "WorkflowID1"
770773
}
771-
$0.start.heartbeatDetails = [
772-
.with {
773-
$0.data = Data(#""Foo""#.utf8)
774-
$0.metadata = ["encoding": Data("json/plain".utf8)]
775-
},
776-
.with {
777-
$0.data = Data([1, 2, 3])
778-
$0.metadata = ["encoding": Data("binary/plain".utf8)]
779-
},
780-
]
774+
if heartbeatDetailsAvailable {
775+
$0.start.heartbeatDetails = [
776+
.with {
777+
$0.data = Data(#""Foo""#.utf8)
778+
$0.metadata = ["encoding": Data("json/plain".utf8)]
779+
},
780+
.with {
781+
$0.data = Data([1, 2, 3])
782+
$0.metadata = ["encoding": Data("binary/plain".utf8)]
783+
},
784+
]
785+
}
781786
}
782787
)
783788

784789
var activityTaskCompletionIterator = test.bridgeWorker.activityTaskCompletionStream.makeAsyncIterator()
785790
let completion = try await activityTaskCompletionIterator.next()
786791
#expect(completion?.taskToken == Data([1]))
787792
let jsonDecoder = JSONDecoder()
788-
let expectedHeartbeatDetails = ReadingHeartbeatAcivity.HeartbeatDetails(
789-
string: "Foo",
790-
data: Data([1, 2, 3])
791-
)
792793
let heartbeatDetails = try jsonDecoder.decode(
793-
ReadingHeartbeatAcivity.HeartbeatDetails.self,
794+
(ReadingHeartbeatActivity.HeartbeatDetails?).self,
794795
from: completion!.result.completed.result.data
795796
)
796-
#expect(heartbeatDetails == expectedHeartbeatDetails)
797+
798+
if heartbeatDetailsAvailable {
799+
let expectedHeartbeatDetails = ReadingHeartbeatActivity.HeartbeatDetails(
800+
string: "Foo",
801+
data: Data([1, 2, 3])
802+
)
803+
#expect(heartbeatDetails == expectedHeartbeatDetails)
804+
} else {
805+
#expect(heartbeatDetails == nil)
806+
}
797807
group.cancelAll()
798808
}
799809
}

0 commit comments

Comments
 (0)