diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,4 +1,10 @@
-## [_Unreleased_](https://github.com/freckle/freckle-app/compare/v1.18.1.0...main)
+## [_Unreleased_](https://github.com/freckle/freckle-app/compare/v1.18.2.0...main)
+
+## [v1.18.2.0](https://github.com/freckle/freckle-app/compare/v1.18.1.0...v1.18.2.0)
+
+- Add `Freckle.App.Test.Properties.PersistValue` (`prop_roundTripPersistValue`)
+- Support and require `Blammo` `>= 2` to accommodate the extraction of the
+  `Blammo-wai` package
 
 ## [v1.18.1.0](https://github.com/freckle/freckle-app/compare/v1.18.0.0...v1.18.1.0)
 
diff --git a/freckle-app.cabal b/freckle-app.cabal
--- a/freckle-app.cabal
+++ b/freckle-app.cabal
@@ -1,6 +1,6 @@
 cabal-version:      1.18
 name:               freckle-app
-version:            1.18.1.0
+version:            1.18.2.0
 license:            MIT
 license-file:       LICENSE
 maintainer:         Freckle Education
@@ -73,6 +73,7 @@
         Freckle.App.Test.Http.MatchRequest
         Freckle.App.Test.Properties.JSON
         Freckle.App.Test.Properties.PathPiece
+        Freckle.App.Test.Properties.PersistValue
         Freckle.App.Test.Yesod
         Freckle.App.Wai
         Freckle.App.Yesod
@@ -98,7 +99,8 @@
         -Wno-safe -Wno-unsafe
 
     build-depends:
-        Blammo >=1.2.0.0,
+        Blammo >=2.0.0.0,
+        Blammo-wai >=0.0.0.0,
         Glob >=0.10.2,
         MonadRandom >=0.5.3,
         QuickCheck >=2.14.3,
@@ -228,6 +230,7 @@
         Freckle.App.Test.Http.MatchRequestSpec
         Freckle.App.Test.Properties.JSONSpec
         Freckle.App.Test.Properties.PathPieceSpec
+        Freckle.App.Test.Properties.PersistValueSpec
         Freckle.App.WaiSpec
         Spec
         Paths_freckle_app
@@ -247,7 +250,7 @@
         -Wno-safe -Wno-unsafe -threaded -rtsopts -with-rtsopts=-N
 
     build-depends:
-        Blammo >=1.2.0.0,
+        Blammo >=2.0.0.0,
         QuickCheck >=2.14.3,
         aeson >=2.0.3.0,
         async >=2.2.4,
diff --git a/library/Freckle/App/Test/Properties/PersistValue.hs b/library/Freckle/App/Test/Properties/PersistValue.hs
new file mode 100644
--- /dev/null
+++ b/library/Freckle/App/Test/Properties/PersistValue.hs
@@ -0,0 +1,11 @@
+module Freckle.App.Test.Properties.PersistValue
+  ( prop_roundTripPersistValue
+  ) where
+
+import Freckle.App.Prelude
+
+import Database.Persist (PersistField (..))
+
+-- | Check that @'fromPersistValue' ('toPersistValue' value)@ is @value@
+prop_roundTripPersistValue :: (PersistField a, Eq a) => a -> Bool
+prop_roundTripPersistValue a = fromPersistValue (toPersistValue a) == Right a
diff --git a/package.yaml b/package.yaml
--- a/package.yaml
+++ b/package.yaml
@@ -1,5 +1,5 @@
 name: freckle-app
-version: 1.18.1.0
+version: 1.18.2.0
 maintainer: Freckle Education
 category: Utils
 github: freckle/freckle-app
@@ -55,7 +55,8 @@
 library:
   source-dirs: library
   dependencies:
-    - Blammo
+    - Blammo >= 2.0.0.0
+    - Blammo-wai
     - Glob
     - MonadRandom
     - QuickCheck
diff --git a/tests/Freckle/App/Test/Properties/PersistValueSpec.hs b/tests/Freckle/App/Test/Properties/PersistValueSpec.hs
new file mode 100644
--- /dev/null
+++ b/tests/Freckle/App/Test/Properties/PersistValueSpec.hs
@@ -0,0 +1,18 @@
+module Freckle.App.Test.Properties.PersistValueSpec
+  ( spec
+  ) where
+
+import Freckle.App.Prelude
+
+import Freckle.App.Test.Properties.PersistValue
+import Test.Hspec
+import Test.QuickCheck
+
+spec :: Spec
+spec = do
+  describe "persistFieldInstancesRoundTrip" $ do
+    it "round trips for Integer" $ property $ prop_roundTripPersistValue @Int
+    it "round trips for Bool" $ property $ prop_roundTripPersistValue @Bool
+    it "round trips for Maybe String" $
+      property $
+        prop_roundTripPersistValue @(Maybe String)
