sydtest-webdriver-screenshot 0.0.0.0 → 0.0.0.1
raw patch · 3 files changed
+31/−21 lines, 3 filesbinary-addedPVP: minor bump suggested
API additions: PVP suggests at least a minor version bump
API changes (from Hackage documentation)
+ Test.Syd.Webdriver.Screenshot: debugScreenshot :: FilePath -> WebdriverTestM app ()
+ Test.Syd.Webdriver.Screenshot: normaliseImage :: ByteString -> IO (Image PixelRGB8)
Files
- src/Test/Syd/Webdriver/Screenshot.hs +28/−16
- sydtest-webdriver-screenshot.cabal +3/−5
- test_resources/home.png binary
src/Test/Syd/Webdriver/Screenshot.hs view
@@ -54,22 +54,18 @@ screenshotImage = convertRGB8 dynamicImage }, goldenTestProduce = do- let sb = LB.toStrict contents- case decodePng sb of- Left err -> expectationFailure $ "Could not parse screenshot as png: " <> err- Right dynamicImage -> do- let image = convertRGB8 dynamicImage- relFile <- parseRelFile fp- tempDir <- resolveDir' "screenshot-comparison"- let tempFile = tempDir </> relFile- ensureDir $ parent tempFile- -- Write it to a file so we can compare it if it differs.- writePng (fromAbsFile tempFile) image- pure $- Screenshot- { screenshotFile = tempFile,- screenshotImage = image- },+ image <- normaliseImage contents+ relFile <- parseRelFile fp+ tempDir <- resolveDir' "screenshot-comparison"+ let tempFile = tempDir </> relFile+ ensureDir $ parent tempFile+ -- Write it to a file so we can compare it if it differs.+ writePng (fromAbsFile tempFile) image+ pure $+ Screenshot+ { screenshotFile = tempFile,+ screenshotImage = image+ }, goldenTestWrite = \(Screenshot _ actual) -> do relFile <- parseRelFile fp currentDir <- getCurrentDir@@ -88,3 +84,19 @@ "actual: " <> fromAbsFile actualPath ] }++debugScreenshot :: FilePath -> WebdriverTestM app ()+debugScreenshot fp = do+ contents <- screenshot+ liftIO $ do+ image <- normaliseImage contents+ writePng fp image++normaliseImage :: LB.ByteString -> IO (Image PixelRGB8)+normaliseImage contents = do+ let sb = LB.toStrict contents+ case decodePng sb of+ Left err -> expectationFailure $ "Could not parse screenshot as png: " <> err+ Right dynamicImage -> do+ let image = convertRGB8 dynamicImage+ pure image
sydtest-webdriver-screenshot.cabal view
@@ -1,11 +1,11 @@ cabal-version: 1.12 --- This file has been generated from package.yaml by hpack version 0.34.6.+-- This file has been generated from package.yaml by hpack version 0.34.7. -- -- see: https://github.com/sol/hpack name: sydtest-webdriver-screenshot-version: 0.0.0.0+version: 0.0.0.1 synopsis: A webdriver screenshot companion library for sydtest category: Testing author: Tom Sydney Kerckhove@@ -16,6 +16,7 @@ build-type: Simple extra-source-files: LICENSE.md+ test_resources/home.png library exposed-modules:@@ -28,13 +29,10 @@ JuicyPixels , base >=4.7 && <5 , bytestring- , http-types , mtl- , network-uri , path , path-io , sydtest- , sydtest-wai , sydtest-webdriver , webdriver default-language: Haskell2010
+ test_resources/home.png view
binary file changed (absent → 12366 bytes)