@@ -35,6 +35,10 @@ const baseOperations = {
3535 }
3636} ;
3737
38+ function escape ( identifier ) {
39+ return `\`${ identifier . replace ( / ` / g, "``" ) } \`` ;
40+ }
41+
3842describe ( "makeQueryTemplate" , ( ) => {
3943 it ( "makeQueryTemplate null table" , ( ) => {
4044 const source = { } ;
@@ -437,6 +441,25 @@ describe("makeQueryTemplate", () => {
437441 ) ;
438442 assert . deepStrictEqual ( params , [ "val1" , "val2" ] ) ;
439443 } ) ;
444+
445+ it ( "makeQueryTemplate names" , ( ) => {
446+ const source = { name : "db" , dialect : "mysql" , escape} ;
447+ let operations = {
448+ ...baseOperations ,
449+ select : {
450+ columns : [ "col1" , "col2" , "col3" ]
451+ } ,
452+ names : [
453+ { column : "col1" , name : "name1" } ,
454+ { column : "col2" , name : "name2" } ,
455+ { column : "col3" , name : "name3" }
456+ ]
457+ } ;
458+
459+ const [ parts , ...params ] = makeQueryTemplate ( operations , source ) ;
460+ assert . deepStrictEqual ( parts . join ( "?" ) , "SELECT `col1` AS `name1`, `col2` AS `name2`, `col3` AS `name3` FROM `table1`" ) ;
461+ assert . deepStrictEqual ( params , [ ] ) ;
462+ } ) ;
440463} ) ;
441464
442465describe ( "__table" , ( ) => {
@@ -585,6 +608,24 @@ describe("__table", () => {
585608 [ { name : "a" , type : "number" } , { name : "b" , type : "number" } , { name : "c" , type : "number" } ]
586609 ) ;
587610 } ) ;
611+
612+ it ( "__table names" , ( ) => {
613+ const operations = {
614+ ...EMPTY_TABLE_DATA . operations ,
615+ names : [ { column : "a" , name : "nameA" } ]
616+ } ;
617+ assert . deepStrictEqual ( __table ( source , operations ) , [ { nameA : 1 , b : 2 , c : 3 } , { nameA : 2 , b : 4 , c : 6 } , { nameA : 3 , b : 6 , c : 9 } ] ) ;
618+ source . columns = [ "a" , "b" , "c" ] ;
619+ assert . deepStrictEqual (
620+ __table ( source , operations ) . columns ,
621+ [ "nameA" , "b" , "c" ]
622+ ) ;
623+ source . schema = [ { name : "a" , type : "number" } , { name : "b" , type : "number" } , { name : "c" , type : "number" } ] ;
624+ assert . deepStrictEqual (
625+ __table ( source , operations ) . schema ,
626+ [ { name : "nameA" , type : "number" } , { name : "b" , type : "number" } , { name : "c" , type : "number" } ]
627+ ) ;
628+ } ) ;
588629} ) ;
589630
590631describe ( "getTypeValidator filters accurately" , ( ) => {
0 commit comments