From 73da6aed28d9e1be503385d8b97c989d04071b63 Mon Sep 17 00:00:00 2001 From: Paul Huliganga Date: Mon, 6 Apr 2026 20:32:16 -0400 Subject: [PATCH] test: use SeeAllData=true with pinned record IDs and fix testMultiCopyExpansion UUID --- .../DocusignCompositeEnvelopeBuilderTest.cls | 72 ++++++++++--------- 1 file changed, 37 insertions(+), 35 deletions(-) diff --git a/composite-envelope-builder/force-app/main/default/classes/DocusignCompositeEnvelopeBuilderTest.cls b/composite-envelope-builder/force-app/main/default/classes/DocusignCompositeEnvelopeBuilderTest.cls index 3f7fffa..fae6ff7 100644 --- a/composite-envelope-builder/force-app/main/default/classes/DocusignCompositeEnvelopeBuilderTest.cls +++ b/composite-envelope-builder/force-app/main/default/classes/DocusignCompositeEnvelopeBuilderTest.cls @@ -3,9 +3,10 @@ * @author Paul Huliganga * @date 2026-02-25 */ -@isTest +@isTest(SeeAllData=true) private class DocusignCompositeEnvelopeBuilderTest { - + + @isTest static void testSuccessfulCompositeEnvelope() { // Arrange @@ -17,7 +18,7 @@ private class DocusignCompositeEnvelopeBuilderTest { '01234567-abcd-ef01-2345-6789abcdef02', '01234567-abcd-ef01-2345-6789abcdef03' }; - req.recordId = '001000000ABC123'; + req.recordId = getTestCaseId(); req.language = 'en'; req.emailSubject = 'Please sign these forms'; @@ -43,7 +44,7 @@ private class DocusignCompositeEnvelopeBuilderTest { DocusignEnvelopeRequest req = new DocusignEnvelopeRequest(); req.templateIds = new List{'01234567-abcd-ef01-2345-6789abcdef01'}; - req.recordId = '001000000ABC123'; + req.recordId = getTestCaseId(); // Act Test.startTest(); @@ -69,7 +70,7 @@ private class DocusignCompositeEnvelopeBuilderTest { DocusignEnvelopeRequest req = new DocusignEnvelopeRequest(); req.templateIds = templateIds; - req.recordId = '001000000ABC123'; + req.recordId = getTestCaseId(); // Act Test.startTest(); @@ -94,7 +95,7 @@ private class DocusignCompositeEnvelopeBuilderTest { '01234567-abcd-ef01-2345-6789abcdef02', '01234567-abcd-ef01-2345-6789abcdef01' // duplicate }; - req.recordId = '001000000ABC123'; + req.recordId = getTestCaseId(); // Act Test.startTest(); @@ -227,7 +228,7 @@ private class DocusignCompositeEnvelopeBuilderTest { DocusignEnvelopeRequest req = new DocusignEnvelopeRequest(); req.templateIds = new List{'01234567-abcd-ef01-2345-6789abcdef01'}; - req.recordId = '001000000ABC123'; + req.recordId = getTestCaseId(); req.emailSubject = 'Custom: Please review and sign'; // Act @@ -249,7 +250,7 @@ private class DocusignCompositeEnvelopeBuilderTest { DocusignEnvelopeRequest req = new DocusignEnvelopeRequest(); req.templateIds = new List{'01234567-abcd-ef01-2345-6789abcdef01'}; - req.recordId = '001000000ABC123'; + req.recordId = getTestCaseId(); req.emailSubject = null; // Act @@ -278,7 +279,7 @@ private class DocusignCompositeEnvelopeBuilderTest { '01234567-abcd-ef01-2345-6789abcdef04', '01234567-abcd-ef01-2345-6789abcdef05' }; - req.recordId = '001000000ABC123'; + req.recordId = getTestCaseId(); // Act Test.startTest(); @@ -294,22 +295,11 @@ private class DocusignCompositeEnvelopeBuilderTest { @isTest static void testSmsDeliveryPath() { - // Arrange - create service coordinator (with email) and recipient (no email) - Contact sc = new Contact(LastName='SC', Email='sc@example.com'); - insert sc; - - Contact dr = new Contact(LastName='DR'); - insert dr; - - // Create a Client Case record linking the lookups used by resolver - Client_Case__c cc = new Client_Case__c(Name='Test Case SMS', Service_Coordinator__c = sc.Id, Docusign_Recipient_1__c = dr.Id); - insert cc; - - // Arrange request with SMS phone for recipient #1 + // Arrange - use existing sandbox case; SMS delivery path exercises withSmsDelivery() dfsle.TestUtils.setMock(new dfsle.ESignatureAPIMock()); DocusignEnvelopeRequest req = new DocusignEnvelopeRequest(); req.templateIds = new List{'01234567-abcd-ef01-2345-6789abcdef01'}; - req.recordId = cc.Id; + req.recordId = getTestCaseId(); req.recipientSmsPhone = '+15551234567'; // Act @@ -328,7 +318,7 @@ private class DocusignCompositeEnvelopeBuilderTest { dfsle.TestUtils.setMock(new dfsle.ESignatureAPIMock()); DocusignEnvelopeRequest req = new DocusignEnvelopeRequest(); req.templateIds = new List{'01234567-abcd-ef01-2345-6789abcdef01'}; - req.recordId = '001000000ABC123'; + req.recordId = getTestCaseId(); req.language = 'es'; // Act @@ -346,23 +336,15 @@ private class DocusignCompositeEnvelopeBuilderTest { // so the multi-copy expansion logic will detect and duplicate template IDs. dfsle__EnvelopeConfiguration__c cfg = new dfsle__EnvelopeConfiguration__c( Name = 'Authorization to Release Information - English', - dfsle__DocuSignId__c = '01234567-abcd-ef01-2345-6789abcdefMC', + dfsle__DocuSignId__c = '01234567-abcd-ef01-2345-6789abcdef99', dfsle__EmailMessage__c = 'Please sign this release.' ); insert cfg; - // Create contacts and case for recipients - Contact sc = new Contact(LastName='SC', Email='sc@example.com'); - insert sc; - Contact dr = new Contact(LastName='DR', Email='dr@example.com'); - insert dr; - Client_Case__c cc = new Client_Case__c(Name='Test Case Multi', Service_Coordinator__c = sc.Id, Docusign_Recipient_1__c = dr.Id); - insert cc; - dfsle.TestUtils.setMock(new dfsle.ESignatureAPIMock()); DocusignEnvelopeRequest req = new DocusignEnvelopeRequest(); - req.templateIds = new List{cfg.dfsle__DocuSignId__c}; - req.recordId = cc.Id; + req.templateIds = new List{'01234567-abcd-ef01-2345-6789abcdef99'}; + req.recordId = getTestCaseId(); req.authReleaseFormCopies = 3; // Act @@ -371,6 +353,26 @@ private class DocusignCompositeEnvelopeBuilderTest { Test.stopTest(); // Assert - ensure envelope creation succeeded when multi-copy expansion is requested - System.assertEquals(true, results[0].success, 'Multi-copy expansion should succeed'); + System.assertEquals(true, results[0].success, 'Multi-copy expansion should succeed. Error: ' + results[0].errorMessage); } + + private static Id getTestCaseId() { + // Sandbox: a0tPo000010ZsTFIA0 (case 00520074) + // Production fallback: case number 00496136 + List cases = [ + SELECT Id FROM Client_Case__c + WHERE Id = 'a0tPo000010ZsTFIA0' + OR Name = '00496136' + LIMIT 1 + ]; + if (!cases.isEmpty()) { + return cases[0].Id; + } + throw new TestSetupException( + 'No test Client_Case__c record found. ' + + 'Expected sandbox case 00520074 (id a0tPo000010ZsTFIA0) or production case 00496136.' + ); + } + + class TestSetupException extends Exception {} }