|
1 | 1 | import { Template } from 'aws-cdk-lib/assertions';
|
2 | 2 | import * as ecs from 'aws-cdk-lib/aws-ecs';
|
3 |
| -import { Size, Stack } from 'aws-cdk-lib'; |
| 3 | +import { DefaultTokenResolver, Size, StringConcat, Stack, Tokenization } from 'aws-cdk-lib'; |
4 | 4 | import { Compatibility, EcsEc2ContainerDefinition, EcsFargateContainerDefinition, EcsJobDefinition } from '../lib';
|
5 | 5 |
|
6 | 6 |
|
@@ -74,3 +74,57 @@ test('can be imported from ARN', () => {
|
74 | 74 | expect(importedJob.jobDefinitionArn).toEqual('arn:aws:batch:us-east-1:123456789012:job-definition/job-def-name:1');
|
75 | 75 | });
|
76 | 76 |
|
| 77 | +test('JobDefinitionName is parsed from arn', () => { |
| 78 | + // GIVEN |
| 79 | + const stack = new Stack(); |
| 80 | + |
| 81 | + // WHEN |
| 82 | + const jobDefinition = new EcsJobDefinition(stack, 'JobDefn', { |
| 83 | + propagateTags: true, |
| 84 | + container: new EcsEc2ContainerDefinition(stack, 'EcsContainer', { |
| 85 | + cpu: 256, |
| 86 | + image: ecs.ContainerImage.fromRegistry('amazon/amazon-ecs-sample'), |
| 87 | + memory: Size.mebibytes(2048), |
| 88 | + }), |
| 89 | + }); |
| 90 | + |
| 91 | + // THEN |
| 92 | + expect(Tokenization.resolve(jobDefinition.jobDefinitionName, { |
| 93 | + scope: stack, |
| 94 | + resolver: new DefaultTokenResolver(new StringConcat()), |
| 95 | + })).toEqual({ |
| 96 | + 'Fn::Select': [ |
| 97 | + 1, |
| 98 | + { |
| 99 | + 'Fn::Split': [ |
| 100 | + '/', |
| 101 | + { |
| 102 | + 'Fn::Select': [ |
| 103 | + 5, |
| 104 | + { |
| 105 | + 'Fn::Split': [ |
| 106 | + ':', |
| 107 | + { |
| 108 | + Ref: 'JobDefnA747EE6E', |
| 109 | + }, |
| 110 | + ], |
| 111 | + }, |
| 112 | + ], |
| 113 | + }, |
| 114 | + ], |
| 115 | + }, |
| 116 | + ], |
| 117 | + }); |
| 118 | +}); |
| 119 | + |
| 120 | +test('JobDefinitionName is parsed from arn in imported job', () => { |
| 121 | + // GIVEN |
| 122 | + const stack = new Stack(); |
| 123 | + |
| 124 | + // WHEN |
| 125 | + const importedJob = EcsJobDefinition.fromJobDefinitionArn(stack, 'importedJobDefinition', |
| 126 | + 'arn:aws:batch:us-east-1:123456789012:job-definition/job-def-name:1'); |
| 127 | + |
| 128 | + // THEN |
| 129 | + expect(importedJob.jobDefinitionName).toEqual('job-def-name'); |
| 130 | +}); |
0 commit comments