@@ -128,174 +128,178 @@ describe("function", () => {
128128 ` ) ;
129129 } ) ;
130130
131- it ( `formats JavaScript FUNCTION` , async ( ) => {
132- await testBigquery ( dedent `
133- CREATE FUNCTION gen_random()
134- RETURNS FLOAT64
135- NOT DETERMINISTIC
136- LANGUAGE js
137- AS r'''
138- return Math.random();
139- '''
140- ` ) ;
141- } ) ;
131+ describe ( "LANGUAGE js" , ( ) => {
132+ it ( `formats JavaScript FUNCTION` , async ( ) => {
133+ await testBigquery ( dedent `
134+ CREATE FUNCTION gen_random()
135+ RETURNS FLOAT64
136+ NOT DETERMINISTIC
137+ LANGUAGE js
138+ AS r'''
139+ return Math.random();
140+ '''
141+ ` ) ;
142+ } ) ;
142143
143- it ( `reformats JavaScript in JS function` , async ( ) => {
144- expect (
145- await pretty (
146- dedent `
147- CREATE FUNCTION gen_random()
148- RETURNS FLOAT64
149- LANGUAGE js
150- AS ' if(true) {return Math.random () *2}'
151- ` ,
152- { dialect : "bigquery" } ,
153- ) ,
154- ) . toBe ( dedent `
155- CREATE FUNCTION gen_random()
156- RETURNS FLOAT64
157- LANGUAGE js
158- AS r'''
159- if (true) {
160- return Math.random() * 2;
161- }
162- '''
163- ` ) ;
164- } ) ;
144+ it ( `reformats JavaScript in JS function` , async ( ) => {
145+ expect (
146+ await pretty (
147+ dedent `
148+ CREATE FUNCTION gen_random()
149+ RETURNS FLOAT64
150+ LANGUAGE js
151+ AS ' if(true) {return Math.random () *2}'
152+ ` ,
153+ { dialect : "bigquery" } ,
154+ ) ,
155+ ) . toBe ( dedent `
156+ CREATE FUNCTION gen_random()
157+ RETURNS FLOAT64
158+ LANGUAGE js
159+ AS r'''
160+ if (true) {
161+ return Math.random() * 2;
162+ }
163+ '''
164+ ` ) ;
165+ } ) ;
165166
166- it ( `quotes JavaScript in double-quotes when single-quotes can't be used` , async ( ) => {
167- expect (
168- await pretty (
169- dedent `
170- CREATE FUNCTION contains_quotes(x STRING)
171- RETURNS FLOAT64
172- LANGUAGE js
173- AS " return /'''/.test(x) "
174- ` ,
175- { dialect : "bigquery" } ,
176- ) ,
177- ) . toBe ( dedent `
178- CREATE FUNCTION contains_quotes(x STRING)
179- RETURNS FLOAT64
180- LANGUAGE js
181- AS r"""
182- return /'''/.test(x);
183- """
184- ` ) ;
185- } ) ;
167+ it ( `quotes JavaScript in double-quotes when single-quotes can't be used` , async ( ) => {
168+ expect (
169+ await pretty (
170+ dedent `
171+ CREATE FUNCTION contains_quotes(x STRING)
172+ RETURNS FLOAT64
173+ LANGUAGE js
174+ AS " return /'''/.test(x) "
175+ ` ,
176+ { dialect : "bigquery" } ,
177+ ) ,
178+ ) . toBe ( dedent `
179+ CREATE FUNCTION contains_quotes(x STRING)
180+ RETURNS FLOAT64
181+ LANGUAGE js
182+ AS r"""
183+ return /'''/.test(x);
184+ """
185+ ` ) ;
186+ } ) ;
186187
187- it ( `does not reformat JavaScript when neither ''' or """ can be easily used for quoting` , async ( ) => {
188- expect (
189- await pretty (
190- dedent `
191- CREATE FUNCTION contains_quotes(x STRING)
192- RETURNS FLOAT64
193- LANGUAGE js
194- AS " return /'''|\\"\\"\\"/.test(x) "
195- ` ,
196- { dialect : "bigquery" } ,
197- ) ,
198- ) . toBe ( dedent `
199- CREATE FUNCTION contains_quotes(x STRING)
200- RETURNS FLOAT64
201- LANGUAGE js
202- AS " return /'''|\\"\\"\\"/.test(x) "
203- ` ) ;
188+ it ( `does not reformat JavaScript when neither ''' or """ can be easily used for quoting` , async ( ) => {
189+ expect (
190+ await pretty (
191+ dedent `
192+ CREATE FUNCTION contains_quotes(x STRING)
193+ RETURNS FLOAT64
194+ LANGUAGE js
195+ AS " return /'''|\\"\\"\\"/.test(x) "
196+ ` ,
197+ { dialect : "bigquery" } ,
198+ ) ,
199+ ) . toBe ( dedent `
200+ CREATE FUNCTION contains_quotes(x STRING)
201+ RETURNS FLOAT64
202+ LANGUAGE js
203+ AS " return /'''|\\"\\"\\"/.test(x) "
204+ ` ) ;
205+ } ) ;
204206 } ) ;
205207
206- it ( `formats dollar-quoted SQL function` , async ( ) => {
207- await testPostgresql ( dedent `
208- CREATE FUNCTION my_func()
209- RETURNS INT64
210- LANGUAGE sql
211- AS $$
212- SELECT 1;
213- $$
214- ` ) ;
215- } ) ;
208+ describe ( "LANGUAGE sql" , ( ) => {
209+ it ( `formats dollar-quoted SQL function` , async ( ) => {
210+ await testPostgresql ( dedent `
211+ CREATE FUNCTION my_func()
212+ RETURNS INT64
213+ LANGUAGE sql
214+ AS $$
215+ SELECT 1;
216+ $$
217+ ` ) ;
218+ } ) ;
216219
217- it ( `reformats SQL in dollar-quoted SQL function` , async ( ) => {
218- expect (
219- await pretty (
220- dedent `
221- CREATE FUNCTION my_func()
222- RETURNS INT64
223- LANGUAGE sql
224- AS $body$SELECT 1;
225- select 2$body$
226- ` ,
227- { dialect : "postgresql" } ,
228- ) ,
229- ) . toBe ( dedent `
230- CREATE FUNCTION my_func()
231- RETURNS INT64
232- LANGUAGE sql
233- AS $body$
234- SELECT 1;
235- SELECT 2;
236- $body$
237- ` ) ;
238- } ) ;
220+ it ( `reformats SQL in dollar-quoted SQL function` , async ( ) => {
221+ expect (
222+ await pretty (
223+ dedent `
224+ CREATE FUNCTION my_func()
225+ RETURNS INT64
226+ LANGUAGE sql
227+ AS $body$SELECT 1;
228+ select 2$body$
229+ ` ,
230+ { dialect : "postgresql" } ,
231+ ) ,
232+ ) . toBe ( dedent `
233+ CREATE FUNCTION my_func()
234+ RETURNS INT64
235+ LANGUAGE sql
236+ AS $body$
237+ SELECT 1;
238+ SELECT 2;
239+ $body$
240+ ` ) ;
241+ } ) ;
239242
240- it ( `converts single-quoted SQL functions to dollar-quoted SQL functions` , async ( ) => {
241- expect (
242- await pretty (
243- dedent `
244- CREATE FUNCTION my_func()
245- RETURNS TEXT
246- LANGUAGE sql
247- AS 'SELECT ''foo'''
248- ` ,
249- { dialect : "postgresql" } ,
250- ) ,
251- ) . toBe ( dedent `
252- CREATE FUNCTION my_func()
253- RETURNS TEXT
254- LANGUAGE sql
255- AS $$
256- SELECT 'foo';
257- $$
258- ` ) ;
259- } ) ;
243+ it ( `converts single-quoted SQL functions to dollar-quoted SQL functions` , async ( ) => {
244+ expect (
245+ await pretty (
246+ dedent `
247+ CREATE FUNCTION my_func()
248+ RETURNS TEXT
249+ LANGUAGE sql
250+ AS 'SELECT ''foo'''
251+ ` ,
252+ { dialect : "postgresql" } ,
253+ ) ,
254+ ) . toBe ( dedent `
255+ CREATE FUNCTION my_func()
256+ RETURNS TEXT
257+ LANGUAGE sql
258+ AS $$
259+ SELECT 'foo';
260+ $$
261+ ` ) ;
262+ } ) ;
260263
261- it ( `does not convert single-quoted SQL functions to dollar-quoted SQL functions when they contain dollar-quoted strings` , async ( ) => {
262- expect (
263- await pretty (
264- dedent `
265- CREATE FUNCTION my_func()
266- RETURNS TEXT
267- LANGUAGE sql
268- AS 'SELECT $$foo$$'
269- ` ,
270- { dialect : "postgresql" } ,
271- ) ,
272- ) . toBe ( dedent `
273- CREATE FUNCTION my_func()
274- RETURNS TEXT
275- LANGUAGE sql
276- AS 'SELECT $$foo$$'
277- ` ) ;
278- } ) ;
264+ it ( `does not convert single-quoted SQL functions to dollar-quoted SQL functions when they contain dollar-quoted strings` , async ( ) => {
265+ expect (
266+ await pretty (
267+ dedent `
268+ CREATE FUNCTION my_func()
269+ RETURNS TEXT
270+ LANGUAGE sql
271+ AS 'SELECT $$foo$$'
272+ ` ,
273+ { dialect : "postgresql" } ,
274+ ) ,
275+ ) . toBe ( dedent `
276+ CREATE FUNCTION my_func()
277+ RETURNS TEXT
278+ LANGUAGE sql
279+ AS 'SELECT $$foo$$'
280+ ` ) ;
281+ } ) ;
279282
280- it ( `handles SQL language identifier case-insensitively` , async ( ) => {
281- expect (
282- await pretty (
283- dedent `
284- CREATE FUNCTION my_func()
285- RETURNS INT64
286- LANGUAGE Sql
287- AS 'SELECT 1'
288- ` ,
289- { dialect : "postgresql" } ,
290- ) ,
291- ) . toBe ( dedent `
292- CREATE FUNCTION my_func()
293- RETURNS INT64
294- LANGUAGE Sql
295- AS $$
296- SELECT 1;
297- $$
298- ` ) ;
283+ it ( `handles SQL language identifier case-insensitively` , async ( ) => {
284+ expect (
285+ await pretty (
286+ dedent `
287+ CREATE FUNCTION my_func()
288+ RETURNS INT64
289+ LANGUAGE Sql
290+ AS 'SELECT 1'
291+ ` ,
292+ { dialect : "postgresql" } ,
293+ ) ,
294+ ) . toBe ( dedent `
295+ CREATE FUNCTION my_func()
296+ RETURNS INT64
297+ LANGUAGE Sql
298+ AS $$
299+ SELECT 1;
300+ $$
301+ ` ) ;
302+ } ) ;
299303 } ) ;
300304 } ) ;
301305
0 commit comments