Skip to content

Commit 005c259

Browse files
committed
add more tests for package tags queries
1 parent c300c88 commit 005c259

File tree

2 files changed

+119
-13
lines changed

2 files changed

+119
-13
lines changed

Local/Deployment/unidoc-rs-init.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
1-
// run with: /bin/mongosh --file unidoc-rs-init.js
2-
db = connect('mongodb://localhost:27017/admin');
1+
// run with: /bin/mongosh --file /unidoc-rs-init.js
2+
db = connect('mongodb://unidoc-mongod:27017/admin');
33
db.runCommand({'replSetInitiate': {
44
"_id": "unidoc-rs",
55
"version": 1,
66
"members": [
77
{
88
"_id": 0,
9-
"host": "localhost:27017",
9+
"host": "unidoc-mongod:27017",
1010
"tags": {},
1111
"priority": 1
1212
}

Sources/UnidocQueryTests/Tests/PackageQueries.swift

Lines changed: 116 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,15 @@ struct PackageQueries:UnidocDatabaseTestBattery
2222
let empty:SymbolGraph = .init(modules: [])
2323
var docs:SymbolGraphArchive
2424

25+
let status:
26+
(
27+
swift:Unidoc.UploadStatus,
28+
debut:Unidoc.UploadStatus,
29+
fearless:(Unidoc.UploadStatus, Unidoc.UploadStatus),
30+
speakNow:(Unidoc.UploadStatus, Unidoc.UploadStatus),
31+
red:Unidoc.UploadStatus
32+
)
33+
2534
do
2635
{
2736
docs = .init(
@@ -33,54 +42,51 @@ struct PackageQueries:UnidocDatabaseTestBattery
3342
products: []),
3443
graph: empty)
3544

36-
let _:Unidoc.UploadStatus = try await unidoc.store(docs: docs, with: session)
45+
status.swift = try await unidoc.store(docs: docs, with: session)
3746
}
3847
do
3948
{
4049
docs.metadata.package = "swift-debut"
4150
docs.metadata.commit = nil
4251

43-
let _:Unidoc.UploadStatus = try await unidoc.store(docs: docs, with: session)
52+
status.debut = try await unidoc.store(docs: docs, with: session)
4453
}
4554
do
4655
{
4756
docs.metadata.package = "swift-fearless"
4857
docs.metadata.commit = .init(0xffffffffffffffffffffffffffffffffffffffff,
4958
refname: "0.1.2")
5059

51-
let _:Unidoc.UploadStatus = try await unidoc.store(docs: docs, with: session)
60+
status.fearless.0 = try await unidoc.store(docs: docs, with: session)
5261
}
5362
do
5463
{
5564
docs.metadata.commit = .init(0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee,
5665
refname: "0.1.3")
5766

58-
let _:Unidoc.UploadStatus = try await unidoc.store(docs: docs, with: session)
67+
status.fearless.1 = try await unidoc.store(docs: docs, with: session)
5968
}
6069
do
6170
{
6271
docs.metadata.package = "swift-speak-now"
6372
docs.metadata.commit = nil
6473

65-
let _:Unidoc.UploadStatus = try await unidoc.store(docs: docs, with: session)
74+
status.speakNow.0 = try await unidoc.store(docs: docs, with: session)
6675
}
6776
do
6877
{
6978
docs.metadata.commit = .init(0xffffffffffffffffffffffffffffffffffffffff,
7079
refname: "0.3.0")
7180

72-
let _:Unidoc.UploadStatus = try await unidoc.store(docs: docs, with: session)
81+
status.speakNow.1 = try await unidoc.store(docs: docs, with: session)
7382
}
7483
do
7584
{
7685
docs.metadata.package = "swift-red"
7786
docs.metadata.commit = .init(0xffffffffffffffffffffffffffffffffffffffff,
7887
refname: "0.4.0")
7988

80-
let uploaded:Unidoc.UploadStatus = try await unidoc.store(docs: docs,
81-
with: session)
82-
83-
print(uploaded)
89+
status.red = try await unidoc.store(docs: docs, with: session)
8490
}
8591

8692
if let tests:TestGroup = tests / "AllPackages"
@@ -114,5 +120,105 @@ struct PackageQueries:UnidocDatabaseTestBattery
114120
}
115121
}
116122
}
123+
124+
if let tests:TestGroup = tests / "Tags"
125+
{
126+
if let tests:TestGroup = tests / "Debut"
127+
{
128+
let query:Unidoc.PackageQuery = .init(package: "swift-debut", limit: 2)
129+
await tests.do
130+
{
131+
guard
132+
let output:Unidoc.PackageQuery.Output = tests.expect(
133+
value: try await unidoc.execute(query: query, with: session))
134+
else
135+
{
136+
return
137+
}
138+
139+
tests.expect(value: output.tagless?.graph)
140+
tests.expect(output.prereleases ..? [])
141+
tests.expect(output.releases ..? [])
142+
tests.expect(output.package.id ==? status.debut.package)
143+
}
144+
}
145+
if let tests:TestGroup = tests / "Fearless"
146+
{
147+
let query:Unidoc.PackageQuery = .init(package: "swift-fearless", limit: 2)
148+
await tests.do
149+
{
150+
guard
151+
let output:Unidoc.PackageQuery.Output = tests.expect(
152+
value: try await unidoc.execute(query: query, with: session))
153+
else
154+
{
155+
return
156+
}
157+
158+
tests.expect(nil: output.tagless?.graph)
159+
tests.expect(output.prereleases ..? [])
160+
161+
guard tests.expect(output.releases.count ==? 2)
162+
else
163+
{
164+
return
165+
}
166+
167+
// Reverse chronological order!
168+
tests.expect(output.releases[0].edition.id ==? status.fearless.1.edition)
169+
tests.expect(output.releases[1].edition.id ==? status.fearless.0.edition)
170+
}
171+
}
172+
if let tests:TestGroup = tests / "SpeakNow"
173+
{
174+
let query:Unidoc.PackageQuery = .init(package: "swift-speak-now", limit: 2)
175+
await tests.do
176+
{
177+
guard
178+
let output:Unidoc.PackageQuery.Output = tests.expect(
179+
value: try await unidoc.execute(query: query, with: session))
180+
else
181+
{
182+
return
183+
}
184+
185+
tests.expect(value: output.tagless?.graph)
186+
tests.expect(output.prereleases ..? [])
187+
188+
guard tests.expect(output.releases.count ==? 1)
189+
else
190+
{
191+
return
192+
}
193+
194+
tests.expect(output.releases[0].edition.id ==? status.speakNow.1.edition)
195+
}
196+
}
197+
if let tests:TestGroup = tests / "Red"
198+
{
199+
let query:Unidoc.PackageQuery = .init(package: "swift-red", limit: 2)
200+
await tests.do
201+
{
202+
guard
203+
let output:Unidoc.PackageQuery.Output = tests.expect(
204+
value: try await unidoc.execute(query: query, with: session))
205+
else
206+
{
207+
return
208+
}
209+
210+
tests.expect(nil: output.tagless?.graph)
211+
tests.expect(output.prereleases ..? [])
212+
213+
guard tests.expect(output.releases.count ==? 1)
214+
else
215+
{
216+
return
217+
}
218+
219+
tests.expect(output.releases[0].edition.id ==? status.red.edition)
220+
}
221+
}
222+
}
117223
}
118224
}

0 commit comments

Comments
 (0)