@@ -25,18 +25,18 @@ import Util
2525
2626@Suite
2727struct PIRServiceControllerTests {
28- @Test
29- func noUserIdentifier( ) async throws {
30- // Error message returned by Hummingbird
31- struct ErrorMessage : Codable {
32- // swiftlint:disable:next nesting
33- struct Details : Codable {
34- let message : String
35- }
36-
37- let error : Details
28+ // Error message returned by Hummingbird
29+ struct ErrorMessage : Codable {
30+ // swiftlint:disable:next nesting
31+ struct Details : Codable {
32+ let message : String
3833 }
3934
35+ let error : Details
36+ }
37+
38+ @Test
39+ func noUserIdentifier( ) async throws {
4040 let app = try await buildApplication ( )
4141 try await app. test ( . live) { client in
4242 try await client. execute ( uri: " /key " , method: . post) { response in
@@ -232,4 +232,27 @@ struct PIRServiceControllerTests {
232232 }
233233 }
234234 }
235+
236+ @Test
237+ func configFetchWithUnknownUsecase( ) async throws {
238+ let usecaseStore = UsecaseStore ( )
239+ let exampleUsecase = ExampleUsecase . hundred
240+ try await usecaseStore. set ( name: " test " , usecase: exampleUsecase)
241+ let app = try await buildApplication ( usecaseStore: usecaseStore)
242+ let user = UserIdentifier ( )
243+
244+ let configRequest = Apple_SwiftHomomorphicEncryption_Api_Pir_V1_ConfigRequest . with { configReq in
245+ configReq. usecases = [ " other " ]
246+ }
247+ try await app. test ( . live) { client in
248+ try await client. execute ( uri: " /config " , userIdentifier: user, message: configRequest) { response in
249+ #expect( response. status == . notFound)
250+ let errorMessage = try JSONDecoder ( ) . decode ( ErrorMessage . self, from: response. body)
251+ #expect( errorMessage. error. message == """
252+ One or more usecases not found. Requested usecases: [ " other " ].
253+ Usecases available on the server: [ " test " ].
254+ """ )
255+ }
256+ }
257+ }
235258}
0 commit comments