test: use SeeAllData=true with pinned record IDs and fix testMultiCopyExpansion UUID

This commit is contained in:
Paul Huliganga 2026-04-06 20:32:16 -04:00
parent d77f14b205
commit 73da6aed28
1 changed files with 37 additions and 35 deletions

View File

@ -3,9 +3,10 @@
* @author Paul Huliganga * @author Paul Huliganga
* @date 2026-02-25 * @date 2026-02-25
*/ */
@isTest @isTest(SeeAllData=true)
private class DocusignCompositeEnvelopeBuilderTest { private class DocusignCompositeEnvelopeBuilderTest {
@isTest @isTest
static void testSuccessfulCompositeEnvelope() { static void testSuccessfulCompositeEnvelope() {
// Arrange // Arrange
@ -17,7 +18,7 @@ private class DocusignCompositeEnvelopeBuilderTest {
'01234567-abcd-ef01-2345-6789abcdef02', '01234567-abcd-ef01-2345-6789abcdef02',
'01234567-abcd-ef01-2345-6789abcdef03' '01234567-abcd-ef01-2345-6789abcdef03'
}; };
req.recordId = '001000000ABC123'; req.recordId = getTestCaseId();
req.language = 'en'; req.language = 'en';
req.emailSubject = 'Please sign these forms'; req.emailSubject = 'Please sign these forms';
@ -43,7 +44,7 @@ private class DocusignCompositeEnvelopeBuilderTest {
DocusignEnvelopeRequest req = new DocusignEnvelopeRequest(); DocusignEnvelopeRequest req = new DocusignEnvelopeRequest();
req.templateIds = new List<String>{'01234567-abcd-ef01-2345-6789abcdef01'}; req.templateIds = new List<String>{'01234567-abcd-ef01-2345-6789abcdef01'};
req.recordId = '001000000ABC123'; req.recordId = getTestCaseId();
// Act // Act
Test.startTest(); Test.startTest();
@ -69,7 +70,7 @@ private class DocusignCompositeEnvelopeBuilderTest {
DocusignEnvelopeRequest req = new DocusignEnvelopeRequest(); DocusignEnvelopeRequest req = new DocusignEnvelopeRequest();
req.templateIds = templateIds; req.templateIds = templateIds;
req.recordId = '001000000ABC123'; req.recordId = getTestCaseId();
// Act // Act
Test.startTest(); Test.startTest();
@ -94,7 +95,7 @@ private class DocusignCompositeEnvelopeBuilderTest {
'01234567-abcd-ef01-2345-6789abcdef02', '01234567-abcd-ef01-2345-6789abcdef02',
'01234567-abcd-ef01-2345-6789abcdef01' // duplicate '01234567-abcd-ef01-2345-6789abcdef01' // duplicate
}; };
req.recordId = '001000000ABC123'; req.recordId = getTestCaseId();
// Act // Act
Test.startTest(); Test.startTest();
@ -227,7 +228,7 @@ private class DocusignCompositeEnvelopeBuilderTest {
DocusignEnvelopeRequest req = new DocusignEnvelopeRequest(); DocusignEnvelopeRequest req = new DocusignEnvelopeRequest();
req.templateIds = new List<String>{'01234567-abcd-ef01-2345-6789abcdef01'}; req.templateIds = new List<String>{'01234567-abcd-ef01-2345-6789abcdef01'};
req.recordId = '001000000ABC123'; req.recordId = getTestCaseId();
req.emailSubject = 'Custom: Please review and sign'; req.emailSubject = 'Custom: Please review and sign';
// Act // Act
@ -249,7 +250,7 @@ private class DocusignCompositeEnvelopeBuilderTest {
DocusignEnvelopeRequest req = new DocusignEnvelopeRequest(); DocusignEnvelopeRequest req = new DocusignEnvelopeRequest();
req.templateIds = new List<String>{'01234567-abcd-ef01-2345-6789abcdef01'}; req.templateIds = new List<String>{'01234567-abcd-ef01-2345-6789abcdef01'};
req.recordId = '001000000ABC123'; req.recordId = getTestCaseId();
req.emailSubject = null; req.emailSubject = null;
// Act // Act
@ -278,7 +279,7 @@ private class DocusignCompositeEnvelopeBuilderTest {
'01234567-abcd-ef01-2345-6789abcdef04', '01234567-abcd-ef01-2345-6789abcdef04',
'01234567-abcd-ef01-2345-6789abcdef05' '01234567-abcd-ef01-2345-6789abcdef05'
}; };
req.recordId = '001000000ABC123'; req.recordId = getTestCaseId();
// Act // Act
Test.startTest(); Test.startTest();
@ -294,22 +295,11 @@ private class DocusignCompositeEnvelopeBuilderTest {
@isTest @isTest
static void testSmsDeliveryPath() { static void testSmsDeliveryPath() {
// Arrange - create service coordinator (with email) and recipient (no email) // Arrange - use existing sandbox case; SMS delivery path exercises withSmsDelivery()
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
dfsle.TestUtils.setMock(new dfsle.ESignatureAPIMock()); dfsle.TestUtils.setMock(new dfsle.ESignatureAPIMock());
DocusignEnvelopeRequest req = new DocusignEnvelopeRequest(); DocusignEnvelopeRequest req = new DocusignEnvelopeRequest();
req.templateIds = new List<String>{'01234567-abcd-ef01-2345-6789abcdef01'}; req.templateIds = new List<String>{'01234567-abcd-ef01-2345-6789abcdef01'};
req.recordId = cc.Id; req.recordId = getTestCaseId();
req.recipientSmsPhone = '+15551234567'; req.recipientSmsPhone = '+15551234567';
// Act // Act
@ -328,7 +318,7 @@ private class DocusignCompositeEnvelopeBuilderTest {
dfsle.TestUtils.setMock(new dfsle.ESignatureAPIMock()); dfsle.TestUtils.setMock(new dfsle.ESignatureAPIMock());
DocusignEnvelopeRequest req = new DocusignEnvelopeRequest(); DocusignEnvelopeRequest req = new DocusignEnvelopeRequest();
req.templateIds = new List<String>{'01234567-abcd-ef01-2345-6789abcdef01'}; req.templateIds = new List<String>{'01234567-abcd-ef01-2345-6789abcdef01'};
req.recordId = '001000000ABC123'; req.recordId = getTestCaseId();
req.language = 'es'; req.language = 'es';
// Act // Act
@ -346,23 +336,15 @@ private class DocusignCompositeEnvelopeBuilderTest {
// so the multi-copy expansion logic will detect and duplicate template IDs. // so the multi-copy expansion logic will detect and duplicate template IDs.
dfsle__EnvelopeConfiguration__c cfg = new dfsle__EnvelopeConfiguration__c( dfsle__EnvelopeConfiguration__c cfg = new dfsle__EnvelopeConfiguration__c(
Name = 'Authorization to Release Information - English', 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.' dfsle__EmailMessage__c = 'Please sign this release.'
); );
insert cfg; 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()); dfsle.TestUtils.setMock(new dfsle.ESignatureAPIMock());
DocusignEnvelopeRequest req = new DocusignEnvelopeRequest(); DocusignEnvelopeRequest req = new DocusignEnvelopeRequest();
req.templateIds = new List<String>{cfg.dfsle__DocuSignId__c}; req.templateIds = new List<String>{'01234567-abcd-ef01-2345-6789abcdef99'};
req.recordId = cc.Id; req.recordId = getTestCaseId();
req.authReleaseFormCopies = 3; req.authReleaseFormCopies = 3;
// Act // Act
@ -371,6 +353,26 @@ private class DocusignCompositeEnvelopeBuilderTest {
Test.stopTest(); Test.stopTest();
// Assert - ensure envelope creation succeeded when multi-copy expansion is requested // 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<Client_Case__c> 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 {}
} }