Skip to content

Commit 424ee92

Browse files
committed
Remove ELF-based JoinedQueryBuilder.first
1 parent 9886046 commit 424ee92

File tree

3 files changed

+56
-63
lines changed

3 files changed

+56
-63
lines changed

Sources/App/Core/Query+Support/JoinedQueryBuilder.swift

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -139,11 +139,6 @@ struct JoinedQueryBuilder<J: ModelInitializable> {
139139
.map(J.init(model:))
140140
}
141141

142-
func first() -> EventLoopFuture<J?> {
143-
queryBuilder.first()
144-
.optionalMap(J.init(model:))
145-
}
146-
147142
func page(_ page: Int, size pageSize: Int) async throws -> Page<J> {
148143
let page = try await queryBuilder.page(page, size: pageSize)
149144
return .init(results: page.results.map(J.init(model:)),

Tests/AppTests/BuildMonitorIndexModelTests.swift

Lines changed: 40 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -19,25 +19,25 @@ import XCTVapor
1919

2020
class BuildMonitorIndexModelTests: AppTestCase {
2121

22-
func test_init_from_Build() throws {
22+
func test_init_from_Build() async throws {
2323
do {
2424
let package = try savePackage(on: app.db, "https://github.com/daveverwer/LeftPad")
2525
let version = try Version(package: package,
2626
latest: .defaultBranch,
2727
packageName: "LeftPad from Version.packageName",
2828
reference: .branch("main"))
29-
try version.save(on: app.db).wait()
30-
try Build(id: .id0,
31-
version: version,
32-
platform: .macosXcodebuild,
33-
status: .ok,
34-
swiftVersion: .init(5, 6, 0)).save(on: app.db).wait()
35-
try Repository(package: package,
36-
ownerName: "Dave Verwer from Repository.ownerName").save(on: app.db).wait()
29+
try await version.save(on: app.db)
30+
try await Build(id: .id0,
31+
version: version,
32+
platform: .macosXcodebuild,
33+
status: .ok,
34+
swiftVersion: .init(5, 6, 0)).save(on: app.db)
35+
try await Repository(package: package,
36+
ownerName: "Dave Verwer from Repository.ownerName").save(on: app.db)
3737
}
3838

3939
// Query results back through the Joined4
40-
let buildResult = try BuildResult.query(on: app.db).first().wait().unwrap()
40+
let buildResult = try await BuildResult.query(on: app.db).first().unwrap()
4141

4242
// MUT
4343
let model = try XCTUnwrap(BuildMonitorIndex.Model(buildResult: buildResult))
@@ -52,70 +52,70 @@ class BuildMonitorIndexModelTests: AppTestCase {
5252
XCTAssertEqual(model.status, .ok)
5353
}
5454

55-
func test_init_from_Build_without_repository_name() throws {
55+
func test_init_from_Build_without_repository_name() async throws {
5656
do {
5757
let package = try savePackage(on: app.db, "https://github.com/daveverwer/LeftPad")
5858
let version = try Version(package: package,
5959
packageName: nil) // Deliberately missing a `packageName`
60-
try version.save(on: app.db).wait()
61-
try Build(version: version,
62-
platform: .macosXcodebuild,
63-
status: .ok,
64-
swiftVersion: .init(5, 6, 0)).save(on: app.db).wait()
65-
try Repository(package: package,
66-
name: "LeftPad from Repository.name").save(on: app.db).wait()
60+
try await version.save(on: app.db)
61+
try await Build(version: version,
62+
platform: .macosXcodebuild,
63+
status: .ok,
64+
swiftVersion: .init(5, 6, 0)).save(on: app.db)
65+
try await Repository(package: package,
66+
name: "LeftPad from Repository.name").save(on: app.db)
6767
}
6868

6969
// Query results back through the Joined4
70-
let buildResult = try BuildResult.query(on: app.db).first().wait().unwrap()
70+
let buildResult = try await BuildResult.query(on: app.db).first().unwrap()
7171

7272
// MUT
7373
let model = try XCTUnwrap(BuildMonitorIndex.Model(buildResult: buildResult))
7474

7575
XCTAssertEqual(model.packageName, "LeftPad from Repository.name")
7676
}
7777

78-
func test_init_from_Build_with_no_package_name() throws {
78+
func test_init_from_Build_with_no_package_name() async throws {
7979
do {
8080
let package = try savePackage(on: app.db, "https://github.com/daveverwer/LeftPad")
8181
let version = try Version(package: package,
8282
packageName: nil) // Deliberately missing a `packageName`
83-
try version.save(on: app.db).wait()
84-
try Build(version: version,
85-
platform: .macosXcodebuild,
86-
status: .ok,
87-
swiftVersion: .init(5, 6, 0)).save(on: app.db).wait()
88-
try Repository(package: package,
89-
name: nil) // Deliberately missing a `name`
90-
.save(on: app.db).wait()
83+
try await version.save(on: app.db)
84+
try await Build(version: version,
85+
platform: .macosXcodebuild,
86+
status: .ok,
87+
swiftVersion: .init(5, 6, 0)).save(on: app.db)
88+
try await Repository(package: package,
89+
name: nil) // Deliberately missing a `name`
90+
.save(on: app.db)
9191
}
9292

9393
// Query results back through the Joined4
94-
let buildResult = try BuildResult.query(on: app.db).first().wait().unwrap()
94+
let buildResult = try await BuildResult.query(on: app.db).first().unwrap()
9595

9696
// MUT
9797
let model = try XCTUnwrap(BuildMonitorIndex.Model(buildResult: buildResult))
9898

9999
XCTAssertEqual(model.packageName, "Unknown Package")
100100
}
101101

102-
func test_init_from_Build_without_ownerName() throws {
102+
func test_init_from_Build_without_ownerName() async throws {
103103
do {
104104
let package = try savePackage(on: app.db, "https://github.com/daveverwer/LeftPad")
105105
let version = try Version(package: package)
106-
try version.save(on: app.db).wait()
107-
try Build(version: version,
108-
platform: .macosXcodebuild,
109-
status: .ok,
110-
swiftVersion: .init(5, 6, 0)).save(on: app.db).wait()
111-
try Repository(package: package,
112-
owner: "daveverwer from Repository.owner",
113-
ownerName: nil) // Deliberately missing an `ownerName`
114-
.save(on: app.db).wait()
106+
try await version.save(on: app.db)
107+
try await Build(version: version,
108+
platform: .macosXcodebuild,
109+
status: .ok,
110+
swiftVersion: .init(5, 6, 0)).save(on: app.db)
111+
try await Repository(package: package,
112+
owner: "daveverwer from Repository.owner",
113+
ownerName: nil) // Deliberately missing an `ownerName`
114+
.save(on: app.db)
115115
}
116116

117117
// Query results back through the Joined4
118-
let buildResult = try BuildResult.query(on: app.db).first().wait().unwrap()
118+
let buildResult = try await BuildResult.query(on: app.db).first().unwrap()
119119

120120
// MUT
121121
let model = try XCTUnwrap(BuildMonitorIndex.Model(buildResult: buildResult))

Tests/AppTests/PackageInfoTests.swift

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -19,18 +19,17 @@ import XCTest
1919

2020
class PackageInfoTests: AppTestCase {
2121

22-
func test_title_package_name() throws {
22+
func test_title_package_name() async throws {
2323
// Ensure title is populated from package.name()
2424
// setup
2525
let p = try savePackage(on: app.db, "1")
26-
try Repository(package: p, name: "repo name", owner: "owner")
27-
.save(on: app.db).wait()
28-
try Version(package: p, latest: .defaultBranch, packageName: "package name")
29-
.save(on: app.db).wait()
30-
let joined = try XCTUnwrap(Joined3<Package, Repository, Version>
31-
.query(on: app.db, version: .defaultBranch)
32-
.first()
33-
.wait())
26+
try await Repository(package: p, name: "repo name", owner: "owner")
27+
.save(on: app.db)
28+
try await Version(package: p, latest: .defaultBranch, packageName: "package name")
29+
.save(on: app.db)
30+
let joined = try await XCTUnwrapAsync(try await Joined3<Package, Repository, Version>
31+
.query(on: app.db, version: .defaultBranch)
32+
.first())
3433

3534
// MUT
3635
let pkgInfo = PackageInfo(package: joined)
@@ -39,18 +38,17 @@ class PackageInfoTests: AppTestCase {
3938
XCTAssertEqual(pkgInfo?.title, "package name")
4039
}
4140

42-
func test_title_repo_name() throws {
41+
func test_title_repo_name() async throws {
4342
// Ensure title is populated from repoName if package.name() is nil
4443
// setup
4544
let p = try savePackage(on: app.db, "1")
46-
try Repository(package: p, name: "repo name", owner: "owner")
47-
.save(on: app.db).wait()
48-
try Version(package: p, latest: .defaultBranch, packageName: nil)
49-
.save(on: app.db).wait()
50-
let joined = try XCTUnwrap(Joined3<Package, Repository, Version>
51-
.query(on: app.db, version: .defaultBranch)
52-
.first()
53-
.wait())
45+
try await Repository(package: p, name: "repo name", owner: "owner")
46+
.save(on: app.db)
47+
try await Version(package: p, latest: .defaultBranch, packageName: nil)
48+
.save(on: app.db)
49+
let joined = try await XCTUnwrapAsync(try await Joined3<Package, Repository, Version>
50+
.query(on: app.db, version: .defaultBranch)
51+
.first())
5452

5553
// MUT
5654
let pkgInfo = PackageInfo(package: joined)

0 commit comments

Comments
 (0)