Skip to content

Commit 89a761a

Browse files
committed
[WIP]add activity test
1 parent 29c1a79 commit 89a761a

File tree

2 files changed

+253
-1
lines changed

2 files changed

+253
-1
lines changed

lib/activity.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,9 @@ module.exports = {
3434
const activity = name || this.options.name;
3535
return this.provider.request('StepFunctions',
3636
'deleteActivity',
37-
{ activityArn: this.activityArns[activity] },
37+
{
38+
activityArn: this.activityArns[activity],
39+
},
3840
this.options.stage,
3941
this.options.region)
4042
.then(() => BbPromise.resolve());

lib/activity.test.js

Lines changed: 250 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,250 @@
1+
'use strict';
2+
3+
const expect = require('chai').expect;
4+
const BbPromise = require('bluebird');
5+
const sinon = require('sinon');
6+
const Serverless = require('serverless/lib/Serverless');
7+
const AwsProvider = require('serverless/lib/plugins/aws/provider/awsProvider');
8+
const ServerlessStepFunctions = require('./index');
9+
10+
describe('activity', () => {
11+
let serverless;
12+
let serverlessStepFunctions;
13+
14+
beforeEach(() => {
15+
serverless = new Serverless();
16+
serverless.servicePath = true;
17+
serverless.service.service = 'step-functions';
18+
serverless.service.stepFunctions = {};
19+
serverless.service.functions = {
20+
first: {
21+
handler: true,
22+
name: 'first',
23+
},
24+
};
25+
26+
const options = {
27+
stage: 'dev',
28+
region: 'us-east-1',
29+
function: 'first',
30+
functionObj: {
31+
name: 'first',
32+
},
33+
name: 'helloActivity',
34+
};
35+
36+
serverless.init();
37+
serverless.setProvider('aws', new AwsProvider(serverless));
38+
serverlessStepFunctions = new ServerlessStepFunctions(serverless, options);
39+
});
40+
41+
describe('getActivityName', () => {
42+
it('should return activity name',
43+
() => expect(serverlessStepFunctions.getActivityName('name'))
44+
.to.be.equal('step-functions-dev-name'));
45+
});
46+
47+
describe('#createActivity()', () => {
48+
let createActivityStub;
49+
beforeEach(() => {
50+
createActivityStub = sinon.stub(serverlessStepFunctions.provider, 'request')
51+
.returns(BbPromise.resolve());
52+
});
53+
54+
it('should createActivity when correct params is not given'
55+
, () => serverlessStepFunctions.createActivity()
56+
.then(() => {
57+
const stage = serverlessStepFunctions.options.stage;
58+
expect(createActivityStub.calledOnce).to.be.equal(true);
59+
expect(createActivityStub.calledWithExactly(
60+
'StepFunctions',
61+
'createActivity',
62+
{
63+
name: `${serverless.service.service}-${stage}-helloActivity`,
64+
},
65+
serverlessStepFunctions.options.stage,
66+
serverlessStepFunctions.options.region
67+
)).to.be.equal(true);
68+
serverlessStepFunctions.provider.request.restore();
69+
})
70+
);
71+
72+
it('should createActivity with correct params'
73+
, () => serverlessStepFunctions.createActivity('name')
74+
.then(() => {
75+
const stage = serverlessStepFunctions.options.stage;
76+
expect(createActivityStub.calledOnce).to.be.equal(true);
77+
expect(createActivityStub.calledWithExactly(
78+
'StepFunctions',
79+
'createActivity',
80+
{
81+
name: `${serverless.service.service}-${stage}-name`,
82+
},
83+
serverlessStepFunctions.options.stage,
84+
serverlessStepFunctions.options.region
85+
)).to.be.equal(true);
86+
serverlessStepFunctions.provider.request.restore();
87+
})
88+
);
89+
});
90+
91+
describe('#createActivities()', () => {
92+
let createActivityStub;
93+
beforeEach(() => {
94+
serverlessStepFunctions.deployedActivities = {
95+
helloHello: 'notDeployed',
96+
hogeHoge: 'notDeployed',
97+
sssss: 'deployed',
98+
};
99+
createActivityStub = sinon
100+
.stub(serverlessStepFunctions, 'createActivity').returns(BbPromise.resolve());
101+
});
102+
103+
it('should createActivities with correct params'
104+
, () => serverlessStepFunctions.createActivities()
105+
.then(() => {
106+
expect(createActivityStub.calledTwice).to.be.equal(true);
107+
serverlessStepFunctions.createActivity.restore();
108+
})
109+
);
110+
});
111+
112+
describe('#deleteActivity()', () => {
113+
let deleteActivityStub;
114+
beforeEach(() => {
115+
deleteActivityStub = sinon.stub(serverlessStepFunctions.provider, 'request')
116+
.returns(BbPromise.resolve());
117+
serverlessStepFunctions.activityArns.helloActivity = 'arn';
118+
serverlessStepFunctions.activityArns.name = 'arnarn';
119+
});
120+
121+
it('should deleteActivity when correct params is not given'
122+
, () => serverlessStepFunctions.deleteActivity()
123+
.then(() => {
124+
expect(deleteActivityStub.calledOnce).to.be.equal(true);
125+
expect(deleteActivityStub.calledWithExactly(
126+
'StepFunctions',
127+
'deleteActivity',
128+
{
129+
activityArn: 'arn',
130+
},
131+
serverlessStepFunctions.options.stage,
132+
serverlessStepFunctions.options.region
133+
)).to.be.equal(true);
134+
serverlessStepFunctions.provider.request.restore();
135+
})
136+
);
137+
138+
it('should deleteActivity with correct params'
139+
, () => serverlessStepFunctions.deleteActivity('name')
140+
.then(() => {
141+
expect(deleteActivityStub.calledOnce).to.be.equal(true);
142+
expect(deleteActivityStub.calledWithExactly(
143+
'StepFunctions',
144+
'deleteActivity',
145+
{
146+
activityArn: 'arnarn',
147+
},
148+
serverlessStepFunctions.options.stage,
149+
serverlessStepFunctions.options.region
150+
)).to.be.equal(true);
151+
serverlessStepFunctions.provider.request.restore();
152+
})
153+
);
154+
});
155+
156+
describe('#describeActivity()', () => {
157+
let describeActivityResolveStub;
158+
let describeActivityRejectStub;
159+
beforeEach(() => {
160+
describeActivityResolveStub = sinon.stub(serverlessStepFunctions.provider, 'request')
161+
.returns(BbPromise.resolve());
162+
serverlessStepFunctions.activityArns.helloActivity = 'arn';
163+
serverlessStepFunctions.activityArns.name = 'arnarn';
164+
});
165+
166+
it('should describeActivity when correct params is not given and stub is resolve'
167+
, () => serverlessStepFunctions.describeActivity()
168+
.then(() => {
169+
expect(describeActivityResolveStub.calledOnce).to.be.equal(true);
170+
expect(describeActivityResolveStub.calledWithExactly(
171+
'StepFunctions',
172+
'describeActivity',
173+
{
174+
activityArn: 'arn',
175+
},
176+
serverlessStepFunctions.options.stage,
177+
serverlessStepFunctions.options.region
178+
)).to.be.equal(true);
179+
expect(serverlessStepFunctions.deployedActivities.helloActivity)
180+
.to.be.equal('deployed');
181+
serverlessStepFunctions.provider.request.restore();
182+
})
183+
);
184+
185+
it('should describeActivity with correct params and stub is resolve'
186+
, () => serverlessStepFunctions.describeActivity('name')
187+
.then(() => {
188+
expect(describeActivityResolveStub.calledOnce).to.be.equal(true);
189+
expect(describeActivityResolveStub.calledWithExactly(
190+
'StepFunctions',
191+
'describeActivity',
192+
{
193+
activityArn: 'arnarn',
194+
},
195+
serverlessStepFunctions.options.stage,
196+
serverlessStepFunctions.options.region
197+
)).to.be.equal(true);
198+
expect(serverlessStepFunctions.deployedActivities.name)
199+
.to.be.equal('deployed');
200+
serverlessStepFunctions.provider.request.restore();
201+
})
202+
);
203+
204+
it('should describeActivity when correct params is not given and stub is reject'
205+
, () => {
206+
serverlessStepFunctions.provider.request.restore();
207+
describeActivityRejectStub = sinon.stub(serverlessStepFunctions.provider, 'request')
208+
.returns(BbPromise.reject());
209+
serverlessStepFunctions.describeActivity()
210+
.catch(() => {
211+
expect(describeActivityRejectStub.calledOnce).to.be.equal(true);
212+
expect(describeActivityRejectStub.calledWithExactly(
213+
'StepFunctions',
214+
'describeActivity',
215+
{
216+
activityArn: 'arn',
217+
},
218+
serverlessStepFunctions.options.stage,
219+
serverlessStepFunctions.options.region
220+
)).to.be.equal(true);
221+
expect(serverlessStepFunctions.deployedActivities.helloActivity)
222+
.to.be.equal('notDployed');
223+
serverlessStepFunctions.provider.request.restore();
224+
});
225+
});
226+
227+
it('should describeActivity with correct params and stub is reject'
228+
, () => {
229+
serverlessStepFunctions.provider.request.restore();
230+
describeActivityRejectStub = sinon.stub(serverlessStepFunctions.provider, 'request')
231+
.returns(BbPromise.reject());
232+
serverlessStepFunctions.describeActivity('name')
233+
.catch(() => {
234+
expect(describeActivityResolveStub.calledOnce).to.be.equal(true);
235+
expect(describeActivityResolveStub.calledWithExactly(
236+
'StepFunctions',
237+
'describeActivity',
238+
{
239+
activityArn: 'arnarn',
240+
},
241+
serverlessStepFunctions.options.stage,
242+
serverlessStepFunctions.options.region
243+
)).to.be.equal(true);
244+
expect(serverlessStepFunctions.deployedActivities.name)
245+
.to.be.equal('notDployed');
246+
serverlessStepFunctions.provider.request.restore();
247+
});
248+
});
249+
});
250+
});

0 commit comments

Comments
 (0)