migration

This commit is contained in:
Daniel Arantes Loverde
2026-08-11 13:22:02 -03:00
parent c4d6998595
commit 7702836fe7
231 changed files with 4329 additions and 1958 deletions

View File

@@ -0,0 +1,46 @@
import Foundation
import Testing
@testable import PediFoods
@Test("ImageSourceResolver returns nil for nil, empty, or whitespace-only input")
func imageSourceResolverNilOnEmptyInput() {
#expect(ImageSourceResolver.resolve(nil) == nil)
#expect(ImageSourceResolver.resolve("") == nil)
#expect(ImageSourceResolver.resolve(" ") == nil)
}
@Test("ImageSourceResolver passes absolute http/https URLs through unchanged")
func imageSourceResolverPassesAbsoluteURLsThrough() {
#expect(ImageSourceResolver.resolve("https://cdn.example.com/img.png") == "https://cdn.example.com/img.png")
#expect(ImageSourceResolver.resolve("http://cdn.example.com/img.png") == "http://cdn.example.com/img.png")
}
@Test("ImageSourceResolver treats the http/https scheme check case-insensitively")
func imageSourceResolverSchemeCheckIsCaseInsensitive() {
let resolved = ImageSourceResolver.resolve("HTTPS://cdn.example.com/img.png")
#expect(resolved == "HTTPS://cdn.example.com/img.png")
}
@Test("ImageSourceResolver passes data:image URLs through unchanged")
func imageSourceResolverPassesDataImageURLsThrough() {
let dataURL = "data:image/png;base64,iVBORw0KGgo="
#expect(ImageSourceResolver.resolve(dataURL) == dataURL)
}
@Test("ImageSourceResolver normalizes JSON-escaped backslash-slashes before checking the scheme")
func imageSourceResolverNormalizesEscapedSlashes() {
let escaped = "https:\\/\\/cdn.example.com\\/img.png"
#expect(ImageSourceResolver.resolve(escaped) == "https://cdn.example.com/img.png")
}
@Test("ImageSourceResolver prefixes a relative path with the API base URL")
func imageSourceResolverPrefixesRelativePathWithBaseURL() {
let resolved = ImageSourceResolver.resolve("uploads/img.png")
#expect(resolved == "\(ApiConfig.baseURL.absoluteString)/uploads/img.png")
}
@Test("ImageSourceResolver doesn't double the leading slash for an already-rooted relative path")
func imageSourceResolverDoesNotDoubleLeadingSlash() {
let resolved = ImageSourceResolver.resolve("/uploads/img.png")
#expect(resolved == "\(ApiConfig.baseURL.absoluteString)/uploads/img.png")
}