Welcome to mirror list, hosted at ThFree Co, Russian Federation.

code_suggestion_utils_spec.js « services « content_editor « frontend « spec - gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: f26d33adf4c08d912f7cf850e31d865b5f047df3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
import {
  lineOffsetToLangParams,
  langParamsToLineOffset,
  toAbsoluteLineOffset,
  getLines,
  appendNewlines,
} from '~/content_editor/services/code_suggestion_utils';

describe('content_editor/services/code_suggestion_utils', () => {
  describe('lineOffsetToLangParams', () => {
    it.each`
      lineOffset | expected
      ${[0, 0]}  | ${'-0+0'}
      ${[0, 2]}  | ${'-0+2'}
      ${[1, 1]}  | ${'+1+1'}
      ${[-1, 1]} | ${'-1+1'}
    `('converts line offset $lineOffset to lang params $expected', ({ lineOffset, expected }) => {
      expect(lineOffsetToLangParams(lineOffset)).toBe(expected);
    });
  });

  describe('langParamsToLineOffset', () => {
    it.each`
      langParams | expected
      ${'-0+0'}  | ${[-0, 0]}
      ${'-0+2'}  | ${[-0, 2]}
      ${'+1+1'}  | ${[1, 1]}
      ${'-1+1'}  | ${[-1, 1]}
    `('converts lang params $langParams to line offset $expected', ({ langParams, expected }) => {
      expect(langParamsToLineOffset(langParams)).toEqual(expected);
    });
  });

  describe('toAbsoluteLineOffset', () => {
    it('adds line number to line offset', () => {
      expect(toAbsoluteLineOffset([-2, 3], 72)).toEqual([70, 75]);
    });
  });

  describe('getLines', () => {
    it('returns lines from allLines', () => {
      const allLines = ['foo', 'bar', 'baz', 'qux', 'quux'];
      expect(getLines([2, 4], allLines)).toEqual(['bar', 'baz', 'qux']);
    });
  });

  describe('appendNewlines', () => {
    it('appends zero-width space to each line', () => {
      const lines = ['foo', 'bar', 'baz'];
      expect(appendNewlines(lines)).toEqual(['foo\u200b\n', 'bar\u200b\n', 'baz\u200b']);
    });
  });
});