@@ -5,6 +5,8 @@ const sinon = require('sinon');
55const BbPromise = require ( 'bluebird' ) ;
66const Serverless = require ( 'serverless/lib/Serverless' ) ;
77const AwsProvider = require ( 'serverless/lib/plugins/aws/provider/awsProvider' ) ;
8+ const CLI = require ( 'serverless/lib/classes/CLI' ) ;
9+ const chalk = require ( 'chalk' ) ;
810const ServerlessStepFunctions = require ( './index' ) ;
911
1012describe ( '#index' , ( ) => {
@@ -18,8 +20,8 @@ describe('#index', () => {
1820 stage : 'dev' ,
1921 region : 'us-east-1' ,
2022 } ;
21- serverless . init ( ) ;
2223 serverless . setProvider ( 'aws' , new AwsProvider ( serverless ) ) ;
24+ serverless . cli = new CLI ( serverless ) ;
2325 serverlessStepFunctions = new ServerlessStepFunctions ( serverless , options ) ;
2426 } ) ;
2527
@@ -211,4 +213,140 @@ describe('#index', () => {
211213 } ) ;
212214 } ) ;
213215 } ) ;
216+
217+ describe ( '#deploy()' , ( ) => {
218+ let consoleLogStub ;
219+
220+ beforeEach ( ( ) => {
221+ consoleLogStub = sinon . stub ( serverless . cli , 'consoleLog' ) . returns ( ) ;
222+ serverlessStepFunctions . endpointInfo = 'https://example.com' ;
223+ } ) ;
224+
225+ afterEach ( ( ) => {
226+ serverlessStepFunctions . serverless . cli . consoleLog . restore ( ) ;
227+ } ) ;
228+
229+ it ( 'should not display endpoints if http event not given' , ( ) => {
230+ serverlessStepFunctions . serverless . service . stepFunctions = { } ;
231+ let expectedMessage = '' ;
232+ expectedMessage += `${ chalk . yellow . underline ( 'Serverless StepFunctions OutPuts' ) } \n` ;
233+ expectedMessage += `${ chalk . yellow ( 'endpoints:' ) } ` ;
234+ expectedMessage += '\n' ;
235+ const message = serverlessStepFunctions . display ( ) ;
236+ expect ( consoleLogStub . calledOnce ) . to . equal ( true ) ;
237+ expect ( message ) . to . equal ( expectedMessage ) ;
238+ } ) ;
239+
240+ it ( 'should display endpoints if http event given as object' , ( ) => {
241+ serverlessStepFunctions . serverless . service . stepFunctions = {
242+ stateMachines : {
243+ myStateMachine : {
244+ define : 'my-define' ,
245+ events : [
246+ {
247+ http : {
248+ path : 'foo/bar' ,
249+ method : 'post' ,
250+ } ,
251+ } ,
252+ ] ,
253+ } ,
254+ } ,
255+ } ;
256+ let expectedMessage = '' ;
257+ expectedMessage += `${ chalk . yellow . underline ( 'Serverless StepFunctions OutPuts' ) } \n` ;
258+ expectedMessage += `${ chalk . yellow ( 'endpoints:' ) } ` ;
259+ expectedMessage += '\n POST - https://example.com/foo/bar' ;
260+ expectedMessage += '\n' ;
261+ const message = serverlessStepFunctions . display ( ) ;
262+ expect ( consoleLogStub . calledOnce ) . to . equal ( true ) ;
263+ expect ( message ) . to . equal ( expectedMessage ) ;
264+ } ) ;
265+
266+ it ( 'should display endpoints if http event given as string' , ( ) => {
267+ serverlessStepFunctions . serverless . service . stepFunctions = {
268+ stateMachines : {
269+ myStateMachine : {
270+ define : 'my-define' ,
271+ events : [
272+ {
273+ http : 'post foo/bar' ,
274+ } ,
275+ ] ,
276+ } ,
277+ } ,
278+ } ;
279+ let expectedMessage = '' ;
280+ expectedMessage += `${ chalk . yellow . underline ( 'Serverless StepFunctions OutPuts' ) } \n` ;
281+ expectedMessage += `${ chalk . yellow ( 'endpoints:' ) } ` ;
282+ expectedMessage += '\n POST - https://example.com/foo/bar' ;
283+ expectedMessage += '\n' ;
284+ const message = serverlessStepFunctions . display ( ) ;
285+ expect ( consoleLogStub . calledOnce ) . to . equal ( true ) ;
286+ expect ( message ) . to . equal ( expectedMessage ) ;
287+ } ) ;
288+
289+ it ( 'should display endpoints if http event given with path as slash' , ( ) => {
290+ serverlessStepFunctions . serverless . service . stepFunctions = {
291+ stateMachines : {
292+ myStateMachine : {
293+ define : 'my-define' ,
294+ events : [
295+ {
296+ http : 'post /' ,
297+ } ,
298+ ] ,
299+ } ,
300+ } ,
301+ } ;
302+ let expectedMessage = '' ;
303+ expectedMessage += `${ chalk . yellow . underline ( 'Serverless StepFunctions OutPuts' ) } \n` ;
304+ expectedMessage += `${ chalk . yellow ( 'endpoints:' ) } ` ;
305+ expectedMessage += '\n POST - https://example.com' ;
306+ expectedMessage += '\n' ;
307+ const message = serverlessStepFunctions . display ( ) ;
308+ expect ( consoleLogStub . calledOnce ) . to . equal ( true ) ;
309+ expect ( message ) . to . equal ( expectedMessage ) ;
310+ } ) ;
311+
312+ it ( 'should display endpoints if events given as object' , ( ) => {
313+ serverlessStepFunctions . serverless . service . stepFunctions = {
314+ stateMachines : {
315+ myStateMachine : {
316+ define : 'my-define' ,
317+ events : { } ,
318+ } ,
319+ } ,
320+ } ;
321+ let expectedMessage = '' ;
322+ expectedMessage += `${ chalk . yellow . underline ( 'Serverless StepFunctions OutPuts' ) } \n` ;
323+ expectedMessage += `${ chalk . yellow ( 'endpoints:' ) } ` ;
324+ expectedMessage += '\n' ;
325+ const message = serverlessStepFunctions . display ( ) ;
326+ expect ( consoleLogStub . calledOnce ) . to . equal ( true ) ;
327+ expect ( message ) . to . equal ( expectedMessage ) ;
328+ } ) ;
329+
330+ it ( 'should display endpoints if http event does not exists' , ( ) => {
331+ serverlessStepFunctions . serverless . service . stepFunctions = {
332+ stateMachines : {
333+ myStateMachine : {
334+ define : 'my-define' ,
335+ events : [
336+ {
337+ foo : 'bar' ,
338+ } ,
339+ ] ,
340+ } ,
341+ } ,
342+ } ;
343+ let expectedMessage = '' ;
344+ expectedMessage += `${ chalk . yellow . underline ( 'Serverless StepFunctions OutPuts' ) } \n` ;
345+ expectedMessage += `${ chalk . yellow ( 'endpoints:' ) } ` ;
346+ expectedMessage += '\n' ;
347+ const message = serverlessStepFunctions . display ( ) ;
348+ expect ( consoleLogStub . calledOnce ) . to . equal ( true ) ;
349+ expect ( message ) . to . equal ( expectedMessage ) ;
350+ } ) ;
351+ } ) ;
214352} ) ;
0 commit comments