1
- import { UnsafeQueryLiteral , sql , joinSQL , commaJoinSQL , commaJoinStringsToSQL } from "./query-string" ;
1
+ import { describe , expect , test } from "vitest" ;
2
+ import {
3
+ UnsafeQueryLiteral ,
4
+ sql ,
5
+ joinSQL ,
6
+ commaJoinSQL ,
7
+ commaJoinStringsToSQL ,
8
+ } from "./query-string" ;
2
9
3
10
test ( "sql template with simple values" , ( ) => {
4
11
const str = "foo" ;
5
12
const num = 42 ;
6
13
const bln = false ;
7
- const [ queryText , values ] = sql `insert into MyTable(col1, col2) values (${ str } , ${ num } , ${ bln } )` . build ( ) ;
14
+ const [ queryText , values ] =
15
+ sql `insert into MyTable(col1, col2) values (${ str } , ${ num } , ${ bln } )` . build ( ) ;
8
16
9
- expect ( queryText ) . toEqual ( "insert into MyTable(col1, col2) values ($1, $2, $3)" ) ;
17
+ expect ( queryText ) . toEqual (
18
+ "insert into MyTable(col1, col2) values ($1, $2, $3)"
19
+ ) ;
10
20
expect ( values ) . toEqual ( [ str , num , bln ] ) ;
11
21
} ) ;
12
22
@@ -17,7 +27,9 @@ test("appending sql templates", () => {
17
27
query . append ( sql ` and bong = ${ 99 } ` ) ;
18
28
19
29
const [ queryText , values ] = query . build ( ) ;
20
- expect ( queryText ) . toEqual ( "select * from MyTable where foo = $1 and baz = $2 and bong = $3" ) ;
30
+ expect ( queryText ) . toEqual (
31
+ "select * from MyTable where foo = $1 and baz = $2 and bong = $3"
32
+ ) ;
21
33
expect ( values ) . toEqual ( [ "bar" , true , 99 ] ) ;
22
34
} ) ;
23
35
@@ -27,11 +39,17 @@ test("appending literal strings", () => {
27
39
const value = "floof" ;
28
40
29
41
const query = sql `select data from GoodStuff` ;
30
- query . append ( sql ` order by ` . appendRawString ( `${ coercion } (data->'${ columnName } ') asc` ) ) ;
42
+ query . append (
43
+ sql ` order by ` . appendRawString (
44
+ `${ coercion } (data->'${ columnName } ') asc`
45
+ )
46
+ ) ;
31
47
query . append ( sql ` where foo = ${ value } ` ) ;
32
48
33
49
const [ queryText , values ] = query . build ( ) ;
34
- expect ( queryText ) . toEqual ( "select data from GoodStuff order by as_number(data->'foof') asc where foo = $1" ) ;
50
+ expect ( queryText ) . toEqual (
51
+ "select data from GoodStuff order by as_number(data->'foof') asc where foo = $1"
52
+ ) ;
35
53
expect ( values ) . toEqual ( [ value ] ) ;
36
54
} ) ;
37
55
@@ -60,7 +78,9 @@ test("interpolating UnsafeQueryLiteral", () => {
60
78
const query = sql `select ${ columnName } from ${ tableName } where answer = ${ constant } ` ;
61
79
62
80
const [ queryText , values ] = query . build ( ) ;
63
- expect ( queryText ) . toEqual ( "select my_column from my_table where answer = $1" ) ;
81
+ expect ( queryText ) . toEqual (
82
+ "select my_column from my_table where answer = $1"
83
+ ) ;
64
84
expect ( values ) . toEqual ( [ constant ] ) ;
65
85
} ) ;
66
86
@@ -77,11 +97,15 @@ describe("build() is idempotent", () => {
77
97
} ) ;
78
98
79
99
test ( "two" , ( ) => {
80
- const builder = sql `SELECT ${ new UnsafeQueryLiteral ( "bla" ) } FROM ${ new UnsafeQueryLiteral ( "table" ) } ` ;
100
+ const builder = sql `SELECT ${ new UnsafeQueryLiteral (
101
+ "bla"
102
+ ) } FROM ${ new UnsafeQueryLiteral ( "table" ) } `;
81
103
builder . append ( sql ` ORDER BY row_id LIMIT ${ 123 } ` ) ;
82
104
83
105
const [ queryText1 , values1 ] = builder . build ( ) ;
84
- expect ( queryText1 ) . toEqual ( "SELECT bla FROM table ORDER BY row_id LIMIT $1" ) ;
106
+ expect ( queryText1 ) . toEqual (
107
+ "SELECT bla FROM table ORDER BY row_id LIMIT $1"
108
+ ) ;
85
109
expect ( values1 ) . toEqual ( [ 123 ] ) ;
86
110
87
111
const [ queryText2 , values2 ] = builder . build ( ) ;
@@ -95,18 +119,29 @@ describe("join", () => {
95
119
const more = [ sql `a` , sql `${ "b" } ` , sql `c` ] ;
96
120
97
121
describe ( "joinSQL" , ( ) => {
98
- test ( "one" , ( ) => expect ( joinSQL ( one , "|" ) . build ( ) ) . toEqual ( [ "$1" , [ 123 ] ] ) ) ;
99
- test ( "more" , ( ) => expect ( joinSQL ( more , "|" ) . build ( ) ) . toEqual ( [ "a|$1|c" , [ "b" ] ] ) ) ;
122
+ test ( "one" , ( ) =>
123
+ expect ( joinSQL ( one , "|" ) . build ( ) ) . toEqual ( [ "$1" , [ 123 ] ] ) ) ;
124
+ test ( "more" , ( ) =>
125
+ expect ( joinSQL ( more , "|" ) . build ( ) ) . toEqual ( [ "a|$1|c" , [ "b" ] ] ) ) ;
100
126
} ) ;
101
127
102
128
describe ( "commaJoinSQL" , ( ) => {
103
- test ( "one" , ( ) => expect ( commaJoinSQL ( one ) . build ( ) ) . toEqual ( [ "$1" , [ 123 ] ] ) ) ;
104
- test ( "more" , ( ) => expect ( commaJoinSQL ( more ) . build ( ) ) . toEqual ( [ "a, $1, c" , [ "b" ] ] ) ) ;
129
+ test ( "one" , ( ) =>
130
+ expect ( commaJoinSQL ( one ) . build ( ) ) . toEqual ( [ "$1" , [ 123 ] ] ) ) ;
131
+ test ( "more" , ( ) =>
132
+ expect ( commaJoinSQL ( more ) . build ( ) ) . toEqual ( [ "a, $1, c" , [ "b" ] ] ) ) ;
105
133
} ) ;
106
134
107
135
describe ( "commaJoinStringsToSQL" , ( ) => {
108
- test ( "one" , ( ) => expect ( commaJoinStringsToSQL ( [ "a" ] ) . build ( ) ) . toEqual ( [ "$1" , [ "a" ] ] ) ) ;
136
+ test ( "one" , ( ) =>
137
+ expect ( commaJoinStringsToSQL ( [ "a" ] ) . build ( ) ) . toEqual ( [
138
+ "$1" ,
139
+ [ "a" ] ,
140
+ ] ) ) ;
109
141
test ( "more" , ( ) =>
110
- expect ( commaJoinStringsToSQL ( [ "a" , "b" , "c" ] ) . build ( ) ) . toEqual ( [ "$1, $2, $3" , [ "a" , "b" , "c" ] ] ) ) ;
142
+ expect ( commaJoinStringsToSQL ( [ "a" , "b" , "c" ] ) . build ( ) ) . toEqual ( [
143
+ "$1, $2, $3" ,
144
+ [ "a" , "b" , "c" ] ,
145
+ ] ) ) ;
111
146
} ) ;
112
147
} ) ;
0 commit comments