From 8e0b2df870acd1865046ad56f879cadf927980d0 Mon Sep 17 00:00:00 2001 From: "Daniel J. Summers" Date: Tue, 7 Jul 2026 20:26:34 -0400 Subject: [PATCH] Add true/false to auto-htmx converter (#59) - This will allow backups to be restored, converting the value as part of the restoration --- src/MyWebLog.Data/Converters.fs | 5 ++++- src/MyWebLog.Tests/Data/ConvertersTests.fs | 10 +++++++--- src/MyWebLog/Handlers/Helpers.fs | 4 ---- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/MyWebLog.Data/Converters.fs b/src/MyWebLog.Data/Converters.fs index 2b70e97..c360ac5 100644 --- a/src/MyWebLog.Data/Converters.fs +++ b/src/MyWebLog.Data/Converters.fs @@ -15,7 +15,10 @@ module Json = override _.WriteJson(writer: JsonWriter, value: AutoHtmxType, _: JsonSerializer) = writer.WriteValue(string value) override _.ReadJson(reader: JsonReader, _: Type, _: AutoHtmxType, _: bool, _: JsonSerializer) = - (string >> AutoHtmxType.Parse) reader.Value + // Backups prior to v3 will still have true/false for this field + match reader.TokenType with + | JsonToken.Boolean -> if reader.Value :?> bool then AutoHtmx else NoAutoHtmx + | _ -> (string >> AutoHtmxType.Parse) reader.Value /// Converter for the type type CategoryIdConverter() = diff --git a/src/MyWebLog.Tests/Data/ConvertersTests.fs b/src/MyWebLog.Tests/Data/ConvertersTests.fs index dd69c98..accfad0 100644 --- a/src/MyWebLog.Tests/Data/ConvertersTests.fs +++ b/src/MyWebLog.Tests/Data/ConvertersTests.fs @@ -14,9 +14,13 @@ let autoHtmxTypeConverterTests = testList "AutoHtmxTypeConverter" [ let after = JsonConvert.SerializeObject(AutoHtmax, opts) Expect.equal after "\"Max\"" "Auto htmx type serialized incorrectly" } - test "succeeds when deserializing" { + test "succeeds when deserializing a string" { let after = JsonConvert.DeserializeObject("\"Yes\"", opts) - Expect.equal after AutoHtmx "Auto htmx type not serialized incorrectly" + Expect.equal after AutoHtmx "Auto htmx type deserialized incorrectly" + } + test "succeeds when deserializing a boolean value" { + let after = JsonConvert.DeserializeObject("false", opts) + Expect.equal after NoAutoHtmx "Auto htmx type deserialized incorrectly" } ] @@ -30,7 +34,7 @@ let categoryIdConverterTests = testList "CategoryIdConverter" [ } test "succeeds when deserializing" { let after = JsonConvert.DeserializeObject("\"test-cat-id\"", opts) - Expect.equal after (CategoryId "test-cat-id") "Category ID not serialized incorrectly" + Expect.equal after (CategoryId "test-cat-id") "Category ID deserialized incorrectly" } ] diff --git a/src/MyWebLog/Handlers/Helpers.fs b/src/MyWebLog/Handlers/Helpers.fs index 1a37357..d84fbab 100644 --- a/src/MyWebLog/Handlers/Helpers.fs +++ b/src/MyWebLog/Handlers/Helpers.fs @@ -68,10 +68,6 @@ open Giraffe open Giraffe.Htmx open Giraffe.ViewEngine -/// htmx script tag -let private htmxScript (webLog: WebLog) = - $"""""" - /// Get the current user messages, and commit the session so that they are preserved let private getCurrentMessages ctx = task { let! messages = messages ctx