@@ -22,6 +22,15 @@ struct PackageQueries:UnidocDatabaseTestBattery
22
22
let empty : SymbolGraph = . init( modules: [ ] )
23
23
var docs : SymbolGraphArchive
24
24
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
+
25
34
do
26
35
{
27
36
docs = . init(
@@ -33,54 +42,51 @@ struct PackageQueries:UnidocDatabaseTestBattery
33
42
products: [ ] ) ,
34
43
graph: empty)
35
44
36
- let _ : Unidoc . UploadStatus = try await unidoc. store ( docs: docs, with: session)
45
+ status . swift = try await unidoc. store ( docs: docs, with: session)
37
46
}
38
47
do
39
48
{
40
49
docs. metadata. package = " swift-debut "
41
50
docs. metadata. commit = nil
42
51
43
- let _ : Unidoc . UploadStatus = try await unidoc. store ( docs: docs, with: session)
52
+ status . debut = try await unidoc. store ( docs: docs, with: session)
44
53
}
45
54
do
46
55
{
47
56
docs. metadata. package = " swift-fearless "
48
57
docs. metadata. commit = . init( 0xffffffffffffffffffffffffffffffffffffffff ,
49
58
refname: " 0.1.2 " )
50
59
51
- let _ : Unidoc . UploadStatus = try await unidoc. store ( docs: docs, with: session)
60
+ status . fearless . 0 = try await unidoc. store ( docs: docs, with: session)
52
61
}
53
62
do
54
63
{
55
64
docs. metadata. commit = . init( 0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee ,
56
65
refname: " 0.1.3 " )
57
66
58
- let _ : Unidoc . UploadStatus = try await unidoc. store ( docs: docs, with: session)
67
+ status . fearless . 1 = try await unidoc. store ( docs: docs, with: session)
59
68
}
60
69
do
61
70
{
62
71
docs. metadata. package = " swift-speak-now "
63
72
docs. metadata. commit = nil
64
73
65
- let _ : Unidoc . UploadStatus = try await unidoc. store ( docs: docs, with: session)
74
+ status . speakNow . 0 = try await unidoc. store ( docs: docs, with: session)
66
75
}
67
76
do
68
77
{
69
78
docs. metadata. commit = . init( 0xffffffffffffffffffffffffffffffffffffffff ,
70
79
refname: " 0.3.0 " )
71
80
72
- let _ : Unidoc . UploadStatus = try await unidoc. store ( docs: docs, with: session)
81
+ status . speakNow . 1 = try await unidoc. store ( docs: docs, with: session)
73
82
}
74
83
do
75
84
{
76
85
docs. metadata. package = " swift-red "
77
86
docs. metadata. commit = . init( 0xffffffffffffffffffffffffffffffffffffffff ,
78
87
refname: " 0.4.0 " )
79
88
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)
84
90
}
85
91
86
92
if let tests: TestGroup = tests / " AllPackages "
@@ -114,5 +120,105 @@ struct PackageQueries:UnidocDatabaseTestBattery
114
120
}
115
121
}
116
122
}
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
+ }
117
223
}
118
224
}
0 commit comments