Skip to content

Commit 1e71c9a

Browse files
Merge pull request #169 from NeedleInAJayStack/feat/swift-testing
Converts tests to Swift Testing
2 parents 0fe18bc + 2823f44 commit 1e71c9a

File tree

65 files changed

+2917
-2860
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

65 files changed

+2917
-2860
lines changed

Sources/GraphQL/Execution/Execute.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ public final class ExecutionContext: @unchecked Sendable {
5353
}
5454
set {
5555
// Writes occur sequentially.
56-
return errorsQueue.async(flags: .barrier) {
56+
return errorsQueue.sync(flags: .barrier) {
5757
self._errors = newValue
5858
}
5959
}

Sources/GraphQL/Type/Schema.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ public final class GraphQLSchema: @unchecked Sendable {
4949
}
5050
set {
5151
// Writes occur sequentially.
52-
return validationErrorQueue.async(flags: .barrier) {
52+
return validationErrorQueue.sync(flags: .barrier) {
5353
self._validationErrors = newValue
5454
}
5555
}
@@ -77,7 +77,7 @@ public final class GraphQLSchema: @unchecked Sendable {
7777
}
7878
set {
7979
// Writes occur sequentially.
80-
return subTypeMapQueue.async(flags: .barrier) {
80+
return subTypeMapQueue.sync(flags: .barrier) {
8181
self._subTypeMap = newValue
8282
}
8383
}

Tests/GraphQLTests/ExecutionTests/OneOfTests.swift

Lines changed: 24 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
@testable import GraphQL
2-
import XCTest
2+
import Testing
33

4-
class OneOfTests: XCTestCase {
4+
@Suite struct OneOfTests {
55
// MARK: OneOf Input Objects
66

7-
func testAcceptsAGoodDefaultValue() async throws {
7+
@Test func acceptsAGoodDefaultValue() async throws {
88
let query = """
99
query ($input: TestInputObject! = {a: "abc"}) {
1010
test(input: $input) {
@@ -17,9 +17,8 @@ class OneOfTests: XCTestCase {
1717
schema: getSchema(),
1818
request: query
1919
)
20-
XCTAssertEqual(
21-
result,
22-
GraphQLResult(data: [
20+
#expect(
21+
result == GraphQLResult(data: [
2322
"test": [
2423
"a": "abc",
2524
"b": .null,
@@ -28,7 +27,7 @@ class OneOfTests: XCTestCase {
2827
)
2928
}
3029

31-
func testRejectsABadDefaultValue() async throws {
30+
@Test func rejectsABadDefaultValue() async throws {
3231
let query = """
3332
query ($input: TestInputObject! = {a: "abc", b: 123}) {
3433
test(input: $input) {
@@ -41,14 +40,14 @@ class OneOfTests: XCTestCase {
4140
schema: getSchema(),
4241
request: query
4342
)
44-
XCTAssertEqual(result.errors.count, 1)
45-
XCTAssertEqual(
46-
result.errors[0].message,
47-
"OneOf Input Object \"TestInputObject\" must specify exactly one key."
43+
#expect(result.errors.count == 1)
44+
#expect(
45+
result.errors[0].message ==
46+
"OneOf Input Object \"TestInputObject\" must specify exactly one key."
4847
)
4948
}
5049

51-
func testAcceptsAGoodVariable() async throws {
50+
@Test func acceptsAGoodVariable() async throws {
5251
let query = """
5352
query ($input: TestInputObject!) {
5453
test(input: $input) {
@@ -62,9 +61,8 @@ class OneOfTests: XCTestCase {
6261
request: query,
6362
variableValues: ["input": ["a": "abc"]]
6463
)
65-
XCTAssertEqual(
66-
result,
67-
GraphQLResult(data: [
64+
#expect(
65+
result == GraphQLResult(data: [
6866
"test": [
6967
"a": "abc",
7068
"b": .null,
@@ -73,7 +71,7 @@ class OneOfTests: XCTestCase {
7371
)
7472
}
7573

76-
func testAcceptsAGoodVariableWithAnUndefinedKey() async throws {
74+
@Test func acceptsAGoodVariableWithAnUndefinedKey() async throws {
7775
let query = """
7876
query ($input: TestInputObject!) {
7977
test(input: $input) {
@@ -87,9 +85,8 @@ class OneOfTests: XCTestCase {
8785
request: query,
8886
variableValues: ["input": ["a": "abc", "b": .undefined]]
8987
)
90-
XCTAssertEqual(
91-
result,
92-
GraphQLResult(data: [
88+
#expect(
89+
result == GraphQLResult(data: [
9390
"test": [
9491
"a": "abc",
9592
"b": .null,
@@ -98,7 +95,7 @@ class OneOfTests: XCTestCase {
9895
)
9996
}
10097

101-
func testRejectsAVariableWithMultipleNonNullKeys() async throws {
98+
@Test func rejectsAVariableWithMultipleNonNullKeys() async throws {
10299
let query = """
103100
query ($input: TestInputObject!) {
104101
test(input: $input) {
@@ -112,17 +109,16 @@ class OneOfTests: XCTestCase {
112109
request: query,
113110
variableValues: ["input": ["a": "abc", "b": 123]]
114111
)
115-
XCTAssertEqual(result.errors.count, 1)
116-
XCTAssertEqual(
117-
result.errors[0].message,
118-
"""
112+
#expect(result.errors.count == 1)
113+
#expect(
114+
result.errors[0].message == """
119115
Variable "$input" got invalid value "{"a":"abc","b":123}".
120116
Exactly one key must be specified for OneOf type "TestInputObject".
121117
"""
122118
)
123119
}
124120

125-
func testRejectsAVariableWithMultipleNullableKeys() async throws {
121+
@Test func rejectsAVariableWithMultipleNullableKeys() async throws {
126122
let query = """
127123
query ($input: TestInputObject!) {
128124
test(input: $input) {
@@ -136,10 +132,9 @@ class OneOfTests: XCTestCase {
136132
request: query,
137133
variableValues: ["input": ["a": "abc", "b": .null]]
138134
)
139-
XCTAssertEqual(result.errors.count, 1)
140-
XCTAssertEqual(
141-
result.errors[0].message,
142-
"""
135+
#expect(result.errors.count == 1)
136+
#expect(
137+
result.errors[0].message == """
143138
Variable "$input" got invalid value "{"a":"abc","b":null}".
144139
Exactly one key must be specified for OneOf type "TestInputObject".
145140
"""

Tests/GraphQLTests/FederationTests/FederationTests.swift

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
@testable import GraphQL
2-
import XCTest
2+
import Testing
33

4-
final class FederationTests: XCTestCase {
5-
func testFederationSampleSchema() throws {
4+
@Suite struct FederationTests {
5+
@Test func federationSampleSchema() throws {
66
// Confirm that the Apollo test schema can be parsed as expected https://github.com/apollographql/apollo-federation-subgraph-compatibility/blob/main/COMPATIBILITY.md
77
let source =
88
"""
@@ -328,7 +328,7 @@ final class FederationTests: XCTestCase {
328328
let document = try parse(source: source)
329329
let printed = print(ast: document)
330330

331-
XCTAssertEqual(document, expected)
332-
XCTAssertEqual(source, printed)
331+
#expect(document == expected)
332+
#expect(source == printed)
333333
}
334334
}

Tests/GraphQLTests/HelloWorldTests/HelloWorldTests.swift

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
@testable import GraphQL
2-
import XCTest
2+
import Testing
33

4-
class HelloWorldTests: XCTestCase {
4+
@Suite struct HelloWorldTests {
55
let schema = try! GraphQLSchema(
66
query: GraphQLObjectType(
77
name: "RootQueryType",
@@ -16,7 +16,7 @@ class HelloWorldTests: XCTestCase {
1616
)
1717
)
1818

19-
func testHello() async throws {
19+
@Test func hello() async throws {
2020
let query = "{ hello }"
2121
let expected = GraphQLResult(data: ["hello": "world"])
2222

@@ -25,10 +25,10 @@ class HelloWorldTests: XCTestCase {
2525
request: query
2626
)
2727

28-
XCTAssertEqual(result, expected)
28+
#expect(result == expected)
2929
}
3030

31-
func testBoyhowdy() async throws {
31+
@Test func boyhowdy() async throws {
3232
let query = "{ boyhowdy }"
3333

3434
let expected = GraphQLResult(
@@ -45,10 +45,10 @@ class HelloWorldTests: XCTestCase {
4545
request: query
4646
)
4747

48-
XCTAssertEqual(result, expected)
48+
#expect(result == expected)
4949
}
5050

51-
func testHelloAsync() async throws {
51+
@Test func helloAsync() async throws {
5252
let query = "{ hello }"
5353
let expected = GraphQLResult(data: ["hello": "world"])
5454

@@ -57,6 +57,6 @@ class HelloWorldTests: XCTestCase {
5757
request: query
5858
)
5959

60-
XCTAssertEqual(result, expected)
60+
#expect(result == expected)
6161
}
6262
}

0 commit comments

Comments
 (0)