diff --git a/packages/aws-rfdk/lib/lambdas/nodejs/lib/version-provider/test/version-provider.test.ts b/packages/aws-rfdk/lib/lambdas/nodejs/lib/version-provider/test/version-provider.test.ts index 026463d96..1bf01644b 100644 --- a/packages/aws-rfdk/lib/lambdas/nodejs/lib/version-provider/test/version-provider.test.ts +++ b/packages/aws-rfdk/lib/lambdas/nodejs/lib/version-provider/test/version-provider.test.ts @@ -213,3 +213,32 @@ test('get requested Uri version for not existing product.', () => { Product.deadlineDocker, )).toEqual(undefined); }); + + +test('get requested Uri version for not existing product version.', () => { + const requestedVersion = Version.parseFromVersionString('10.2'); + + expect(requestedVersion).not.toBeNull(); + if (requestedVersion === null) { + return; + } + + expect(() => { + versionProvider['getRequestedUriVersion']( + requestedVersion, + { + 10: { + 1: { + 9: { + 2: { + linux: 's3://thinkbox-installers/DeadlineDocker/10.1.9.2/DeadlineDocker-10.1.9.2.tar.gz', + }, + }, + }, + }, + }, + Platform.windows, + Product.deadlineDocker, + ); + }).toThrow('DeadlineDocker version 10.2 is not available on windows'); +}); diff --git a/packages/aws-rfdk/lib/lambdas/nodejs/lib/version-provider/version-provider.ts b/packages/aws-rfdk/lib/lambdas/nodejs/lib/version-provider/version-provider.ts index 1e6717f13..9564a9f83 100644 --- a/packages/aws-rfdk/lib/lambdas/nodejs/lib/version-provider/version-provider.ts +++ b/packages/aws-rfdk/lib/lambdas/nodejs/lib/version-provider/version-provider.ts @@ -252,6 +252,9 @@ export class VersionProvider { } else { version = requestedVersion[versionIndex + 1]; } + if (versionMap[version] === undefined) { + throw new Error(`${product} version ${requestedVersion[0]} is not available on ${platform}`); + } versionArray[versionIndex] = version; versionMap = versionMap[version]; }