wasp/waspc/test/Parser/QueryTest.hs
Martin Sosic 2617bd5f66 Now AppVeyor CI builds Wasp on Windows and runs tests.
Also fixed path issues when running on Windows.
2020-09-18 15:22:58 +02:00

36 lines
1.4 KiB
Haskell

module Parser.QueryTest where
import Test.Tasty.Hspec
import Data.Either (isLeft)
import qualified Path.Posix as PPosix
import Parser.Common (runWaspParser)
import Parser.Query (query)
import qualified Wasp.Query
import qualified Wasp.JsImport
spec_parseQuery :: Spec
spec_parseQuery =
describe "Parsing query declaration" $ do
let parseQuery = runWaspParser query
it "When given a valid query declaration, returns correct AST" $ do
let testQueryName = "myQuery"
testQueryJsFunctionName = "myJsQuery"
testQueryJsFunctionFrom = [PPosix.relfile|some/path|]
let testQuery = Wasp.Query.Query
{ Wasp.Query._name = testQueryName
, Wasp.Query._jsFunction = Wasp.JsImport.JsImport
{ Wasp.JsImport._defaultImport = Nothing
, Wasp.JsImport._namedImports = [ testQueryJsFunctionName ]
, Wasp.JsImport._from = testQueryJsFunctionFrom
}
}
parseQuery ( "query " ++ testQueryName ++ " {\n" ++
" fn: import { " ++ testQueryJsFunctionName ++ " } from \"@ext/some/path\"\n" ++
"}"
) `shouldBe` Right testQuery
it "When given query wasp declaration without 'fn' property, should return Left" $ do
isLeft (parseQuery "query myQuery { }") `shouldBe` True