From 1aa18db1c8ecac25b724c298ee89c43c75830d68 Mon Sep 17 00:00:00 2001 From: Denis Redozubov Date: Thu, 20 Jun 2019 15:44:45 +0300 Subject: [PATCH] Various --- servant-client-jsaddle/default.nix | 39 ++++++++++++++++++ .../servant-client-jsaddle.cabal | 41 +++++++++++++++++++ .../test/Servant/Client/JsSpec.hs | 3 +- 3 files changed, 82 insertions(+), 1 deletion(-) create mode 100644 servant-client-jsaddle/default.nix diff --git a/servant-client-jsaddle/default.nix b/servant-client-jsaddle/default.nix new file mode 100644 index 00000000..d08c0c16 --- /dev/null +++ b/servant-client-jsaddle/default.nix @@ -0,0 +1,39 @@ +{ mkDerivation, aeson, base, bytestring, case-insensitive +, containers, exceptions, hspec, hspec-discover, http-media +, http-types, jsaddle, jsaddle-dom, jsaddle-warp, monad-control +, mtl, QuickCheck, semigroupoids, servant, servant-client-core +, stdenv, string-conversions, text, transformers +, transformers-base, wai, wai-extra, warp +}: +mkDerivation { + pname = "servant-client-jsaddle"; + version = "0.16"; + src = ./.; + isLibrary = true; + isExecutable = true; + libraryHaskellDepends = [ + base bytestring case-insensitive containers exceptions http-media + http-types jsaddle jsaddle-dom monad-control mtl semigroupoids + servant servant-client-core string-conversions text transformers + transformers-base + ]; + executableHaskellDepends = [ + aeson base bytestring case-insensitive containers exceptions hspec + http-media http-types jsaddle jsaddle-dom jsaddle-warp + monad-control mtl QuickCheck semigroupoids servant + servant-client-core string-conversions text + transformers transformers-base wai wai-extra warp + ]; + executableToolDepends = [ hspec-discover ]; + testHaskellDepends = [ + aeson base bytestring case-insensitive containers exceptions hspec + http-media http-types jsaddle jsaddle-dom jsaddle-warp + monad-control mtl QuickCheck semigroupoids servant + servant-client-core string-conversions text + transformers transformers-base wai wai-extra warp + ]; + testToolDepends = [ hspec-discover ]; + homepage = "http://haskell-servant.readthedocs.org/"; + description = "automatic derivation of querying functions for servant webservices for jsaddle (GHCJS, GHC + WebKit, GHC + websockets, etc)"; + license = stdenv.lib.licenses.bsd3; +} diff --git a/servant-client-jsaddle/servant-client-jsaddle.cabal b/servant-client-jsaddle/servant-client-jsaddle.cabal index 22fca837..e8528bc1 100644 --- a/servant-client-jsaddle/servant-client-jsaddle.cabal +++ b/servant-client-jsaddle/servant-client-jsaddle.cabal @@ -76,6 +76,47 @@ library if impl(ghc >= 8.0) ghc-options: -Wno-redundant-constraints +executable spec-test + type: exitcode-stdio-1.0 + ghc-options: -Wall + default-language: Haskell2010 + main-is: Main.hs + + -- Dependencies inherited from the library. No need to specify bounds. + build-depends: + base + , aeson + , bytestring + , case-insensitive + , containers + , exceptions + , http-media + , http-types + , jsaddle + , jsaddle-warp + , jsaddle-dom + , monad-control + , mtl + , semigroupoids + , servant + , servant-client-core + , servant-client-jsaddle + , servant-server + , string-conversions + , text + , transformers + , transformers-base + , wai + , wai-extra + , warp + + -- Additonal dependencies + build-depends: + hspec + , QuickCheck + + build-tool-depends: + hspec-discover:hspec-discover >=2.4.4 && <2.5 test-suite spec type: exitcode-stdio-1.0 diff --git a/servant-client-jsaddle/test/Servant/Client/JsSpec.hs b/servant-client-jsaddle/test/Servant/Client/JsSpec.hs index 02c2db70..3e60912f 100644 --- a/servant-client-jsaddle/test/Servant/Client/JsSpec.hs +++ b/servant-client-jsaddle/test/Servant/Client/JsSpec.hs @@ -14,6 +14,7 @@ import qualified Data.ByteString as B import Data.Proxy import Data.String import Data.Word +import Debug.Trace import GHC.Generics import qualified JSDOM import qualified JSDOM.Window as Window @@ -92,7 +93,7 @@ spec = do , baseUrlPath = "/" } - JW.run 3072 $ jsaddleFinally close $ do + JW.run portNr $ jsaddleFinally close $ do liftIO $ threadDelay $ 1000 * 1000 -- a mix of valid utf-8 and non-utf8 bytes let bytes = [0x01, 0xff, 0x02, 0xfe, 0x03, 0xfd, 0x00, 0x64, 0xc3, 0xbb, 0x68, 0xc3]