summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/SlackBuilder/Config.hs (renamed from app/SlackBuilder/Config.hs)0
-rw-r--r--lib/SlackBuilder/Package.hs (renamed from app/SlackBuilder/Package.hs)0
-rw-r--r--lib/SlackBuilder/Trans.hs (renamed from app/SlackBuilder/Trans.hs)0
-rw-r--r--slackbuilder.cabal53
-rw-r--r--tests/SlackBuilder/PackageSpec.hs14
5 files changed, 41 insertions, 26 deletions
diff --git a/app/SlackBuilder/Config.hs b/lib/SlackBuilder/Config.hs
index c2a7f0b..c2a7f0b 100644
--- a/app/SlackBuilder/Config.hs
+++ b/lib/SlackBuilder/Config.hs
diff --git a/app/SlackBuilder/Package.hs b/lib/SlackBuilder/Package.hs
index a447609..a447609 100644
--- a/app/SlackBuilder/Package.hs
+++ b/lib/SlackBuilder/Package.hs
diff --git a/app/SlackBuilder/Trans.hs b/lib/SlackBuilder/Trans.hs
index d678a19..d678a19 100644
--- a/app/SlackBuilder/Trans.hs
+++ b/lib/SlackBuilder/Trans.hs
diff --git a/slackbuilder.cabal b/slackbuilder.cabal
index a66a418..5f0c5e2 100644
--- a/slackbuilder.cabal
+++ b/slackbuilder.cabal
@@ -19,18 +19,11 @@ common dependencies
ghc-options: -threaded -rtsopts -with-rtsopts=-N -Wall
build-depends:
base ^>= 4.16.4.0,
-
-executable slackbuilder
- import: dependencies
- main-is: Main.hs
-
- other-modules:
- SlackBuilder.CommandLine
- SlackBuilder.Config
- SlackBuilder.Download
- SlackBuilder.Package
- SlackBuilder.Trans
- SlackBuilder.Updater
+ cryptonite >= 0.30,
+ filepath ^>= 1.4.2,
+ modern-uri ^>= 0.3.6,
+ text ^>= 2.0
+ default-language: Haskell2010
default-extensions:
DataKinds
DuplicateRecordFields
@@ -41,25 +34,38 @@ executable slackbuilder
QuasiQuotes
TemplateHaskell
TypeApplications
+
+library slackbuilder-internal
+ import: dependencies
+ exposed-modules:
+ SlackBuilder.Config
+ SlackBuilder.Package
+ SlackBuilder.Trans
+ hs-source-dirs: lib
+ build-depends:
+ exceptions >= 0.10,
+ tomland ^>= 1.3.3,
+ transformers ^>= 0.5.6
+
+executable slackbuilder
+ import: dependencies
+ main-is: Main.hs
+
+ other-modules:
+ SlackBuilder.CommandLine
+ SlackBuilder.Download
+ SlackBuilder.Updater
build-depends:
aeson ^>= 2.2.0,
bytestring ^>= 0.11.0,
conduit ^>= 1.3.5,
- cryptonite >= 0.30,
- exceptions >= 0.10,
- filepath ^>= 1.4.2,
http-client ^>= 0.7,
- modern-uri ^>= 0.3.6,
optparse-applicative ^>= 0.18.1,
process ^>= 1.6.17,
req ^>= 3.13,
- text ^>= 2.0,
- tomland ^>= 1.3.3,
- transformers ^>= 0.5.6,
unordered-containers ^>= 0.2.19,
vector ^>= 0.13.0
hs-source-dirs: app
- default-language: Haskell2010
test-suite slackbuilder-test
import: dependencies
@@ -68,8 +74,7 @@ test-suite slackbuilder-test
other-modules:
SlackBuilder.PackageSpec
- hs-source-dirs:
- tests
- default-language: Haskell2010
+ hs-source-dirs: tests
build-depends:
- hspec >= 2.10.9 && < 2.12
+ hspec >= 2.10.9 && < 2.12,
+ slackbuilder-internal
diff --git a/tests/SlackBuilder/PackageSpec.hs b/tests/SlackBuilder/PackageSpec.hs
index d8617a4..82d9a87 100644
--- a/tests/SlackBuilder/PackageSpec.hs
+++ b/tests/SlackBuilder/PackageSpec.hs
@@ -2,7 +2,17 @@ module SlackBuilder.PackageSpec
( spec
) where
-import Test.Hspec (Spec)
+import SlackBuilder.Package
+import Test.Hspec (Spec, describe, it, shouldBe)
+import Text.URI.QQ (uri)
spec :: Spec
-spec = pure ()
+spec = do
+ describe "renderDownloadWithVersion" $
+ 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