Skip to content
This repository was archived by the owner on Jun 15, 2023. It is now read-only.

Commit c8fbb46

Browse files
authored
Merge pull request #17 from natefaubion/vari-print-fix
Vari/Case print fix
2 parents 3a4bb87 + a90b2af commit c8fbb46

File tree

4 files changed

+19
-28
lines changed

4 files changed

+19
-28
lines changed

src/SqlSquare/Signature.purs

+3-3
Original file line numberDiff line numberDiff line change
@@ -474,16 +474,16 @@ printSqlF printLiteralF = case _ of
474474
<> expr
475475
<> F.intercalate " " (map CS.printCase cases)
476476
<> F.foldMap (" ELSE " <> _) else_
477-
<> "END"
477+
<> " END"
478478
Switch { cases, else_ } →
479479
"CASE "
480480
<> F.intercalate " " (map CS.printCase cases)
481481
<> F.foldMap (" ELSE " <> _) else_
482-
<> "END"
482+
<> " END"
483483
Let { ident, bindTo, in_ } →
484484
ID.printIdent ident <> " := " <> bindTo <> "; " <> in_
485485
Vari s →
486-
":" <> s
486+
":" <> ID.printIdent s
487487
Select { isDistinct, projections, relations, filter, groupBy, orderBy } →
488488
"SELECT "
489489
<> (if isDistinct then "DISTINCT " else "")

src/SqlSquare/Signature/Case.purs

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ instance traversableCase ∷ T.Traversable Case where
2828
sequence = T.sequenceDefault
2929

3030
printCase Algebra Case String
31-
printCase (Case { cond, expr }) = " WHEN " <> cond <> " THEN " <> expr
31+
printCase (Case { cond, expr }) = "WHEN " <> cond <> " THEN " <> expr
3232

3333
encodeJsonCase Algebra Case J.Json
3434
encodeJsonCase (Case { cond, expr }) =

test/src/Main.purs

+1-1
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,6 @@ main = do
2929
runTest do
3030
Constructors.testSuite
3131
Argonaut.testSuite
32-
Parse.testSuite
32+
Parse.testSuite
3333

3434
Gen.test

test/src/Parse.purs

+14-23
Original file line numberDiff line numberDiff line change
@@ -2,27 +2,19 @@ module Test.Parse where
22

33
import Prelude
44

5-
import Control.Monad.Eff (Eff)
6-
75
import Data.Either as E
86
import Data.Foldable as F
9-
import SqlSquared (printQuery, parseQuery)
7+
import SqlSquared (parseQuery, SqlQuery)
108

9+
import Test.Unit (suite, test, TestSuite)
10+
import Test.Unit.Assert as Assert
1111
import Test.Unit.Console as Console
1212

13-
import Debug.Trace as DT
14-
15-
testPrintParse e. String Eff (testOutput Console.TESTOUTPUT|e) Unit
16-
testPrintParse s = do
17-
Console.printLabel $ "Testing: \n" <> s <> "\n"
18-
let parsed = parseQuery s
19-
case parsed of
20-
E.Left e → Console.printFail $ "Fail: " <> show e <> "\n"
21-
E.Right sql → do
22-
Console.printPass "Success: \n"
23-
DT.traceAnyA sql
24-
Console.printPass $ printQuery sql
25-
Console.printPass "\n"
13+
testPrintParse e. String TestSuite (testOutput Console.TESTOUTPUT | e)
14+
testPrintParse s =
15+
test s case parseQuery s of
16+
E.Left err → Assert.assert (show err) false
17+
E.Right (sql SqlQuery) → pure unit
2618

2719
inputs Array String
2820
inputs =
@@ -34,11 +26,11 @@ inputs =
3426
, """select date("12-12-12") from `/fo` cross join `/bar`"""
3527
, """Select foo as bar from `/test/db/collection`"""
3628
, """Select `foo`, `bar`[*] from `/test` join `/test2` on baz where doo = (12 + 23)"""
37-
, """:foo := 12; select * from `/test` group by baz"""
29+
, """foo := 12; select * from `/test` group by baz"""
3830
, """select 1"""
3931
, """select (1, 2)"""
40-
, """:foo := [1, 2]; select 1"""
41-
, """:foo := 1; :bar := 2; select [] """
32+
, """foo := [1, 2]; select 1"""
33+
, """foo := 1; bar := 2; select [] """
4234
, """select foo from `/bar` order by zoo desc"""
4335
, """select distinct a from `/f`"""
4436
, """select a from /* trololo */ `/db`"""
@@ -49,8 +41,7 @@ select 12
4941
, """create function foo(:bar) begin :bar + 2 end; select * from `/test` where foo = foo(42)"""
5042
]
5143

52-
53-
testSuite e. Eff (testOutput Console.TESTOUTPUT|e) Unit
44+
testSuite e. TestSuite (testOutput Console.TESTOUTPUT | e)
5445
testSuite = do
55-
Console.printLabel "\n\n:::::::::: TESTING PARSER ::::::::::\n\n"
56-
F.for_ inputs testPrintParse
46+
suite "parsers" do
47+
F.traverse_ testPrintParse inputs

0 commit comments

Comments
 (0)