module SlackBuilder.PackageSpec ( spec ) where import Data.List.NonEmpty (NonEmpty(..)) import SlackBuilder.Package import Test.Hspec (Spec, describe, it, shouldBe) import Text.URI.QQ (uri) spec :: Spec spec = do describe "renderDownloadWithVersion" $ do it "renders text as URL" $ let given = DownloadTemplate $ pure $ StaticPlaceholder "https://example.com" actual = renderDownloadWithVersion given "1.2" expected = Just [uri|https://example.com|] in actual `shouldBe` expected it "renders the components in order" $ let given = DownloadTemplate $ StaticPlaceholder "https://example.com/" :| [VersionPlaceholder, StaticPlaceholder "/segment"] actual = renderDownloadWithVersion given "1.2" expected = Just [uri|https://example.com/1.2/segment|] in actual `shouldBe` expected