Files
ccn/Services/Website/Tests/Website.xctestplan
T
javier a045a23519 Web support for the Website service (#17)
This PR contains the work done to introduce a new Web Swift package that provides a reusable, declarative way to register route controllers on a Hummingbird router, then adopt it in the Website service.

To provide further details about the work:

* Web package
  * The `RouterController` protocol — a Sendable protocol to group controllers behind one `routes` property.
  * The `RouteCollectionBuilder`  — a result builder that collects controllers' route collections into a stack, with full support for optionals, conditionals, and arrays.
  * The `addController(_:)` method — a `RouterMethods` extension letting controllers be listed declaratively and adding each one's routes at the router root.

* Website service
  * Added Web as a dependency of the _WebsiteLibrary_ target.
  * Conformed the `RootController` and `HealthController`controllers to the `RouterController` protocol.
  * Updated the `App+Build` extension to to use the cleaner `router.addController { … }` instead.

Reviewed-on: rock-n-code/loud-amsterdam#17
Co-authored-by: Javier Cicchelli <javier@rock-n-code.com>
Co-committed-by: Javier Cicchelli <javier@rock-n-code.com>
2026-07-19 00:47:49 +00:00

59 lines
1.3 KiB
Plaintext

{
"configurations" : [
{
"id" : "F3231E68-357B-4ED7-98E9-F5767AB17024",
"name" : "Test Scheme Action",
"options" : {
}
}
],
"defaultOptions" : {
"performanceAntipatternCheckerEnabled" : true,
"targetForVariableExpansion" : {
"containerPath" : "container:",
"identifier" : "Website",
"name" : "Website"
},
"testInteropMode" : "complete"
},
"testTargets" : [
{
"target" : {
"containerPath" : "container:",
"identifier" : "WebsiteTests",
"name" : "WebsiteTests"
}
},
{
"target" : {
"containerPath" : "container:",
"identifier" : "WebsiteLibraryTests",
"name" : "WebsiteLibraryTests"
}
},
{
"target" : {
"containerPath" : "container:..\/..\/Packages\/Persistence",
"identifier" : "PersistenceTests",
"name" : "PersistenceTests"
}
},
{
"target" : {
"containerPath" : "container:..\/..\/Packages\/Localization",
"identifier" : "LocalizationTests",
"name" : "LocalizationTests"
}
},
{
"target" : {
"containerPath" : "container:..\/..\/Packages\/Web",
"identifier" : "WebTests",
"name" : "WebTests"
}
}
],
"version" : 1
}