function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Debendra Ray 8Debendra Ray 8 

How to increase the code coverage for the following code - I'm getting an error while deploying this trigger on PROD - SendEmailForTaskEscalation, Details: Test coverage of selected Apex Trigger is 0%, at least 1% test coverage is required :

How to increase the code coverage for the following code - I'm getting an error while deploying this trigger on PROD - SendEmailForTaskEscalation, Details: Test coverage of selected Apex Trigger is 0%, at least 1% test coverage is required :

trigger SendEmailForTaskEscalation on Task (after update) {
    
    for (Integer i = 0; i < Trigger.new.size(); i++) {
         try{
             
             if( Trigger.new[i].CallDisposition == 'Escalated to Manager' &&
                 Trigger.new[i].Status != 'Completed'  &&
                 Trigger.new[i].ActivityDate <= date.today()
               ) {
           
                     sendEmailToManager(Trigger.new[i]);  
                     System.debug('SendEmailForTaskEscalation -> Email Send to Manager'); 
               }else{
                   
                   System.debug('SendEmailForTaskEscalation -> Email Not Send to Manager'); 
               }
         }catch(Exception e)
         {
            Trigger.new[i].addError(e.getMessage());
            System.debug('Error : SendEmailForTaskEscalation ->'+ e);  
         }
    }
    
    // This method will submit the proposal automatically
    public void sendEmailToManager(Task tsk){
        
        Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
        String ownerName = [select Name from User where Id = :tsk.OwnerId].Name;
        String emailAddr = [select Email from User where Id = :tsk.OwnerId].Email;
        String userManagerId = [select ManagerId from User where Id = :tsk.OwnerId].ManagerId; 
        String userManager = [select Name from User where Id = :userManagerId].Name;
        String userManagerEmail = [select Email from User where Id = :userManagerId].Email;
        
        String[] toAddresses = new String[] {userManagerEmail};
        String[] ccAddresses = new String[] {emailAddr};    
        mail.setToAddresses(toAddresses);
        mail.setCcAddresses(ccAddresses); 
        
        mail.setSubject('SLA breach for the Task assigned to the User : ' + ownerName );
        mail.setHtmlBody('<br/>Hi,<br/><br/>This is to inform you that, ' + ownerName + ' has failed to complete the following task within the due date :<br/><br/> Due Date of the task :' +tsk.ActivityDate+'<br/>'+'Priority of the task : <b>' + tsk.Priority + '</b><br/> Subject : <b>' +  tsk.Subject  + '</b>'+'</b><br/> Description : <b>' +  tsk.Description +'</b>'+'</b><br/> Status : <b>' +  tsk.Status  + '</b> <br/><br/><br/>Thanks & Regards <br/> <br/>Salesforce Administrator');
        Messaging.sendEmail(new Messaging.SingleEmailMessage[] { mail });

        
    }
    
          
}
Best Answer chosen by Debendra Ray 8
Debendra Ray 8Debendra Ray 8
Dear All,

All outstanding issues in PROD deployment are resolved. Your suggestions did help me figure out the root cause. - Thanks very much for your support. Much appreciated.

Regards,

Debendra

All Answers

Sandeep Kumar 84Sandeep Kumar 84
You need to write a test class and update the task and then deploy the test class and trigger
Waqar Hussain SFWaqar Hussain SF
public static testmethod void test_trigger(){
	Task t = new task();
	t.CallDisposition == 'Escalated to Manager';
	t.Status = 'Completed';
	t.ActivityDate = date.today();
	insert t;

	t.Status = 'In Progress';
	update t;
	}
}
Debendra Ray 8Debendra Ray 8
Dear All,

All outstanding issues in PROD deployment are resolved. Your suggestions did help me figure out the root cause. - Thanks very much for your support. Much appreciated.

Regards,

Debendra
This was selected as the best answer