|
1 |
| -import { objectLike, ResourcePart, arrayWith } from '@aws-cdk/assert-internal'; |
| 1 | +import { ABSENT, objectLike, ResourcePart, arrayWith } from '@aws-cdk/assert-internal'; |
2 | 2 | import '@aws-cdk/assert-internal/jest';
|
3 | 3 | import * as ec2 from '@aws-cdk/aws-ec2';
|
4 | 4 | import * as iam from '@aws-cdk/aws-iam';
|
@@ -292,103 +292,126 @@ describe('BitBucket source', () => {
|
292 | 292 | });
|
293 | 293 | });
|
294 | 294 |
|
295 |
| -test('project with s3 cache bucket', () => { |
296 |
| - // GIVEN |
297 |
| - const stack = new cdk.Stack(); |
| 295 | +describe('caching', () => { |
| 296 | + test('using Cache.none() results in NO_CACHE in the template', () => { |
| 297 | + // GIVEN |
| 298 | + const stack = new cdk.Stack(); |
298 | 299 |
|
299 |
| - // WHEN |
300 |
| - new codebuild.Project(stack, 'Project', { |
301 |
| - source: codebuild.Source.s3({ |
302 |
| - bucket: new s3.Bucket(stack, 'SourceBucket'), |
303 |
| - path: 'path', |
304 |
| - }), |
305 |
| - cache: codebuild.Cache.bucket(new s3.Bucket(stack, 'Bucket'), { |
306 |
| - prefix: 'cache-prefix', |
307 |
| - }), |
| 300 | + // WHEN |
| 301 | + new codebuild.PipelineProject(stack, 'Project', { |
| 302 | + cache: codebuild.Cache.none(), |
| 303 | + }); |
| 304 | + |
| 305 | + // THEN |
| 306 | + expect(stack).toHaveResourceLike('AWS::CodeBuild::Project', { |
| 307 | + Cache: { |
| 308 | + Type: 'NO_CACHE', |
| 309 | + Location: ABSENT, |
| 310 | + }, |
| 311 | + }); |
308 | 312 | });
|
309 | 313 |
|
310 |
| - // THEN |
311 |
| - expect(stack).toHaveResourceLike('AWS::CodeBuild::Project', { |
312 |
| - Cache: { |
313 |
| - Type: 'S3', |
314 |
| - Location: { |
315 |
| - 'Fn::Join': [ |
316 |
| - '/', |
317 |
| - [ |
318 |
| - { |
319 |
| - 'Ref': 'Bucket83908E77', |
320 |
| - }, |
321 |
| - 'cache-prefix', |
| 314 | + test('project with s3 cache bucket', () => { |
| 315 | + // GIVEN |
| 316 | + const stack = new cdk.Stack(); |
| 317 | + |
| 318 | + // WHEN |
| 319 | + new codebuild.Project(stack, 'Project', { |
| 320 | + source: codebuild.Source.s3({ |
| 321 | + bucket: new s3.Bucket(stack, 'SourceBucket'), |
| 322 | + path: 'path', |
| 323 | + }), |
| 324 | + cache: codebuild.Cache.bucket(new s3.Bucket(stack, 'Bucket'), { |
| 325 | + prefix: 'cache-prefix', |
| 326 | + }), |
| 327 | + }); |
| 328 | + |
| 329 | + // THEN |
| 330 | + expect(stack).toHaveResourceLike('AWS::CodeBuild::Project', { |
| 331 | + Cache: { |
| 332 | + Type: 'S3', |
| 333 | + Location: { |
| 334 | + 'Fn::Join': [ |
| 335 | + '/', |
| 336 | + [ |
| 337 | + { |
| 338 | + 'Ref': 'Bucket83908E77', |
| 339 | + }, |
| 340 | + 'cache-prefix', |
| 341 | + ], |
322 | 342 | ],
|
323 |
| - ], |
| 343 | + }, |
324 | 344 | },
|
325 |
| - }, |
| 345 | + }); |
326 | 346 | });
|
327 |
| -}); |
328 | 347 |
|
329 |
| -test('s3 codebuild project with sourceVersion', () => { |
330 |
| - // GIVEN |
331 |
| - const stack = new cdk.Stack(); |
| 348 | + test('s3 codebuild project with sourceVersion', () => { |
| 349 | + // GIVEN |
| 350 | + const stack = new cdk.Stack(); |
332 | 351 |
|
333 |
| - // WHEN |
334 |
| - new codebuild.Project(stack, 'Project', { |
335 |
| - source: codebuild.Source.s3({ |
336 |
| - bucket: new s3.Bucket(stack, 'Bucket'), |
337 |
| - path: 'path', |
338 |
| - version: 's3version', |
339 |
| - }), |
340 |
| - cache: codebuild.Cache.local(codebuild.LocalCacheMode.CUSTOM, codebuild.LocalCacheMode.DOCKER_LAYER, |
341 |
| - codebuild.LocalCacheMode.SOURCE), |
342 |
| - }); |
| 352 | + // WHEN |
| 353 | + new codebuild.Project(stack, 'Project', { |
| 354 | + source: codebuild.Source.s3({ |
| 355 | + bucket: new s3.Bucket(stack, 'Bucket'), |
| 356 | + path: 'path', |
| 357 | + version: 's3version', |
| 358 | + }), |
| 359 | + cache: codebuild.Cache.local(codebuild.LocalCacheMode.CUSTOM, codebuild.LocalCacheMode.DOCKER_LAYER, |
| 360 | + codebuild.LocalCacheMode.SOURCE), |
| 361 | + }); |
343 | 362 |
|
344 |
| - // THEN |
345 |
| - expect(stack).toHaveResource('AWS::CodeBuild::Project', { |
346 |
| - SourceVersion: 's3version', |
| 363 | + // THEN |
| 364 | + expect(stack).toHaveResource('AWS::CodeBuild::Project', { |
| 365 | + SourceVersion: 's3version', |
| 366 | + }); |
347 | 367 | });
|
348 |
| -}); |
349 | 368 |
|
350 |
| -test('project with local cache modes', () => { |
351 |
| - // GIVEN |
352 |
| - const stack = new cdk.Stack(); |
| 369 | + test('project with local cache modes', () => { |
| 370 | + // GIVEN |
| 371 | + const stack = new cdk.Stack(); |
353 | 372 |
|
354 |
| - // WHEN |
355 |
| - new codebuild.Project(stack, 'Project', { |
356 |
| - source: codebuild.Source.s3({ |
357 |
| - bucket: new s3.Bucket(stack, 'Bucket'), |
358 |
| - path: 'path', |
359 |
| - }), |
360 |
| - cache: codebuild.Cache.local(codebuild.LocalCacheMode.CUSTOM, codebuild.LocalCacheMode.DOCKER_LAYER, |
361 |
| - codebuild.LocalCacheMode.SOURCE), |
362 |
| - }); |
| 373 | + // WHEN |
| 374 | + new codebuild.Project(stack, 'Project', { |
| 375 | + source: codebuild.Source.s3({ |
| 376 | + bucket: new s3.Bucket(stack, 'Bucket'), |
| 377 | + path: 'path', |
| 378 | + }), |
| 379 | + cache: codebuild.Cache.local(codebuild.LocalCacheMode.CUSTOM, codebuild.LocalCacheMode.DOCKER_LAYER, |
| 380 | + codebuild.LocalCacheMode.SOURCE), |
| 381 | + }); |
363 | 382 |
|
364 |
| - // THEN |
365 |
| - expect(stack).toHaveResourceLike('AWS::CodeBuild::Project', { |
366 |
| - Cache: { |
367 |
| - Type: 'LOCAL', |
368 |
| - Modes: [ |
369 |
| - 'LOCAL_CUSTOM_CACHE', |
370 |
| - 'LOCAL_DOCKER_LAYER_CACHE', |
371 |
| - 'LOCAL_SOURCE_CACHE', |
372 |
| - ], |
373 |
| - }, |
| 383 | + // THEN |
| 384 | + expect(stack).toHaveResourceLike('AWS::CodeBuild::Project', { |
| 385 | + Cache: { |
| 386 | + Type: 'LOCAL', |
| 387 | + Modes: [ |
| 388 | + 'LOCAL_CUSTOM_CACHE', |
| 389 | + 'LOCAL_DOCKER_LAYER_CACHE', |
| 390 | + 'LOCAL_SOURCE_CACHE', |
| 391 | + ], |
| 392 | + }, |
| 393 | + }); |
374 | 394 | });
|
375 |
| -}); |
376 | 395 |
|
377 |
| -test('project by default has no cache modes', () => { |
378 |
| - // GIVEN |
379 |
| - const stack = new cdk.Stack(); |
| 396 | + test('project by default has cache type set to NO_CACHE', () => { |
| 397 | + // GIVEN |
| 398 | + const stack = new cdk.Stack(); |
380 | 399 |
|
381 |
| - // WHEN |
382 |
| - new codebuild.Project(stack, 'Project', { |
383 |
| - source: codebuild.Source.s3({ |
384 |
| - bucket: new s3.Bucket(stack, 'Bucket'), |
385 |
| - path: 'path', |
386 |
| - }), |
387 |
| - }); |
| 400 | + // WHEN |
| 401 | + new codebuild.Project(stack, 'Project', { |
| 402 | + source: codebuild.Source.s3({ |
| 403 | + bucket: new s3.Bucket(stack, 'Bucket'), |
| 404 | + path: 'path', |
| 405 | + }), |
| 406 | + }); |
388 | 407 |
|
389 |
| - // THEN |
390 |
| - expect(stack).not.toHaveResourceLike('AWS::CodeBuild::Project', { |
391 |
| - Cache: {}, |
| 408 | + // THEN |
| 409 | + expect(stack).toHaveResourceLike('AWS::CodeBuild::Project', { |
| 410 | + Cache: { |
| 411 | + Type: 'NO_CACHE', |
| 412 | + Location: ABSENT, |
| 413 | + }, |
| 414 | + }); |
392 | 415 | });
|
393 | 416 | });
|
394 | 417 |
|
|
0 commit comments