From 2795e8775e380f55c41d3c681ebe110c0fc9a937 Mon Sep 17 00:00:00 2001 From: Jonathan Goldwasser Date: Tue, 9 Jun 2020 10:00:10 +0200 Subject: [PATCH] fix coverage in s3-assets --- packages/@aws-cdk/aws-s3-assets/lib/asset.ts | 16 +--------------- packages/@aws-cdk/aws-s3-assets/lib/compat.ts | 17 +++++++++++++++++ .../@aws-cdk/aws-s3-assets/test/compat.test.ts | 11 +++++++++++ 3 files changed, 29 insertions(+), 15 deletions(-) create mode 100644 packages/@aws-cdk/aws-s3-assets/lib/compat.ts create mode 100644 packages/@aws-cdk/aws-s3-assets/test/compat.test.ts diff --git a/packages/@aws-cdk/aws-s3-assets/lib/asset.ts b/packages/@aws-cdk/aws-s3-assets/lib/asset.ts index 5e6ecb43f9dca..5c3f0a514f07e 100644 --- a/packages/@aws-cdk/aws-s3-assets/lib/asset.ts +++ b/packages/@aws-cdk/aws-s3-assets/lib/asset.ts @@ -5,6 +5,7 @@ import * as cdk from '@aws-cdk/core'; import * as cxapi from '@aws-cdk/cx-api'; import * as fs from 'fs'; import * as path from 'path'; +import { toSymlinkFollow } from './compat'; const ARCHIVE_EXTENSIONS = [ '.zip', '.jar' ]; @@ -204,18 +205,3 @@ function determinePackaging(assetPath: string): cdk.FileAssetPackaging { throw new Error(`Asset ${assetPath} is expected to be either a directory or a regular file`); } - -function toSymlinkFollow(follow?: assets.FollowMode): cdk.SymlinkFollowMode | undefined { - if (!follow) { - return undefined; - } - - switch (follow) { - case assets.FollowMode.NEVER: return cdk.SymlinkFollowMode.NEVER; - case assets.FollowMode.ALWAYS: return cdk.SymlinkFollowMode.ALWAYS; - case assets.FollowMode.BLOCK_EXTERNAL: return cdk.SymlinkFollowMode.BLOCK_EXTERNAL; - case assets.FollowMode.EXTERNAL: return cdk.SymlinkFollowMode.EXTERNAL; - default: - throw new Error(`unknown follow mode: ${follow}`); - } -} diff --git a/packages/@aws-cdk/aws-s3-assets/lib/compat.ts b/packages/@aws-cdk/aws-s3-assets/lib/compat.ts new file mode 100644 index 0000000000000..af080a15615a2 --- /dev/null +++ b/packages/@aws-cdk/aws-s3-assets/lib/compat.ts @@ -0,0 +1,17 @@ +import { FollowMode } from '@aws-cdk/assets'; +import { SymlinkFollowMode } from '@aws-cdk/core'; + +export function toSymlinkFollow(follow?: FollowMode): SymlinkFollowMode | undefined { + if (!follow) { + return undefined; + } + + switch (follow) { + case FollowMode.NEVER: return SymlinkFollowMode.NEVER; + case FollowMode.ALWAYS: return SymlinkFollowMode.ALWAYS; + case FollowMode.BLOCK_EXTERNAL: return SymlinkFollowMode.BLOCK_EXTERNAL; + case FollowMode.EXTERNAL: return SymlinkFollowMode.EXTERNAL; + default: + throw new Error(`unknown follow mode: ${follow}`); + } +} diff --git a/packages/@aws-cdk/aws-s3-assets/test/compat.test.ts b/packages/@aws-cdk/aws-s3-assets/test/compat.test.ts new file mode 100644 index 0000000000000..41fbf0b57ac53 --- /dev/null +++ b/packages/@aws-cdk/aws-s3-assets/test/compat.test.ts @@ -0,0 +1,11 @@ +import { FollowMode } from '@aws-cdk/assets'; +import { SymlinkFollowMode } from '@aws-cdk/core'; +import { toSymlinkFollow } from '../lib/compat'; + +test('FollowMode compatibility', () => { + expect(toSymlinkFollow(undefined)).toBeUndefined(); + expect(toSymlinkFollow(FollowMode.ALWAYS)).toBe(SymlinkFollowMode.ALWAYS); + expect(toSymlinkFollow(FollowMode.BLOCK_EXTERNAL)).toBe(SymlinkFollowMode.BLOCK_EXTERNAL); + expect(toSymlinkFollow(FollowMode.EXTERNAL)).toBe(SymlinkFollowMode.EXTERNAL); + expect(toSymlinkFollow(FollowMode.NEVER)).toBe(SymlinkFollowMode.NEVER); +});