@@ -5,6 +5,7 @@ const m_response = require('cfn-response');
55const deepEqual = require ( 'deep-equal' ) ;
66
77const AlAwsCollector = require ( '../al_aws_collector' ) ;
8+ const m_al_aws = require ( '../al_aws' ) ;
89var m_alCollector = require ( '@alertlogic/al-collector-js' ) ;
910const m_healthChecks = require ( '../health_checks' ) ;
1011var AWS = require ( 'aws-sdk-mock' ) ;
@@ -17,6 +18,7 @@ const context = {
1718
1819var alserviceStub = { } ;
1920var responseStub = { } ;
21+ var setEnvStub = { } ;
2022
2123function setAlServiceStub ( ) {
2224 alserviceStub . get = sinon . stub ( m_alCollector . AlServiceC . prototype , 'get' ) . callsFake (
@@ -116,6 +118,23 @@ function mockLambdaEndpointsUpdateConfiguration() {
116118 } ) ;
117119}
118120
121+ function mockSetEnvStub ( ) {
122+ setEnvStub = sinon . stub ( m_al_aws , 'setEnv' ) . callsFake ( ( vars , callback ) => {
123+ const {
124+ ingest_api,
125+ azcollect_api
126+ } = vars ;
127+ process . env . ingest_api = ingest_api ? ingest_api : process . env . ingest_api ;
128+ process . env . azollect_api = azcollect_api ? azcollect_api : process . env . azollect_api ;
129+ const returnBody = {
130+ Environment : {
131+ Varaibles : vars
132+ }
133+ } ;
134+ return callback ( null , returnBody ) ;
135+ } ) ;
136+ }
137+
119138function mockLambdaMetricStatistics ( ) {
120139 AWS . mock ( 'CloudWatch' , 'getMetricStatistics' , function ( params , callback ) {
121140 var ret = colMock . CLOUDWATCH_GET_METRIC_STATS_OK ;
@@ -144,18 +163,41 @@ describe('al_aws_collector tests', function() {
144163 } ) ;
145164
146165 setAlServiceStub ( ) ;
166+ mockSetEnvStub ( ) ;
147167 } ) ;
148168
149169 afterEach ( function ( ) {
150170 restoreAlServiceStub ( ) ;
171+ setEnvStub . restore ( ) ;
151172 responseStub . restore ( ) ;
152173 } ) ;
153174
154- it ( 'register success' , function ( done ) {
175+ it ( 'register success with env vars set' , function ( done ) {
176+ var mockContext = {
177+ invokedFunctionArn : colMock . FUNCTION_ARN ,
178+ succeed : ( ) => {
179+ sinon . assert . calledWith ( alserviceStub . post , colMock . REG_URL , colMock . REG_AZCOLLECT_QUERY ) ;
180+ sinon . assert . neverCalledWithMatch ( alserviceStub . get , colMock . GET_INGEST_URL ) ;
181+ sinon . assert . neverCalledWithMatch ( alserviceStub . get , colMock . GET_AZCOLLECT_URL ) ;
182+ done ( ) ;
183+ }
184+ } ;
185+ AlAwsCollector . load ( ) . then ( function ( creds ) {
186+ var collector = new AlAwsCollector (
187+ mockContext , 'cwe' , AlAwsCollector . IngestTypes . SECMSGS , '1.0.0' , creds , function ( ) { } ) ;
188+ collector . register ( colMock . REGISTRATION_TEST_EVENT , colMock . REG_PARAMS ) ;
189+ } ) ;
190+ } ) ;
191+
192+ it ( 'register success with env vars not set' , function ( done ) {
193+ mockLambdaEndpointsUpdateConfiguration ( ) ;
194+ delete process . env . ingest_api ;
195+ delete process . env . azcollect_api ;
155196 var mockContext = {
156197 invokedFunctionArn : colMock . FUNCTION_ARN ,
157198 succeed : ( ) => {
158199 sinon . assert . calledWith ( alserviceStub . post , colMock . REG_URL , colMock . REG_AZCOLLECT_QUERY ) ;
200+ sinon . assert . calledTwice ( alserviceStub . get ) ;
159201 done ( ) ;
160202 }
161203 } ;
@@ -752,11 +794,13 @@ describe('al_aws_collector error tests', function() {
752794 return callback ( null , colMock . CF_DESCRIBE_STACKS_RESPONSE ) ;
753795 } ) ;
754796 mockLambdaMetricStatistics ( ) ;
797+ mockSetEnvStub ( ) ;
755798 } ) ;
756799
757800 afterEach ( function ( ) {
758801 restoreAlServiceStub ( ) ;
759802 responseStub . restore ( ) ;
803+ setEnvStub . restore ( ) ;
760804 AWS . restore ( 'CloudFormation' , 'describeStacks' ) ;
761805 AWS . restore ( 'CloudWatch' , 'getMetricStatistics' ) ;
762806 } ) ;
@@ -766,7 +810,7 @@ describe('al_aws_collector error tests', function() {
766810 invokedFunctionArn : colMock . FUNCTION_ARN ,
767811 done : ( ) => {
768812 sinon . assert . calledWith ( alserviceStub . post , colMock . REG_URL , colMock . REG_AZCOLLECT_QUERY ) ;
769- sinon . assert . calledWith ( responseStub , sinon . match . any , sinon . match . any , m_response . FAILED , { Error : 'post error' } ) ;
813+ sinon . assert . calledWith ( responseStub , sinon . match . any , sinon . match . any , m_response . FAILED , { Error : 'registration error: post error' } ) ;
770814 done ( ) ;
771815 }
772816 } ;
0 commit comments