Skip to content

Commit 4cf822f

Browse files
committed
fix: force resource name change on scheduled functions since resource type was changed
1 parent 4c85820 commit 4cf822f

2 files changed

Lines changed: 21 additions & 21 deletions

File tree

src/visitors/scheduled/index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@ module.exports = function visitScheduled (inventory, template) {
3232
rule = `${rate ? 'rate' : 'cron'}(${rule.expression})`
3333

3434
let name = toLogicalID(schedule.name)
35-
let scheduleLambda = `${name}ScheduledLambda`
36-
let scheduleEvent = `${name}ScheduledEvent`
35+
let scheduleLambda = `${name}ScheduleLambda`
36+
let scheduleEvent = `${name}ScheduleEvent`
3737

3838
// Create the Lambda
3939
template.Resources[scheduleLambda] = createLambda({

test/unit/visitors/scheduled/index-test.js

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@ daily-task rate(1 day)
2525
let cfn = pkg(inv)
2626

2727
// Check the schedule resource exists and has correct type
28-
assert.ok(cfn.Resources.DailyTaskScheduledEvent, 'schedule event resource exists')
29-
assert.strictEqual(cfn.Resources.DailyTaskScheduledEvent.Type, 'AWS::Scheduler::Schedule', 'uses AWS::Scheduler::Schedule type')
28+
assert.ok(cfn.Resources.DailyTaskScheduleEvent, 'schedule event resource exists')
29+
assert.strictEqual(cfn.Resources.DailyTaskScheduleEvent.Type, 'AWS::Scheduler::Schedule', 'uses AWS::Scheduler::Schedule type')
3030
})
3131

3232
test('Scheduled visitor creates AWS::Scheduler::Schedule resource for cron expression', async () => {
@@ -36,9 +36,9 @@ hourly-job cron(0 * * * ? *)
3636
let inv = await inventory({ rawArc, deployStage })
3737
let cfn = pkg(inv)
3838

39-
assert.ok(cfn.Resources.HourlyJobScheduledEvent, 'schedule event resource exists')
40-
assert.strictEqual(cfn.Resources.HourlyJobScheduledEvent.Type, 'AWS::Scheduler::Schedule', 'uses AWS::Scheduler::Schedule type')
41-
assert.ok(cfn.Resources.HourlyJobScheduledEvent.Properties.ScheduleExpression.startsWith('cron('), 'schedule expression is a cron expression')
39+
assert.ok(cfn.Resources.HourlyJobScheduleEvent, 'schedule event resource exists')
40+
assert.strictEqual(cfn.Resources.HourlyJobScheduleEvent.Type, 'AWS::Scheduler::Schedule', 'uses AWS::Scheduler::Schedule type')
41+
assert.ok(cfn.Resources.HourlyJobScheduleEvent.Properties.ScheduleExpression.startsWith('cron('), 'schedule expression is a cron expression')
4242
})
4343

4444
test('Scheduled visitor creates Lambda function resource', async () => {
@@ -48,8 +48,8 @@ my-task rate(5 minutes)
4848
let inv = await inventory({ rawArc, deployStage })
4949
let cfn = pkg(inv)
5050

51-
assert.ok(cfn.Resources.MyTaskScheduledLambda, 'Lambda resource exists')
52-
assert.strictEqual(cfn.Resources.MyTaskScheduledLambda.Type, 'AWS::Serverless::Function', 'Lambda has correct type')
51+
assert.ok(cfn.Resources.MyTaskScheduleLambda, 'Lambda resource exists')
52+
assert.strictEqual(cfn.Resources.MyTaskScheduleLambda.Type, 'AWS::Serverless::Function', 'Lambda has correct type')
5353
})
5454

5555
test('Scheduled visitor creates shared IAM role for EventBridge Scheduler', async () => {
@@ -83,7 +83,7 @@ my-task rate(1 hour)
8383
let inv = await inventory({ rawArc, deployStage })
8484
let cfn = pkg(inv)
8585

86-
let flexWindow = cfn.Resources.MyTaskScheduledEvent.Properties.FlexibleTimeWindow
86+
let flexWindow = cfn.Resources.MyTaskScheduleEvent.Properties.FlexibleTimeWindow
8787
assert.ok(flexWindow, 'FlexibleTimeWindow exists')
8888
assert.strictEqual(flexWindow.Mode, 'OFF', 'FlexibleTimeWindow mode is OFF')
8989
})
@@ -95,13 +95,13 @@ my-task rate(1 hour)
9595
let inv = await inventory({ rawArc, deployStage })
9696
let cfn = pkg(inv)
9797

98-
let target = cfn.Resources.MyTaskScheduledEvent.Properties.Target
98+
let target = cfn.Resources.MyTaskScheduleEvent.Properties.Target
9999
assert.ok(target, 'Target exists')
100100
assert.ok(target.Arn, 'Target has Arn')
101101
assert.ok(target.RoleArn, 'Target has RoleArn')
102102

103103
// Verify the Arn references the Lambda
104-
assert.deepStrictEqual(target.Arn, { 'Fn::GetAtt': [ 'MyTaskScheduledLambda', 'Arn' ] }, 'Target Arn references Lambda')
104+
assert.deepStrictEqual(target.Arn, { 'Fn::GetAtt': [ 'MyTaskScheduleLambda', 'Arn' ] }, 'Target Arn references Lambda')
105105

106106
// Verify the RoleArn references the shared scheduler role
107107
assert.deepStrictEqual(target.RoleArn, { 'Fn::GetAtt': [ 'SchedulerRole', 'Arn' ] }, 'Target RoleArn references shared scheduler role')
@@ -116,8 +116,8 @@ my-task
116116
let inv = await inventory({ rawArc, deployStage })
117117
let cfn = pkg(inv)
118118

119-
assert.ok(cfn.Resources.MyTaskScheduledEvent.Properties.ScheduleExpressionTimezone, 'timezone property exists')
120-
assert.strictEqual(cfn.Resources.MyTaskScheduledEvent.Properties.ScheduleExpressionTimezone, 'America/New_York', 'timezone is set correctly')
119+
assert.ok(cfn.Resources.MyTaskScheduleEvent.Properties.ScheduleExpressionTimezone, 'timezone property exists')
120+
assert.strictEqual(cfn.Resources.MyTaskScheduleEvent.Properties.ScheduleExpressionTimezone, 'America/New_York', 'timezone is set correctly')
121121
})
122122

