11'use strict'
22
3- var mysql = require ( './mysql' )
3+ var utils = require ( './utils' )
4+ var wrap = require ( './mysql' )
45var Shimmer = require ( '../utils/shimmer' )
56var expect = require ( 'chai' ) . expect
67
8+ var fakeConfig = {
9+ config : {
10+ user : 'flop'
11+ }
12+ }
13+ var fakeConnection = { me : 'fakeConnection' }
14+ var fakePool = { me : 'fakePool' }
15+
716var CONNECTION_OPERATIONS = [
817 'connect' ,
9- 'query'
18+ 'query' ,
19+ 'end'
1020]
1121
1222var POOL_OPERATIONS = [
13- 'getConnection'
23+ 'getConnection' ,
24+ 'query' ,
25+ 'destroy'
1426]
1527
28+ function fakeAgent ( sandbox ) {
29+ return {
30+ generateSpanId : function ( ) { return 'fakeSpanId' } ,
31+ getMicrotime : function ( ) { return 42 } ,
32+ getTransactionId : function ( ) { return 'fakeTransactionId' } ,
33+ clientSend : sandbox . spy ( ) ,
34+ clientReceive : sandbox . spy ( ) ,
35+ CLIENT_SEND : 'fakeSend'
36+ }
37+ }
38+
1639describe ( 'The mysql wrapper' , function ( ) {
1740 it ( 'should wrap mysql' , function ( ) {
1841 var fakeMysql = { }
1942
20- var wrappedFakeMysql = mysql ( fakeMysql , null )
43+ var agent = fakeAgent ( this . sandbox )
44+ var wrappedFakeMysql = wrap ( fakeMysql , agent )
2145
2246 expect ( wrappedFakeMysql . createPool ) . to . be . a ( 'function' )
2347 expect ( wrappedFakeMysql . createConnection ) . to . be . a ( 'function' )
@@ -26,18 +50,15 @@ describe('The mysql wrapper', function () {
2650 it ( 'should wrap Connections' , function ( ) {
2751 var shimmerWrapStub = this . sandbox . stub ( Shimmer , 'wrap' )
2852
29- var fakeConfig = { me : 'fakeConfig' }
30-
31- var fakeConnection = { me : 'fakeConnection' }
32-
3353 var createConnectionStub = this . sandbox . stub ( )
3454 createConnectionStub . returns ( fakeConnection )
3555
3656 var fakeMysql = {
3757 createConnection : createConnectionStub
3858 }
3959
40- var wrappedFakeMysql = mysql ( fakeMysql , null )
60+ var agent = fakeAgent ( this . sandbox )
61+ var wrappedFakeMysql = wrap ( fakeMysql , agent )
4162
4263 wrappedFakeMysql . createConnection ( fakeConfig )
4364
@@ -55,18 +76,15 @@ describe('The mysql wrapper', function () {
5576 it ( 'should wrap Pools' , function ( ) {
5677 var shimmerWrapStub = this . sandbox . stub ( Shimmer , 'wrap' )
5778
58- var fakeConfig = { me : 'fakeConfig' }
59-
60- var fakePool = { me : 'fakePool' }
61-
6279 var createPoolStub = this . sandbox . stub ( )
6380 createPoolStub . returns ( fakePool )
6481
6582 var fakeMysql = {
6683 createPool : createPoolStub
6784 }
6885
69- var wrappedFakeMysql = mysql ( fakeMysql , null )
86+ var agent = fakeAgent ( this . sandbox )
87+ var wrappedFakeMysql = wrap ( fakeMysql , agent )
7088
7189 wrappedFakeMysql . createPool ( fakeConfig )
7290
@@ -80,4 +98,26 @@ describe('The mysql wrapper', function () {
8098 POOL_OPERATIONS
8199 )
82100 } )
101+
102+ it ( 'should use wrapQuery to wrap query function' , function ( done ) {
103+ var fakeWrapQuery = this . sandbox . stub ( utils , 'wrapQuery' )
104+ var agent = fakeAgent ( this . sandbox )
105+ var queryStub = this . sandbox . stub ( )
106+
107+ var fakeMysql = {
108+ createConnection : function ( ) {
109+ return {
110+ config : fakeConfig ,
111+ query : queryStub
112+ }
113+ }
114+ }
115+ var wrappedFakeMysql = wrap ( fakeMysql , agent )
116+ this . sandbox . stub ( Shimmer , 'wrap' , function ( nodule , path , name , cb ) {
117+ cb ( queryStub , 'query' ) . call ( { config : fakeConfig } )
118+ expect ( fakeWrapQuery ) . to . have . been . calledWith ( queryStub , [ ] , agent )
119+ done ( )
120+ } )
121+ wrappedFakeMysql . createConnection ( fakeConfig )
122+ } )
83123} )
0 commit comments