Skip to content

Commit 2c96753

Browse files
committed
Convert DocumentationTargetTests
1 parent 7af64fa commit 2c96753

File tree

1 file changed

+104
-96
lines changed

1 file changed

+104
-96
lines changed

Tests/AppTests/DocumentationTargetTests.swift

Lines changed: 104 additions & 96 deletions
Original file line numberDiff line numberDiff line change
@@ -12,127 +12,135 @@
1212
// See the License for the specific language governing permissions and
1313
// limitations under the License.
1414

15+
import Foundation
16+
1517
@testable import App
1618

17-
import XCTest
19+
import Testing
1820

1921

20-
final class DocumentationTargetTests: AppTestCase {
22+
@Suite struct DocumentationTargetTests {
2123

22-
func test_external() async throws {
24+
@Test func external() async throws {
2325
// Test external doc url lookup
24-
// setup
25-
let pkg = try await savePackage(on: app.db, "1".url)
26-
try await Repository(package: pkg,
27-
name: "bar",
28-
owner: "foo").save(on: app.db)
29-
let version = try App.Version(package: pkg,
30-
commit: "0123456789",
31-
commitDate: Date(timeIntervalSince1970: 0),
32-
docArchives: nil,
33-
latest: .defaultBranch,
34-
packageName: "test",
35-
reference: .branch("main"),
36-
spiManifest: .init(yml: """
26+
try await withApp { app in
27+
// setup
28+
let pkg = try await savePackage(on: app.db, "1".url)
29+
try await Repository(package: pkg,
30+
name: "bar",
31+
owner: "foo").save(on: app.db)
32+
let version = try App.Version(package: pkg,
33+
commit: "0123456789",
34+
commitDate: Date(timeIntervalSince1970: 0),
35+
docArchives: nil,
36+
latest: .defaultBranch,
37+
packageName: "test",
38+
reference: .branch("main"),
39+
spiManifest: .init(yml: """
3740
version: 1
3841
external_links:
3942
documentation: https://example.com/package/documentation/
4043
"""))
41-
try await version.save(on: app.db)
44+
try await version.save(on: app.db)
4245

43-
// MUT
44-
let res = try await DocumentationTarget.query(on: app.db, owner: "foo", repository: "bar")
46+
// MUT
47+
let res = try await DocumentationTarget.query(on: app.db, owner: "foo", repository: "bar")
4548

46-
// validate
47-
XCTAssertEqual(res, .external(url: "https://example.com/package/documentation/"))
49+
// validate
50+
#expect(res == .external(url: "https://example.com/package/documentation/"))
51+
}
4852
}
4953

50-
func test_external_override() async throws {
54+
@Test func external_override() async throws {
5155
// Test external doc url lookup overriding internal doc archives
52-
// setup
53-
let pkg = try await savePackage(on: app.db, "1".url)
54-
try await Repository(package: pkg,
55-
name: "bar",
56-
owner: "foo").save(on: app.db)
57-
let version = try App.Version(package: pkg,
58-
commit: "0123456789",
59-
commitDate: Date(timeIntervalSince1970: 0),
60-
docArchives: [
61-
// Inserting an archive here to test that the external URL overrides any generated docs.
62-
.init(name: "archive1", title: "Archive One")
63-
],
64-
latest: .defaultBranch,
65-
packageName: "test",
66-
reference: .branch("main"),
67-
spiManifest: .init(yml: """
56+
try await withApp { app in
57+
// setup
58+
let pkg = try await savePackage(on: app.db, "1".url)
59+
try await Repository(package: pkg,
60+
name: "bar",
61+
owner: "foo").save(on: app.db)
62+
let version = try App.Version(package: pkg,
63+
commit: "0123456789",
64+
commitDate: Date(timeIntervalSince1970: 0),
65+
docArchives: [
66+
// Inserting an archive here to test that the external URL overrides any generated docs.
67+
.init(name: "archive1", title: "Archive One")
68+
],
69+
latest: .defaultBranch,
70+
packageName: "test",
71+
reference: .branch("main"),
72+
spiManifest: .init(yml: """
6873
version: 1
6974
external_links:
7075
documentation: https://example.com/package/documentation/
7176
"""))
72-
try await version.save(on: app.db)
77+
try await version.save(on: app.db)
7378

74-
// MUT
75-
let res = try await DocumentationTarget.query(on: app.db, owner: "foo", repository: "bar")
79+
// MUT
80+
let res = try await DocumentationTarget.query(on: app.db, owner: "foo", repository: "bar")
7681

77-
// validate
78-
XCTAssertEqual(res, .external(url: "https://example.com/package/documentation/"))
82+
// validate
83+
#expect(res == .external(url: "https://example.com/package/documentation/"))
84+
}
7985
}
8086

81-
func test_internal_defaultBranch() async throws {
82-
// setup
83-
let pkg = try await savePackage(on: app.db, "1".url)
84-
try await Repository(package: pkg,
85-
name: "bar",
86-
owner: "foo").save(on: app.db)
87-
try await App.Version(package: pkg,
88-
commit: "0123456789",
89-
commitDate: Date(timeIntervalSince1970: 0),
90-
docArchives: [
91-
.init(name: "archive1", title: "Archive One")
92-
],
93-
latest: .defaultBranch,
94-
packageName: "test",
95-
reference: .branch("main")).save(on: app.db)
96-
97-
// MUT
98-
let res = try await DocumentationTarget.query(on: app.db, owner: "foo", repository: "bar")
99-
100-
// validate
101-
XCTAssertEqual(res, .internal(docVersion: .reference("main"),
102-
archive: "archive1"))
87+
@Test func internal_defaultBranch() async throws {
88+
try await withApp { app in
89+
// setup
90+
let pkg = try await savePackage(on: app.db, "1".url)
91+
try await Repository(package: pkg,
92+
name: "bar",
93+
owner: "foo").save(on: app.db)
94+
try await App.Version(package: pkg,
95+
commit: "0123456789",
96+
commitDate: Date(timeIntervalSince1970: 0),
97+
docArchives: [
98+
.init(name: "archive1", title: "Archive One")
99+
],
100+
latest: .defaultBranch,
101+
packageName: "test",
102+
reference: .branch("main")).save(on: app.db)
103+
104+
// MUT
105+
let res = try await DocumentationTarget.query(on: app.db, owner: "foo", repository: "bar")
106+
107+
// validate
108+
#expect(res == .internal(docVersion: .reference("main"), archive: "archive1"))
109+
}
103110
}
104111

105-
func test_internal_stableBranch() async throws {
106-
// setup
107-
let pkg = try await savePackage(on: app.db, "1".url)
108-
try await Repository(package: pkg,
109-
name: "bar",
110-
owner: "foo").save(on: app.db)
111-
try await App.Version(package: pkg,
112-
commit: "0000000000",
113-
commitDate: Date(timeIntervalSince1970: 0),
114-
docArchives: [
115-
.init(name: "archive1", title: "Archive One")
116-
],
117-
latest: .defaultBranch,
118-
packageName: "test",
119-
reference: .branch("main")).save(on: app.db)
120-
try await App.Version(package: pkg,
121-
commit: "11111111111",
122-
commitDate: Date(timeIntervalSince1970: 0),
123-
docArchives: [
124-
.init(name: "archive2", title: "Archive Two")
125-
],
126-
latest: .release,
127-
packageName: "test",
128-
reference: .tag(1, 0, 0)).save(on: app.db)
129-
130-
// MUT
131-
let res = try await DocumentationTarget.query(on: app.db, owner: "foo", repository: "bar")
132-
133-
// validate
134-
XCTAssertEqual(res, .internal(docVersion: .reference("1.0.0"),
135-
archive: "archive2"))
112+
@Test func internal_stableBranch() async throws {
113+
try await withApp { app in
114+
// setup
115+
let pkg = try await savePackage(on: app.db, "1".url)
116+
try await Repository(package: pkg,
117+
name: "bar",
118+
owner: "foo").save(on: app.db)
119+
try await App.Version(package: pkg,
120+
commit: "0000000000",
121+
commitDate: Date(timeIntervalSince1970: 0),
122+
docArchives: [
123+
.init(name: "archive1", title: "Archive One")
124+
],
125+
latest: .defaultBranch,
126+
packageName: "test",
127+
reference: .branch("main")).save(on: app.db)
128+
try await App.Version(package: pkg,
129+
commit: "11111111111",
130+
commitDate: Date(timeIntervalSince1970: 0),
131+
docArchives: [
132+
.init(name: "archive2", title: "Archive Two")
133+
],
134+
latest: .release,
135+
packageName: "test",
136+
reference: .tag(1, 0, 0)).save(on: app.db)
137+
138+
// MUT
139+
let res = try await DocumentationTarget.query(on: app.db, owner: "foo", repository: "bar")
140+
141+
// validate
142+
#expect(res == .internal(docVersion: .reference("1.0.0"), archive: "archive2"))
143+
}
136144
}
137145

138146
}

0 commit comments

Comments
 (0)