123123
test('Scheduled visitor does not add timezone when not specified', async () => {
@@ -127,7 +127,7 @@ my-task rate(1 hour)
127127
let inv = await inventory({ rawArc, deployStage })
128128
let cfn = pkg(inv)
129129

130-
assert.strictEqual(cfn.Resources.MyTaskScheduledEvent.Properties.ScheduleExpressionTimezone, undefined, 'timezone property is not set')
130+
assert.strictEqual(cfn.Resources.MyTaskScheduleEvent.Properties.ScheduleExpressionTimezone, undefined, 'timezone property is not set')
131131
})
132132

133133
test('Scheduled visitor creates resources for multiple scheduled functions with shared role', async () => {
@@ -139,11 +139,11 @@ task-two rate(1 day)
139139
let cfn = pkg(inv)
140140

141141
// Check both Lambdas and schedule events exist
142-
assert.ok(cfn.Resources.TaskOneScheduledLambda, 'first Lambda exists')
143-
assert.ok(cfn.Resources.TaskOneScheduledEvent, 'first schedule event exists')
142+
assert.ok(cfn.Resources.TaskOneScheduleLambda, 'first Lambda exists')
143+
assert.ok(cfn.Resources.TaskOneScheduleEvent, 'first schedule event exists')
144144

145-
assert.ok(cfn.Resources.TaskTwoScheduledLambda, 'second Lambda exists')
146-
assert.ok(cfn.Resources.TaskTwoScheduledEvent, 'second schedule event exists')
145+
assert.ok(cfn.Resources.TaskTwoScheduleLambda, 'second Lambda exists')
146+
assert.ok(cfn.Resources.TaskTwoScheduleEvent, 'second schedule event exists')
147147

148148
// Check there is only one shared scheduler role
149149
assert.ok(cfn.Resources.SchedulerRole, 'shared scheduler role exists')
@@ -176,8 +176,8 @@ my-hyphenated-task rate(1 hour)
176176
let inv = await inventory({ rawArc, deployStage })
177177
let cfn = pkg(inv)
178178

179-
assert.ok(cfn.Resources.MyHyphenatedTaskScheduledLambda, 'Lambda with hyphenated name exists')
180-
assert.ok(cfn.Resources.MyHyphenatedTaskScheduledEvent, 'schedule event with hyphenated name exists')
179+
assert.ok(cfn.Resources.MyHyphenatedTaskScheduleLambda, 'Lambda with hyphenated name exists')
180+
assert.ok(cfn.Resources.MyHyphenatedTaskScheduleEvent, 'schedule event with hyphenated name exists')
181181
assert.ok(cfn.Resources.SchedulerRole, 'shared scheduler role exists')
182182

183183
// Check the policy name uses the logical ID

0 commit comments

Comments
 (0)