1
1
module Test.Parse where
2
2
3
- import Prelude
3
+ import Test. Prelude
4
4
5
5
import Data.Either as E
6
6
import SqlSquared (parseQuery , printQuery , SqlQuery )
7
7
import SqlSquared.Parser (prettyParse )
8
8
import Test.Queries as Q
9
- import Test.Unit (suite , test , TestSuite )
10
- import Test.Unit.Assert as Assert
11
9
12
- parseSucc ∷ String → TestSuite
10
+ parseSucc ∷ String → Test
13
11
parseSucc s =
14
12
test " parse/success"
15
13
case prettyParse parseQuery s of
16
- E.Left err → Assert . assert (" \n " <> err) false
14
+ E.Left err → assert (" \n " <> err) false
17
15
E.Right (sql ∷ SqlQuery ) →
18
16
case prettyParse parseQuery (printQuery sql) of
19
17
E.Left err →
20
- Assert . assert
18
+ assert
21
19
(" Failed to print and reparse.\n\n " <>
22
20
" Original: " <> s <> " \n\n " <>
23
21
" Printed: " <> printQuery sql <> " \n\n " <> err) false
24
22
E.Right (sql' ∷ SqlQuery )
25
23
| sql' /= sql →
26
- Assert . assert
24
+ assert
27
25
(" Failed to parse to an equivalent AST.\n\n " <>
28
26
" Original: " <> s <> " \n\n " <>
29
27
" Parsed: " <> printQuery sql <> " \n\n " <>
30
28
" Printed: " <> printQuery sql') false
31
29
| otherwise →
32
- Assert . assert " OK!" true
30
+ assert " OK!" true
33
31
34
- parseFail ∷ String → TestSuite
32
+ parseFail ∷ String → Test
35
33
parseFail s =
36
34
test " parse/fail"
37
35
case parseQuery s of
38
36
E.Left err → pure unit
39
- E.Right (sql ∷ SqlQuery ) → Assert . assert s false
37
+ E.Right (sql ∷ SqlQuery ) → assert s false
40
38
41
- parseFailWith ∷ String → String → TestSuite
39
+ parseFailWith ∷ String → String → Test
42
40
parseFailWith s err =
43
41
test " parse/failWith"
44
42
case parseQuery s of
45
43
E.Left err' →
46
44
if show err' == err
47
45
then pure unit
48
- else Assert . assert
46
+ else assert
49
47
(" expected query:" <> s <>
50
48
" \n\n to fail input error: " <> err <>
51
49
" \n\n but instead fot error: " <> show err')
52
50
false
53
51
E.Right (sql ∷ SqlQuery ) →
54
- Assert . assert
52
+ assert
55
53
(" expected to fail with:" <> err <>
56
54
" \n\t but input query:" <> s <>
57
55
" \n\t was parsed as:" <> printQuery sql)
58
56
false
59
57
60
- testSuite ∷ TestSuite
58
+ testSuite ∷ Test
61
59
testSuite = suite " parsers" do
62
60
testSuite1
63
61
testSuite2
@@ -66,7 +64,7 @@ testSuite = suite "parsers" do
66
64
testSuite5
67
65
testSuite6
68
66
69
- testSuite1 ∷ TestSuite
67
+ testSuite1 ∷ Test
70
68
testSuite1 = do
71
69
parseFailWith """
72
70
import `/path/To/Your/File/myModule`; SELECT id("HELLO")
@@ -253,7 +251,7 @@ testSuite1 = do
253
251
select foo from :From
254
252
"""
255
253
256
- testSuite2 ∷ TestSuite
254
+ testSuite2 ∷ Test
257
255
testSuite2 = do
258
256
parseSucc """
259
257
SELECT state AS `ResultAlias`, COUNT(*) as cnt FROM zips GROUP BY state ORDER BY state
@@ -399,7 +397,7 @@ testSuite2 = do
399
397
select distinct discipline from olympics where event like "%pursuit"
400
398
"""
401
399
402
- testSuite3 ∷ TestSuite
400
+ testSuite3 ∷ Test
403
401
testSuite3 = do
404
402
parseSucc """
405
403
select count(*) as cnt from zips where state in ("AZ", "CO")
@@ -593,7 +591,7 @@ testSuite3 = do
593
591
select city, state, sum(pop) as total from zips group by city, state order by sum(pop) desc limit 10
594
592
"""
595
593
596
- testSuite4 ∷ TestSuite
594
+ testSuite4 ∷ Test
597
595
testSuite4 = do
598
596
parseSucc """
599
597
select city, pop from zips where pop > 90000 order by city, pop desc
@@ -751,7 +749,7 @@ testSuite4 = do
751
749
select city, loc[0] as lat from largeZips
752
750
"""
753
751
754
- testSuite5 ∷ TestSuite
752
+ testSuite5 ∷ Test
755
753
testSuite5 = do
756
754
parseSucc """
757
755
select committer.login, count(*) from slamengine_commits
@@ -933,7 +931,7 @@ testSuite5 = do
933
931
select foo from bar union all select baz from quux
934
932
"""
935
933
936
- testSuite6 ∷ TestSuite
934
+ testSuite6 ∷ Test
937
935
testSuite6 = do
938
936
parseSucc Q .q1
939
937
parseSucc Q .q2
0 commit comments