Commit c4fdf1a
committed
fix(deployment): resolve AWS::NotificationARNs pseudo-parameter to empty in Fn::Sub/Ref
cdkd's intrinsic resolver returned `undefined` for the AWS::NotificationARNs
pseudo-parameter. In an Fn::Sub body that left the literal placeholder
`${AWS::NotificationARNs}` in the output (the pseudo branch is skipped on
`undefined`, and the subsequent Ref attempt throws + keeps the placeholder),
diverging from CloudFormation.
cdkd has no stack-notification-ARN concept (a cdkd deploy never sets SNS
notification ARNs on a stack), so the list is always empty. CloudFormation
resolves an empty AWS::NotificationARNs list to an empty string in an
Fn::Sub / Ref string context, so the resolver now returns '' (empty string)
for AWS::NotificationARNs in both Fn::Sub and bare Ref contexts.
- src/deployment/intrinsic-function-resolver.ts: return '' instead of undefined
- tests/unit/deployment/intrinsic-functions.test.ts: add a describe block
asserting Fn::Sub('${AWS::NotificationARNs}') and Ref: AWS::NotificationARNs
both resolve to ''
- tests/integration/intrinsics-torture: update the verify.sh expected value
from `notif=undefined` to `notif=` (the prior expectation pinned a
non-existent "undefined" behavior); update the stack/README/changelog notes
to describe the CFn-parity empty-string resolution1 parent 2c21bef commit c4fdf1a
5 files changed
Lines changed: 65 additions & 18 deletions
File tree
- src/deployment
- tests
- integration/intrinsics-torture
- lib
- unit/deployment
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2096 | 2096 | | |
2097 | 2097 | | |
2098 | 2098 | | |
2099 | | - | |
| 2099 | + | |
| 2100 | + | |
| 2101 | + | |
| 2102 | + | |
| 2103 | + | |
| 2104 | + | |
| 2105 | + | |
2100 | 2106 | | |
2101 | 2107 | | |
2102 | 2108 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
41 | 41 | | |
42 | 42 | | |
43 | 43 | | |
44 | | - | |
| 44 | + | |
45 | 45 | | |
46 | 46 | | |
47 | 47 | | |
48 | 48 | | |
49 | | - | |
50 | | - | |
51 | | - | |
52 | | - | |
53 | | - | |
54 | | - | |
55 | | - | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
56 | 55 | | |
57 | 56 | | |
58 | 57 | | |
| |||
Lines changed: 4 additions & 4 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
199 | 199 | | |
200 | 200 | | |
201 | 201 | | |
202 | | - | |
203 | | - | |
204 | | - | |
205 | | - | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
206 | 206 | | |
207 | 207 | | |
208 | 208 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
197 | 197 | | |
198 | 198 | | |
199 | 199 | | |
200 | | - | |
201 | | - | |
202 | | - | |
203 | | - | |
204 | | - | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
205 | 207 | | |
206 | 208 | | |
207 | 209 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1424 | 1424 | | |
1425 | 1425 | | |
1426 | 1426 | | |
| 1427 | + | |
| 1428 | + | |
| 1429 | + | |
| 1430 | + | |
| 1431 | + | |
| 1432 | + | |
| 1433 | + | |
| 1434 | + | |
| 1435 | + | |
| 1436 | + | |
| 1437 | + | |
| 1438 | + | |
| 1439 | + | |
| 1440 | + | |
| 1441 | + | |
| 1442 | + | |
| 1443 | + | |
| 1444 | + | |
| 1445 | + | |
| 1446 | + | |
| 1447 | + | |
| 1448 | + | |
| 1449 | + | |
| 1450 | + | |
| 1451 | + | |
| 1452 | + | |
| 1453 | + | |
| 1454 | + | |
| 1455 | + | |
| 1456 | + | |
| 1457 | + | |
| 1458 | + | |
| 1459 | + | |
| 1460 | + | |
| 1461 | + | |
| 1462 | + | |
| 1463 | + | |
| 1464 | + | |
| 1465 | + | |
| 1466 | + | |
1427 | 1467 | | |
1428 | 1468 | | |
1429 | 1469 | | |
| |||
0 commit comments