Repository: amplify-education/serverless-domain-manager
Pull request #623 (2024-03-07 15:46:07)

Fix Cloudformation error message
<!--- Information about referencing Github Issues: https://help.github.com/articles/basic-writing-and-formatting-syntax/#referencing-issues-and-pull-requests --->
Fixes #0000

**Description of Issue Fixed**
Updated Cloudformation find API id error message


<!--- Please remember to allow edits from maintainers: https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/allowing-changes-to-a-pull-request-branch-created-from-a-fork --->



Patch:
diff --git a/CHANGELOG.md b/CHANGELOG.md
index caa97ca..0732718 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,11 @@ All notable changes to this project will be documented in this file.
 The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/)
 and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
 
+## [7.3.8] - 2023-03-07
+
+### Fixed
+- Updated Cloudformation find API id error message
+
 ## [7.3.7] - 2023-03-06
 
 ### Fixed
diff --git a/package.json b/package.json
index 61caffd..4aa8b4f 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
 {
   "name": "serverless-domain-manager",
-  "version": "7.3.7",
+  "version": "7.3.8",
   "engines": {
     "node": ">=14"
   },
diff --git a/src/aws/cloud-formation-wrapper.ts b/src/aws/cloud-formation-wrapper.ts
index ccbafa8..bd5cc11 100644
--- a/src/aws/cloud-formation-wrapper.ts
+++ b/src/aws/cloud-formation-wrapper.ts
@@ -112,7 +112,10 @@ class CloudFormationWrapper {
     }
 
     if (!response) {
-      throw new Error(`Failed to find a stack ${this.stackName}\n`);
+      throw new Error(
+        `Failed to find logicalResourceId '${logicalResourceId}' for the stack ${this.stackName}\n` +
+        "Make sure the stack exists and the API gateway event is added"
+      );
     }
 
     const apiId = response.StackResourceDetail.PhysicalResourceId;


Test patch:
diff --git a/test/unit-tests/aws/cloud-formation-wrapper.test.ts b/test/unit-tests/aws/cloud-formation-wrapper.test.ts
index 1c47b01..8afed87 100644
--- a/test/unit-tests/aws/cloud-formation-wrapper.test.ts
+++ b/test/unit-tests/aws/cloud-formation-wrapper.test.ts
@@ -106,7 +106,8 @@ describe("Cloud Formation wrapper checks", () => {
       await new CloudFormationWrapper().findApiId(Globals.apiTypes.rest);
     } catch (err) {
       errored = true;
-      expect(err.message).to.contains("Failed to find a stack");
+      expect(err.message).to.contains("Failed to find logicalResourceId");
+      expect(err.message).to.contains("Make sure the stack exists and the API gateway event is added");
     }
     expect(errored).to.equal(true);
 
@@ -159,7 +160,8 @@ describe("Cloud Formation wrapper checks", () => {
       await new CloudFormationWrapper().findApiId(Globals.apiTypes.rest);
     } catch (err) {
       errored = true;
-      expect(err.message).to.contains("Failed to find a stack");
+      expect(err.message).to.contains("Failed to find logicalResourceId");
+      expect(err.message).to.contains("Make sure the stack exists and the API gateway event is added");
     }
     expect(errored).to.equal(true);
 
@@ -184,7 +186,8 @@ describe("Cloud Formation wrapper checks", () => {
       await new CloudFormationWrapper().findApiId(Globals.apiTypes.rest);
     } catch (err) {
       errored = true;
-      expect(err.message).to.contains("Failed to find a stack");
+      expect(err.message).to.contains("Failed to find logicalResourceId");
+      expect(err.message).to.contains("Make sure the stack exists and the API gateway event is added");
     }
     expect(errored).to.equal(true);
     expect(consoleOutput[0]).to.contains("Unsupported apiGateway");
@@ -388,7 +391,8 @@ describe("Cloud Formation wrapper checks", () => {
       await new CloudFormationWrapper().findApiId(Globals.apiTypes.rest);
     } catch (err) {
       errored = true;
-      expect(err.message).to.contains("Failed to find a stack");
+      expect(err.message).to.contains("Failed to find logicalResourceId");
+      expect(err.message).to.contains("Make sure the stack exists and the API gateway event is added");
     }
     expect(errored).to.equal(true);
     expect(consoleOutput[0]).to.contains("[WARNING] Failed to find CloudFormation resources with an error");