From 66225298d26e9df212f831b0eb9f9cf3979aff9d Mon Sep 17 00:00:00 2001 From: "Daniel J. Summers" Date: Mon, 8 Jan 2024 18:41:12 -0500 Subject: [PATCH] Add some view model tests --- src/MyWebLog.Domain/SupportTypes.fs | 22 ++++++++- src/MyWebLog.Domain/ViewModels.fs | 7 ++- src/MyWebLog.Tests/Domain.fs | 74 ++++++++++++++++++++++++++++- 3 files changed, 100 insertions(+), 3 deletions(-) diff --git a/src/MyWebLog.Domain/SupportTypes.fs b/src/MyWebLog.Domain/SupportTypes.fs index 3d78e61..1266fd7 100644 --- a/src/MyWebLog.Domain/SupportTypes.fs +++ b/src/MyWebLog.Domain/SupportTypes.fs @@ -554,7 +554,27 @@ type PodcastOptions = { /// The medium (what the podcast IS, not what it is ABOUT) Medium: PodcastMedium option -} +} with + + /// A default set of podcast options + static member Empty = { + Title = "" + Subtitle = None + ItemsInFeed = 0 + Summary = "" + DisplayedAuthor = "" + Email = "" + ImageUrl = Permalink.Empty + AppleCategory = "" + AppleSubcategory = None + Explicit = No + DefaultMediaType = None + MediaBaseUrl = None + PodcastGuid = None + FundingUrl = None + FundingText = None + Medium = None + } /// A custom feed diff --git a/src/MyWebLog.Domain/ViewModels.fs b/src/MyWebLog.Domain/ViewModels.fs index 3b8a761..3bbdea0 100644 --- a/src/MyWebLog.Domain/ViewModels.fs +++ b/src/MyWebLog.Domain/ViewModels.fs @@ -89,7 +89,12 @@ type DisplayCustomFeed = { static member FromFeed (cats: DisplayCategory array) (feed: CustomFeed) = let source = match feed.Source with - | Category (CategoryId catId) -> $"Category: {(cats |> Array.find (fun cat -> cat.Id = catId)).Name}" + | Category (CategoryId catId) -> + cats + |> Array.tryFind (fun cat -> cat.Id = catId) + |> Option.map _.Name + |> Option.defaultValue "--INVALID; DELETE THIS FEED--" + |> sprintf "Category: %s" | Tag tag -> $"Tag: {tag}" { Id = string feed.Id Source = source diff --git a/src/MyWebLog.Tests/Domain.fs b/src/MyWebLog.Tests/Domain.fs index 09c6374..78ffeb2 100644 --- a/src/MyWebLog.Tests/Domain.fs +++ b/src/MyWebLog.Tests/Domain.fs @@ -501,6 +501,75 @@ let webLogUserTests = ] ] +// --- VIEW MODELS --- + +open MyWebLog.ViewModels + +/// Unit tests for the addBaseToRelativeUrls helper function +let addBaseToRelativeUrlsTests = + testList "PublicHelpers.addBaseToRelativeUrls" [ + test "succeeds when there is no extra URL path" { + let testText = """Howdy>""" + let modified = addBaseToRelativeUrls "" testText + Expect.equal modified testText "The text should not have been modified" + } + test "succeeds with an extra URL path" { + let testText = + """