Documented the StaticFile enumeration in the library target.

This commit is contained in:
Javier Cicchelli 2025-03-05 00:04:07 +01:00
parent 299a196fff
commit 996459c9f0
3 changed files with 44 additions and 2 deletions

View File

@ -1,7 +1,12 @@
/// An enumeration that represents basic configuration static files which will be created by the `DocC` building process.
enum StaticFile: String, CaseIterable { enum StaticFile: String, CaseIterable {
/// A file defining the root of the articles' folder, which will be used to redirect to the root of the archives' root article.
case documentation = "documentation.json" case documentation = "documentation.json"
/// A file containing the icon in `.ico` format for the documentation generated by the `DocC` building process.
case faviconICO = "favicon.ico" case faviconICO = "favicon.ico"
/// A file containing the icon in `.svg` format for the documentation generated by the `DocC` building process.
case faviconSVG = "favicon.svg" case faviconSVG = "favicon.svg"
/// A file containing the theme settings for the documentation generated by the `DocC` building process.
case themeSettings = "theme-settings.json" case themeSettings = "theme-settings.json"
} }
@ -13,8 +18,8 @@ extension StaticFile: Pathable {
var path: String { var path: String {
switch self { switch self {
case .documentation: "/data/" + rawValue case .documentation: .init(format: .Format.Path.data, rawValue)
default: .init(format: .Format.pathRoot, rawValue) default: .init(format: .Format.Path.root, rawValue)
} }
} }

View File

@ -1,6 +1,7 @@
extension String { extension String {
enum Format { enum Format {
enum Path { enum Path {
static let data = "/data/%@"
static let docs = "/docs/%@" static let docs = "/docs/%@"
static let root = "/%@" static let root = "/%@"
} }

View File

@ -0,0 +1,36 @@
import Testing
@testable import AppLibrary
@Suite("StaticFile")
struct StaticFileTests {
@Test(arguments: zip(StaticFile.allCases, [String].paths))
func path(
for prefix: StaticFile,
expects pathExpected: String
) async throws {
// GIVEN
// WHEN
let path = prefix.path
// THEN
#expect(path == pathExpected)
}
}
// MARK: - Collection+Strings
private extension Collection where Element == String {
// MARK: Properties
static var paths: [Element] {[
"/data/documentation.json",
"/favicon.ico",
"/favicon.svg",
"/theme-settings.json"
]}
}