mirror of
https://github.com/nix-community/nixpkgs-update.git
synced 2024-12-01 22:46:10 +03:00
52 lines
2.4 KiB
Haskell
52 lines
2.4 KiB
Haskell
{-# LANGUAGE OverloadedStrings #-}
|
|
|
|
module UpdateSpec where
|
|
|
|
import qualified Data.Text.IO as T
|
|
import Test.Hspec
|
|
import qualified Update
|
|
import qualified Utils
|
|
|
|
main :: IO ()
|
|
main = hspec spec
|
|
|
|
-- Tests here will write their actual results to an actual*.md file next to the
|
|
-- expected one. If you are updating the PR description, run the test suite and
|
|
-- copy all the actuals over to expected. This can be viewed with `git diff`
|
|
-- then to ensure your changes look as expected.
|
|
spec :: Spec
|
|
spec = do
|
|
describe "PR message" do
|
|
-- Common mock options
|
|
let options = Utils.Options False False "r-ryantm" "" False False False False
|
|
let updateEnv = Utils.UpdateEnv "foobar" "1.0" "1.1" (Just "https://update-site.com") options
|
|
let isBroken = False
|
|
let metaDescription = "\"Foobar package description\""
|
|
let metaHomepage = "\"https://foobar-homepage.com\""
|
|
let metaChangelog = "\"https://foobar-homepage.com/changelog/v1.2.3\""
|
|
let rewriteMsgs = ["Version Update", "Other Update"]
|
|
let releaseUrl = "https://github.com/foobar/releases"
|
|
let compareUrl = "https://github.com/foobar/compare"
|
|
let resultCheckReport = "- Some other check"
|
|
let commitHash = "af39cf77a0d42a4f6771043ec54221ed"
|
|
let attrPath = "foobar"
|
|
let maintainersCc = "@maintainer1"
|
|
let resultPath = "/nix/store/some-hash-path"
|
|
let opReport = "123 total rebuild path(s)"
|
|
let cveRep = ""
|
|
let cachixTestInstructions = ""
|
|
let nixpkgsReviewMsg = "nixpkgs-review comment body"
|
|
|
|
it "matches a simple mock example" do
|
|
expected <- T.readFile "test_data/expected_pr_description_1.md"
|
|
let actual = Update.prMessage updateEnv isBroken metaDescription metaHomepage metaChangelog rewriteMsgs releaseUrl compareUrl resultCheckReport commitHash attrPath maintainersCc resultPath opReport cveRep cachixTestInstructions nixpkgsReviewMsg
|
|
T.writeFile "test_data/actual_pr_description_1.md" actual
|
|
actual `shouldBe` expected
|
|
|
|
it "does not include NixPkgs review section when no review was done" do
|
|
expected <- T.readFile "test_data/expected_pr_description_2.md"
|
|
let nixpkgsReviewMsg' = ""
|
|
let actual = Update.prMessage updateEnv isBroken metaDescription metaHomepage metaChangelog rewriteMsgs releaseUrl compareUrl resultCheckReport commitHash attrPath maintainersCc resultPath opReport cveRep cachixTestInstructions nixpkgsReviewMsg'
|
|
T.writeFile "test_data/actual_pr_description_2.md" actual
|
|
actual `shouldBe` expected
|