88// in a happy-path scenario
99'use strict' ;
1010
11+ var rewire = require ( 'rewire' ) ;
1112var utils = require ( 'fabric-client/lib/utils.js' ) ;
1213var logger = utils . getLogger ( 'install' ) ;
1314
@@ -51,33 +52,33 @@ test('\n\n** Test chaincode install using chaincodePath to create chaincodePacka
5152 t . end ( ) ;
5253 }
5354 } ,
54- ( err ) => {
55- t . fail ( 'install reject: ' + err ) ;
56- t . end ( ) ;
57- } ) . catch ( ( err ) => {
58- t . fail ( 'install error. ' + err . stack ? err . stack : err ) ;
59- t . end ( ) ;
60- } ) . then ( ( ) => {
61- params . channelName = params . channelName + '0' ;
62- params . testDesc = params . testDesc + '0' ;
63- installChaincode ( params , t )
64- . then ( ( info ) => {
65- if ( info && info instanceof Error && info . message . includes ( 'install.' + params . chaincodeVersion + ' exists' ) ) {
66- t . pass ( 'passed check for exists on install again' ) ;
67- t . end ( ) ;
68- } else {
69- t . fail ( 'failed check for exists on install again' ) ;
70- t . end ( ) ;
71- }
72- } ,
73- ( err ) => {
74- t . fail ( 'install reject: ' + err ) ;
75- t . end ( ) ;
76- } ) . catch ( ( err ) => {
77- t . fail ( 'install error. ' + err . stack ? err . stack : err ) ;
78- t . end ( ) ;
79- } ) ;
80- } ) ;
55+ ( err ) => {
56+ t . fail ( 'install reject: ' + err ) ;
57+ t . end ( ) ;
58+ } ) . catch ( ( err ) => {
59+ t . fail ( 'install error. ' + err . stack ? err . stack : err ) ;
60+ t . end ( ) ;
61+ } ) . then ( ( ) => {
62+ params . channelName = params . channelName + '0' ;
63+ params . testDesc = params . testDesc + '0' ;
64+ installChaincode ( params , t )
65+ . then ( ( info ) => {
66+ if ( info && info instanceof Error && info . message . includes ( 'install.' + params . chaincodeVersion + ' exists' ) ) {
67+ t . pass ( 'passed check for exists on install again' ) ;
68+ t . end ( ) ;
69+ } else {
70+ t . fail ( 'failed check for exists on install again' ) ;
71+ t . end ( ) ;
72+ }
73+ } ,
74+ ( err ) => {
75+ t . fail ( 'install reject: ' + err ) ;
76+ t . end ( ) ;
77+ } ) . catch ( ( err ) => {
78+ t . fail ( 'install error. ' + err . stack ? err . stack : err ) ;
79+ t . end ( ) ;
80+ } ) ;
81+ } ) ;
8182} ) ;
8283
8384test ( '\n\n** Test chaincode install using chaincodePackage[byte] **\n\n' , ( t ) => {
@@ -86,54 +87,57 @@ test('\n\n** Test chaincode install using chaincodePackage[byte] **\n\n', (t) =>
8687 testDesc : 'using chaincodePackage' ,
8788 channelName : 'test-install-package' ,
8889 chaincodeId : 'install-package' ,
89- chaincodePath : testUtil . CHAINCODE_PATH + '_pkg' , //not an existing path
90+ chaincodePath : testUtil . CHAINCODE_PATH ,
9091 chaincodeVersion : testUtil . getUniqueVersion ( )
9192 } ;
9293
93- Packager . package ( testUtil . CHAINCODE_PATH , null , false ) //use good path here to get data
94- . then ( ( data ) => {
95- params . chaincodePackage = data ;
94+ let _getChaincodeDeploymentSpec = rewire ( 'fabric-client/lib/Client.js' ) . __get__ ( '_getChaincodeDeploymentSpec' ) ;
9695
96+ // install from source
97+ let p = _getChaincodeDeploymentSpec ( params , false )
98+ . then ( ( cdsBytes ) => {
99+ params . chaincodePackage = cdsBytes ;
97100 installChaincode ( params , t )
98101 . then ( ( info ) => {
99102 if ( info === 'success' ) {
100- t . pass ( params . testDesc + ' - success' ) ;
103+ t . pass ( params . testDesc + ' - success' ) ;
101104 return true ;
102105 } else {
103- t . fail ( params . testDesc + ' - ' + info ) ;
106+ t . fail ( params . testDesc + ' - ' + info ) ;
104107 t . end ( ) ;
105108 }
106109 } ,
107- ( err ) => {
108- t . fail ( params . testDesc + ' - install reject: ' + err ) ;
109- t . end ( ) ;
110- } ) . catch ( ( err ) => {
111- t . fail ( params . testDesc + ' - install error. ' + err . stack ? err . stack : err ) ;
112- t . end ( ) ;
113- } ) . then ( ( ) => {
114- params . channelName = params . channelName + '0' ;
115- params . testDesc = params . testDesc + '0' ;
116- installChaincode ( params , t )
117- . then ( ( info ) => {
118- if ( info && info instanceof Error && info . message . includes ( 'install-package.' + params . chaincodeVersion + ' exists' ) ) {
119- t . pass ( 'passed check for exists same code again' ) ;
120- t . end ( ) ;
121- } else {
122- t . fail ( 'failed check for exists same code again' ) ;
123- t . end ( ) ;
124- }
125- } ,
126- ( err ) => {
127- t . fail ( params . testDesc + ' - install same chaincode again - reject, error' ) ;
128- logger . error ( err . stack ? err . stack : err ) ;
129- t . end ( ) ;
130- } ) . catch ( ( err ) => {
131- t . fail ( params . testDesc + ' - install same chaincode again - error' ) ;
132- logger . error ( err . stack ? err . stack : err ) ;
133- t . end ( ) ;
134- } ) ;
135- } ) ;
110+ ( err ) => {
111+ t . fail ( params . testDesc + ' - install reject: ' + err ) ;
112+ t . end ( ) ;
113+ } ) . catch ( ( err ) => {
114+ t . fail ( params . testDesc + ' - install error. ' + err . stack ? err . stack : err ) ;
115+ t . end ( ) ;
116+ } ) . then ( ( ) => {
117+ params . channelName = params . channelName + '0' ;
118+ params . testDesc = params . testDesc + '0' ;
119+ installChaincode ( params , t )
120+ . then ( ( info ) => {
121+ if ( info && info instanceof Error && info . message . includes ( 'install-package.' + params . chaincodeVersion + ' exists' ) ) {
122+ t . pass ( 'passed check for exists same code again' ) ;
123+ t . end ( ) ;
124+ } else {
125+ t . fail ( 'failed check for exists same code again' ) ;
126+ t . end ( ) ;
127+ }
128+ } ,
129+ ( err ) => {
130+ t . fail ( params . testDesc + ' - install same chaincode again - reject, error' ) ;
131+ logger . error ( err . stack ? err . stack : err ) ;
132+ t . end ( ) ;
133+ } ) . catch ( ( err ) => {
134+ t . fail ( params . testDesc + ' - install same chaincode again - error' ) ;
135+ logger . error ( err . stack ? err . stack : err ) ;
136+ t . end ( ) ;
137+ } ) ;
138+ } ) ;
136139 } ) ;
140+ t . end ( ) ;
137141} ) ;
138142
139143function installChaincode ( params , t ) {
@@ -153,14 +157,14 @@ function installChaincode(params, t) {
153157 t . pass ( 'Successfully retrieved TLS certificate' ) ;
154158 tlsInfo = enrollment ;
155159 client . setTlsClientCertAndKey ( tlsInfo . certificate , tlsInfo . key ) ;
156- return Client . newDefaultKeyValueStore ( { path : testUtil . storePathForOrg ( orgName ) } ) ;
160+ return Client . newDefaultKeyValueStore ( { path : testUtil . storePathForOrg ( orgName ) } ) ;
157161 } ) . then ( ( store ) => {
158162 client . setStateStore ( store ) ;
159163
160164 // get the peer org's admin required to send install chaincode requests
161165 return testUtil . getSubmitter ( client , t , true /* get peer org admin */ , org ) ;
162166 } ) . then ( ( ) => {
163- t . pass ( params . testDesc + ' - Successfully enrolled user \'admin\'' ) ;
167+ t . pass ( params . testDesc + ' - Successfully enrolled user \'admin\'' ) ;
164168
165169 channel . addOrderer (
166170 client . newOrderer (
@@ -204,38 +208,38 @@ function installChaincode(params, t) {
204208
205209 return client . installChaincode ( request ) ;
206210 } ,
207- ( err ) => {
208- t . fail ( params . testDesc + ' - Failed to enroll user \'admin\'. ' + err ) ;
209- throw new Error ( params . testDesc + ' - Failed to enroll user \'admin\'. ' + err ) ;
210- } ) . then ( ( results ) => {
211- var proposalResponses = results [ 0 ] ;
212-
213- //var proposal = results[1];
214- var all_good = true ;
215- var error = null ;
216- for ( var i in proposalResponses ) {
217- let one_good = false ;
218- if ( proposalResponses && proposalResponses [ i ] . response && proposalResponses [ i ] . response . status === 200 ) {
219- one_good = true ;
220- logger . info ( params . testDesc + ' - install proposal was good' ) ;
221- } else {
222- logger . error ( params . testDesc + ' - install proposal was bad' ) ;
223- error = proposalResponses [ i ] ;
211+ ( err ) => {
212+ t . fail ( params . testDesc + ' - Failed to enroll user \'admin\'. ' + err ) ;
213+ throw new Error ( params . testDesc + ' - Failed to enroll user \'admin\'. ' + err ) ;
214+ } ) . then ( ( results ) => {
215+ var proposalResponses = results [ 0 ] ;
216+
217+ //var proposal = results[1];
218+ var all_good = true ;
219+ var error = null ;
220+ for ( var i in proposalResponses ) {
221+ let one_good = false ;
222+ if ( proposalResponses && proposalResponses [ i ] . response && proposalResponses [ i ] . response . status === 200 ) {
223+ one_good = true ;
224+ logger . info ( params . testDesc + ' - install proposal was good' ) ;
225+ } else {
226+ logger . error ( params . testDesc + ' - install proposal was bad' ) ;
227+ error = proposalResponses [ i ] ;
228+ }
229+ all_good = all_good & one_good ;
224230 }
225- all_good = all_good & one_good ;
226- }
227- if ( all_good ) {
228- return 'success' ;
229- } else {
230- if ( error ) {
231- return error ;
231+ if ( all_good ) {
232+ return 'success' ;
233+ } else {
234+ if ( error ) {
235+ return error ;
236+ }
237+ else return 'fail' ;
232238 }
233- else return 'fail' ;
234- }
235- } ,
236- ( err ) => {
237- return new Error ( err . stack ? err . stack : err ) ;
238- } ) ;
239+ } ,
240+ ( err ) => {
241+ return new Error ( err . stack ? err . stack : err ) ;
242+ } ) ;
239243 } catch ( err ) {
240244 return Promise . reject ( new Error ( err . stack ? err . stack : err ) ) ;
241245 }
0 commit comments