From 007dafe482fe96d4b083d5b54f3cce12edf4d37e Mon Sep 17 00:00:00 2001 From: kaizen3031593 Date: Fri, 25 Mar 2022 15:16:48 -0400 Subject: [PATCH] isunresolved size --- packages/@aws-cdk/core/lib/size.ts | 7 ++++++ packages/@aws-cdk/core/test/duration.test.ts | 25 -------------------- packages/@aws-cdk/core/test/size.test.ts | 22 +++++------------ 3 files changed, 13 insertions(+), 41 deletions(-) diff --git a/packages/@aws-cdk/core/lib/size.ts b/packages/@aws-cdk/core/lib/size.ts index e8b9c66e35b72..57468f222bdc6 100644 --- a/packages/@aws-cdk/core/lib/size.ts +++ b/packages/@aws-cdk/core/lib/size.ts @@ -144,6 +144,13 @@ export class Size { public toPebibytes(opts: SizeConversionOptions = {}): number { return convert(this.amount, this.unit, StorageUnit.Pebibytes, opts); } + + /** + * Checks if size is a token or a resolvable object + */ + public isUnresolved() { + return Token.isUnresolved(this.amount); + } } /** diff --git a/packages/@aws-cdk/core/test/duration.test.ts b/packages/@aws-cdk/core/test/duration.test.ts index 99d54d15f0905..9cd7428faeb0f 100644 --- a/packages/@aws-cdk/core/test/duration.test.ts +++ b/packages/@aws-cdk/core/test/duration.test.ts @@ -18,8 +18,6 @@ describe('duration', () => { () => stack.resolve(lazyDuration.toMinutes())).toThrow( /Unable to perform time unit conversion on un-resolved token/, ); - - }); test('Duration in seconds', () => { @@ -31,8 +29,6 @@ describe('duration', () => { floatEqual(duration.toDays({ integral: false }), 300 / 86_400); expect(Duration.seconds(60 * 60 * 24).toDays()).toEqual(1); - - }); test('Duration in minutes', () => { @@ -44,8 +40,6 @@ describe('duration', () => { floatEqual(duration.toDays({ integral: false }), 300 / 86_400); expect(Duration.minutes(60 * 24).toDays()).toEqual(1); - - }); test('Duration in hours', () => { @@ -57,16 +51,12 @@ describe('duration', () => { floatEqual(duration.toDays({ integral: false }), 5 / 24); expect(Duration.hours(24).toDays()).toEqual(1); - - }); test('seconds to milliseconds', () => { const duration = Duration.seconds(5); expect(duration.toMilliseconds()).toEqual(5_000); - - }); test('Duration in days', () => { @@ -75,8 +65,6 @@ describe('duration', () => { expect(duration.toSeconds()).toEqual(86_400); expect(duration.toMinutes()).toEqual(1_440); expect(duration.toDays()).toEqual(1); - - }); testDeprecated('toISOString', () => { @@ -93,8 +81,6 @@ describe('duration', () => { expect(Duration.days(5).toISOString()).toEqual('P5D'); expect(Duration.seconds(1 + 60 * (1 + 60 * (1 + 24))).toISOString()).toEqual('P1DT1H1M1S'); - - }); test('toIsoString', () => { @@ -112,8 +98,6 @@ describe('duration', () => { expect(Duration.seconds(65).toIsoString()).toEqual('PT1M5S'); expect(Duration.seconds(1 + 60 * (1 + 60 * (1 + 24))).toIsoString()).toEqual('P1DT1H1M1S'); - - }); test('parse', () => { @@ -128,8 +112,6 @@ describe('duration', () => { expect(Duration.parse('P5D').toSeconds()).toEqual(432_000); expect(Duration.parse('P1DT1H1M1S').toSeconds()).toEqual(1 + 60 * (1 + 60 * (1 + 24))); - - }); test('reject illegal parses', () => { @@ -141,8 +123,6 @@ describe('duration', () => { expect(() => { Duration.parse('P5S'); }).toThrow(err); - - }); test('to human string', () => { @@ -165,8 +145,6 @@ describe('duration', () => { expect(Duration.millis(3666).toHumanString()).toEqual('3 seconds 666 millis'); expect(Duration.millis(3.6).toHumanString()).toEqual('3.6 millis'); - - }); test('add two durations', () => { @@ -188,7 +166,6 @@ describe('duration', () => { expect(Duration.millis(1).unitLabel()).toEqual('millis'); expect(Duration.hours(1000).unitLabel()).toEqual('hours'); expect(Duration.days(2).unitLabel()).toEqual('days'); - }); test('format number token to number', () => { @@ -197,14 +174,12 @@ describe('duration', () => { expect(stack.resolve(lazyDuration.formatTokenToNumber())).toEqual('10 minutes'); expect(Duration.hours(10).formatTokenToNumber()).toEqual('10 hours'); expect(Duration.days(5).formatTokenToNumber()).toEqual('5 days'); - }); test('duration is unresolved', () => { const lazyDuration = Duration.minutes(Lazy.number({ produce: () => 10 })); expect(lazyDuration.isUnresolved()).toEqual(true); expect(Duration.hours(10).isUnresolved()).toEqual(false); - }); }); diff --git a/packages/@aws-cdk/core/test/size.test.ts b/packages/@aws-cdk/core/test/size.test.ts index 9801fc8f53acf..8b0dc7a7eedac 100644 --- a/packages/@aws-cdk/core/test/size.test.ts +++ b/packages/@aws-cdk/core/test/size.test.ts @@ -1,10 +1,8 @@ -import { Size, SizeRoundingBehavior, Stack, Token } from '../lib'; +import { Size, SizeRoundingBehavior, Stack, Token, Lazy } from '../lib'; describe('size', () => { test('negative amount', () => { expect(() => Size.kibibytes(-1)).toThrow(/negative/); - - }); test('unresolved amount', () => { @@ -15,8 +13,6 @@ describe('size', () => { () => stack.resolve(lazySize.toMebibytes())).toThrow( /Unable to perform time unit conversion on un-resolved token/, ); - - }); test('Size in kibibytes', () => { @@ -30,8 +26,6 @@ describe('size', () => { floatEqual(size.toPebibytes({ rounding: SizeRoundingBehavior.NONE }), 4_294_967_296 / (1024 * 1024 * 1024 * 1024)); expect(Size.kibibytes(4 * 1024 * 1024).toGibibytes()).toEqual(4); - - }); test('Size in mebibytes', () => { @@ -45,8 +39,6 @@ describe('size', () => { floatEqual(size.toPebibytes({ rounding: SizeRoundingBehavior.NONE }), 4_194_304 / (1024 * 1024 * 1024)); expect(Size.mebibytes(4 * 1024).toGibibytes()).toEqual(4); - - }); test('Size in gibibyte', () => { @@ -61,8 +53,6 @@ describe('size', () => { floatEqual(size.toPebibytes({ rounding: SizeRoundingBehavior.NONE }), 5 / (1024 * 1024)); expect(Size.gibibytes(4096).toTebibytes()).toEqual(4); - - }); test('Size in tebibyte', () => { @@ -76,8 +66,6 @@ describe('size', () => { floatEqual(size.toPebibytes({ rounding: SizeRoundingBehavior.NONE }), 5 / 1024); expect(Size.tebibytes(4096).toPebibytes()).toEqual(4); - - }); test('Size in pebibytes', () => { @@ -88,8 +76,6 @@ describe('size', () => { expect(size.toGibibytes()).toEqual(5_242_880); expect(size.toTebibytes()).toEqual(5_120); expect(size.toPebibytes()).toEqual(5); - - }); test('rounding behavior', () => { @@ -105,8 +91,12 @@ describe('size', () => { expect(size.toGibibytes({ rounding: SizeRoundingBehavior.NONE })).toEqual(5.078125); expect(size.toTebibytes({ rounding: SizeRoundingBehavior.NONE })).toEqual(5200 / (1024 * 1024)); expect(size.toKibibytes({ rounding: SizeRoundingBehavior.NONE })).toEqual(5_324_800); + }); - + test('size is unresolved', () => { + const lazySize = Size.pebibytes(Lazy.number({ produce: () => 10 })); + expect(lazySize.isUnresolved()).toEqual(true); + expect(Size.mebibytes(10).isUnresolved()).toEqual(false); }); });