Регистрация  |  Вход

Нужна помощь с тестом для Knowledge Article

Всем привет!

Создаю package с простым Apex-классом, который получает данные о статье (Lighting Knowledge). При установке package через ссылку на другую Salesforce-орг возникает ошибка:

The name "Knowledge__kav" is already used on component type: Article Type. Please rename existing component.

Орг совершенно дефольная, никаких record types специально создано не было.

Я полагал, что Knowledge__kav — это дефолтный record type для статей, и его можно использовать в тестах. Сталкивался ли кто-то с подобной проблемой? Как можно ее решить?

public with sharing class ContentController {
@AuraEnabled(cacheable=true)
public static KnowledgeArticleVersion getArticleById(Id id) {
return [
SELECT Title, ArticleCreatedDate
FROM KnowledgeArticleVersion
WHERE Id = :id
AND PublishStatus = 'Online'
];
}
}

@IsTest
private class ContentControllerTest {
@IsTest static void validateGetArticleById() {
String articleTitle = 'Test Article';
String articleBody = 'Test Body';
String articleUrlName = 'test';
String language = 'en_US';

Knowledge__kav article = new Knowledge__kav(
Title = articleTitle,
Summary = articleBody,
UrlName = articleUrlName,
Language = language
);

insert article;

Knowledge__kav currentArticleDetail = [
SELECT ArticleCreatedDate, ArticleNumber
FROM Knowledge__kav
WHERE Id = :article.Id
];

KnowledgeArticle knowledgeArticle = [
SELECT Id
FROM KnowledgeArticle
WHERE ArticleNumber = :currentArticleDetail.get('ArticleNumber').toString()
];

KbManagement.PublishingService.publishArticle(knowledgeArticle.Id, true);

sObject articleDetail = ContentController.getArticleById(article.Id);
System.assertEquals(articleTitle, articleDetail.get('Title'));
}
}

Всем привет!

Создаю package с простым Apex-классом, который получает данные о статье (Lighting Knowledge). При установке package через ссылку на другую Salesforce-орг возникает ошибка:

The name "Knowledge__kav" is already used on component type: Article Type. Please rename existing component.

Орг совершенно дефольная, никаких record types специально создано не было.

Я полагал, что Knowledge__kav — это дефолтный record type для статей, и его можно использовать в тестах. Сталкивался ли кто-то с подобной проблемой? Как можно ее решить?

[code]
public with sharing class ContentController {
    @AuraEnabled(cacheable=true)
    public static KnowledgeArticleVersion getArticleById(Id id) {
    return [
      SELECT Title, ArticleCreatedDate
      FROM KnowledgeArticleVersion
      WHERE Id = :id
      AND PublishStatus = 'Online'     
    ];
  }
}
[/code]

[code]
@IsTest
private class ContentControllerTest {
  @IsTest static void validateGetArticleById() {
    String articleTitle = 'Test Article';
    String articleBody = 'Test Body';
    String articleUrlName = 'test';
    String language = 'en_US';

    Knowledge__kav article = new Knowledge__kav(
      Title = articleTitle,
      Summary = articleBody,
      UrlName = articleUrlName,
      Language = language
    );

    insert article;

    Knowledge__kav currentArticleDetail = [
      SELECT ArticleCreatedDate, ArticleNumber
      FROM Knowledge__kav
      WHERE Id = :article.Id
    ];

    KnowledgeArticle knowledgeArticle = [
      SELECT Id
      FROM KnowledgeArticle
      WHERE ArticleNumber = :currentArticleDetail.get('ArticleNumber').toString()
    ];

    KbManagement.PublishingService.publishArticle(knowledgeArticle.Id, true);

    sObject articleDetail = ContentController.getArticleById(article.Id);
    System.assertEquals(articleTitle, articleDetail.get('Title'));
  }
}
[/code]