-
Notifications
You must be signed in to change notification settings - Fork 72
/
Copy pathSwiftTestingTests.swift
129 lines (112 loc) · 3.09 KB
/
SwiftTestingTests.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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#if canImport(Testing) && !os(Windows)
import Testing
import IssueReporting
@Suite
struct SwiftTestingTests {
@Test func context() {
switch TestContext.current {
case .swiftTesting:
#expect(Bool(true))
default:
Issue.record()
}
}
@Test func reportIssue_NoMessage() {
withKnownIssue {
reportIssue()
} matching: { issue in
issue.description == "Issue recorded"
}
}
@Test func reportError_NoMessage() {
struct MyError: Error {}
withKnownIssue {
reportIssue(Failure())
} matching: { issue in
issue.description == "Caught error: Failure()"
}
}
@Test func reportIssue_CustomMessage() {
withKnownIssue {
reportIssue("Something went wrong")
} matching: { issue in
issue.description == "Issue recorded: Something went wrong"
}
}
@Test func reportError_CustomMessage() {
withKnownIssue {
reportIssue(Failure(), "Something went wrong")
} matching: { issue in
issue.description == "Caught error: Failure(): Something went wrong"
}
}
@Test func reportIssue_EmitFailureDisabled() {
withEmitsFailureOnReportIssue(false) {
reportIssue()
}
}
@Test func withExpectedIssue_reportIssue() {
withExpectedIssue {
reportIssue()
}
}
@Test func withExpectedIssue_reportIssue_Async() async {
await withExpectedIssue {
await Task.yield()
reportIssue()
}
}
@Test func withExpectedIssue_issueRecord() {
withExpectedIssue {
Issue.record()
}
}
@Test func withExpectedIssue_throw() {
withExpectedIssue { throw Failure() }
}
@Test func withExpectedIssue_NoMessage_NoIssue() {
withKnownIssue {
withExpectedIssue {
}
} matching: { issue in
issue.description == "Known issue was not recorded"
}
}
@Test func withExpectedIssue_NoMessage_NoIssue_Async() async {
await withKnownIssue {
await withExpectedIssue {
await Task.yield()
}
} matching: { issue in
issue.description == "Known issue was not recorded"
}
}
@Test func withExpectedIssue_CustomMessage_NoIssue() {
withKnownIssue {
withExpectedIssue("This didn't fail") {
}
} matching: { issue in
issue.description == "Known issue was not recorded: This didn't fail"
}
}
@Test func withExpectedIssue_CustomMessage_NoIssue_Async() async {
await withKnownIssue {
await withExpectedIssue("This didn't fail") {
await Task.yield()
}
} matching: { issue in
issue.description == "Known issue was not recorded: This didn't fail"
}
}
@Test func withExpectedIssue_IsIntermittent() {
withExpectedIssue(isIntermittent: true) {
}
}
@Test func withExpectedIssue_IsIntermittent_Async() async {
await withExpectedIssue(isIntermittent: true) {
await Task.yield()
}
}
}
private struct Failure: Error {}
#endif