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
Anuj Joshi 42Anuj Joshi 42 

test class for knowledge article version

Hi All,

In my class I have a condition in soql such that on knowledge article version publish status should be online. When I am inserting test data for knowledge article version object by giving publist status as online, it is throwing an error that field is not writeable. I am not able to cover the test class because of this. Kindly provide me solution for this.

Thanks,
Anuj
Anuj Joshi 42Anuj Joshi 42
Hi,

This is my line in class.
List<Announcement__kav> lso= [Select a.UrlName , a.Link__c ,  a.Title, a.PublishStatus, a.KnowledgeArticleId, a.Id, (Select Id, DataCategoryGroupName, DataCategoryName From DataCategorySelections) From Announcement__kav a  where publishstatus = 'Online' order by a.Title];

And I am creating test data like this is test class.
 
Announcement__kav akv=new Announcement__kav();
        List<Announcement__kav> kvlist=new List<Announcement__kav>();
       akv.UrlName='testurl';
        akv.Title='Test akv';
        akv.PublishStatus='Online';
        kvlist.add(akv);
        insert kvlist;
Thanks,
Anuj
 
sfdcMonkey.comsfdcMonkey.com
try this once :
Announcement__kav akv=new Announcement__kav();
        List<Announcement__kav> kvlist=new List<Announcement__kav>();
       akv.UrlName='testurl';
        akv.Title='Test akv';
        
        kvlist.add(akv);
        insert kvlist;

KbManagement.PublishingService.publishArticle(kvlist[0].id, true);
Thanks , let us know if it helps you
 
Anuj Joshi 42Anuj Joshi 42
Hi Piyush,

I am getting this exception.

System.NoAccessException: Insufficient Privileges: You do not have the level of access necessary to perform the operation you requested. Please contact the owner of the record or your administrator if access is necessary.
sfdcMonkey.comsfdcMonkey.com
try this one
Announcement__kav akv=new Announcement__kav();
        List<Announcement__kav> kvlist=new List<Announcement__kav>();
       akv.UrlName='testurl';
        akv.Title='Test akv';
        
        kvlist.add(akv);
        insert kvlist;

Announcement__kav obj1 = [SELECT Id,Title,KnowledgeArticleId FROM Announcement__kav WHERE id =: kvlist[0].id];

KbManagement.PublishingService.publishArticle(obj1.KnowledgeArticleId, true);


 
Anuj Joshi 42Anuj Joshi 42
Hi Piyush,

Still the same error
Leonardo Santos 35Leonardo Santos 35
Hi Anuj.

activate permission in test user "Knowledge User"(user.UserPermissionsKnowledgeUser = true)