1
+ var helper = require ( './test-helper' ) ;
2
+ var Client = helper . Client ;
3
+
4
+ var conInfo = helper . config ;
5
+
6
+ function getConInfo ( override ) {
7
+ var newConInfo = { } ;
8
+ Object . keys ( conInfo ) . forEach ( function ( k ) {
9
+ newConInfo [ k ] = conInfo [ k ] ;
10
+ } ) ;
11
+ Object . keys ( override || { } ) . forEach ( function ( k ) {
12
+ newConInfo [ k ] = override [ k ] ;
13
+ } ) ;
14
+ return newConInfo ;
15
+ }
16
+
17
+ function getAppName ( conf , cb ) {
18
+ var client = new Client ( conf ) ;
19
+ client . connect ( assert . success ( function ( ) {
20
+ client . query ( 'SHOW application_name' , assert . success ( function ( res ) {
21
+ var appName = res . rows [ 0 ] . application_name ;
22
+ cb ( appName ) ;
23
+ client . end ( ) ;
24
+ } ) ) ;
25
+ } ) ) ;
26
+ }
27
+
28
+ test ( 'No default appliation_name ' , function ( ) {
29
+ var conf = getConInfo ( ) ;
30
+ getAppName ( conf , function ( res ) {
31
+ assert . strictEqual ( res , '' ) ;
32
+ } ) ;
33
+ } ) ;
34
+
35
+ test ( 'fallback_application_name is used' , function ( ) {
36
+ var fbAppName = 'this is my app' ;
37
+ var conf = getConInfo ( {
38
+ 'fallback_application_name' : fbAppName
39
+ } ) ;
40
+ getAppName ( conf , function ( res ) {
41
+ assert . strictEqual ( res , fbAppName ) ;
42
+ } ) ;
43
+ } ) ;
44
+
45
+ test ( 'application_name is used' , function ( ) {
46
+ var appName = 'some wired !@#$% application_name' ;
47
+ var conf = getConInfo ( {
48
+ 'application_name' : appName
49
+ } ) ;
50
+ getAppName ( conf , function ( res ) {
51
+ assert . strictEqual ( res , appName ) ;
52
+ } ) ;
53
+ } ) ;
54
+
55
+ test ( 'application_name has precedence over fallback_application_name' , function ( ) {
56
+ var appName = 'some wired !@#$% application_name' ;
57
+ var fbAppName = 'some other strange $$test$$ appname' ;
58
+ var conf = getConInfo ( {
59
+ 'application_name' : appName ,
60
+ 'fallback_application_name' : fbAppName
61
+ } ) ;
62
+ getAppName ( conf , function ( res ) {
63
+ assert . strictEqual ( res , appName ) ;
64
+ } ) ;
65
+ } ) ;
66
+
67
+ test ( 'application_name from connection string' , function ( ) {
68
+ var appName = 'my app' ;
69
+ var conParams = require ( __dirname + '/../../../lib/connection-parameters' ) ;
70
+ var conf ;
71
+ if ( process . argv [ 2 ] ) {
72
+ conf = new conParams ( process . argv [ 2 ] + '?application_name=' + appName ) ;
73
+ } else {
74
+ conf = 'postgres://?application_name=' + appName ;
75
+ }
76
+ getAppName ( conf , function ( res ) {
77
+ assert . strictEqual ( res , appName ) ;
78
+ } ) ;
79
+ } ) ;
80
+
81
+
82
+
83
+ // TODO: make the test work for native client too
84
+ if ( ! helper . args . native ) {
85
+ test ( 'application_name is read from the env' , function ( ) {
86
+ var appName = process . env . PGAPPNAME = 'testest' ;
87
+ var conf = getConInfo ( {
88
+ 'just some bla' : 'to fool the pool'
89
+ } ) ;
90
+ getAppName ( conf , function ( res ) {
91
+ delete process . env . PGAPPNAME ;
92
+ assert . strictEqual ( res , appName ) ;
93
+ } ) ;
94
+ } ) ;
95
+ }
0 commit comments