• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

yext / answers-search-ui / 13118033733

03 Feb 2025 04:23PM UTC coverage: 61.767% (-0.4%) from 62.179%
13118033733

Pull #1914

github

web-flow
Merge 4bafd1b70 into 4bbe5b26d
Pull Request #1914: Generative Direct Answers integration

2026 of 3430 branches covered (59.07%)

Branch coverage included in aggregate %.

67 of 113 new or added lines in 7 files covered. (59.29%)

30 existing lines in 4 files now uncovered.

3483 of 5489 relevant lines covered (63.45%)

26.65 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

80.95
/src/core/models/generativedirectanswer.js
1
/** @module GenerativeDirectAnswer */
2

3
import SearchStates from '../storage/searchstates';
4
import RichTextFormatter from '../utils/richtextformatter';
5

6
export default class GenerativeDirectAnswer {
7
  constructor (generativeDirectAnswer = {}) {
×
8
    Object.assign(this, { searchState: SearchStates.SEARCH_COMPLETE }, generativeDirectAnswer);
5✔
9
  }
10

11
  /**
12
   * Constructs an SDK GenerativeDirectAnswer from a search-core GenerativeDirectAnswerResponse
13
   *
14
   * @param {GenerativeDirectAnswerResponse} gdaResponse from search-core
15
   * @param {string} searcher whether this generative direct answer is from a "UNIVERSAL" or "VERTICAL" search
16
   * @param {VerticalResults[]} verticalResults list of search-core VerticalResults
17
   * @returns {GenerativeDirectAnswer}
18
   */
19
  static fromCore (gdaResponse, searcher, verticalResults) {
20
    if (!gdaResponse) {
1!
NEW
21
      return new GenerativeDirectAnswer();
×
22
    }
23

24
    const citationsData = verticalResults
1✔
25
      .flatMap(vr => vr.results)
2✔
26
      .filter(result => result.rawData?.uid && result.name)
4✔
27
      .filter(result => gdaResponse.citations.includes(result.rawData.uid))
4✔
28
      .map(result => {
29
        return {
3✔
30
          uid: result.rawData.uid,
31
          name: result.name,
32
          description: result.description,
33
          link: result.link
34
        };
35
      });
36

37
    if (gdaResponse.directAnswer) {
1!
38
      const directAnswerAsHTML = RichTextFormatter.format(gdaResponse.directAnswer, 'gda-snippet');
1✔
39
      gdaResponse.directAnswer = directAnswerAsHTML;
1✔
40
    }
41
    const generativeDirectAnswerData = {
1✔
42
      ...gdaResponse,
43
      searcher,
44
      citationsData
45
    };
46
    return new GenerativeDirectAnswer(generativeDirectAnswerData);
1✔
47
  }
48

49
  /**
50
   * Construct a GenerativeDirectAnswer object representing loading result
51
   * @return {GenerativeDirectAnswer}
52
   */
53
  static searchLoading () {
54
    return new GenerativeDirectAnswer({ searchState: SearchStates.SEARCH_LOADING });
2✔
55
  }
56
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc