File: code_suggestion_utils_spec.js

package info (click to toggle)
gitlab 17.6.5-19
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 629,368 kB
  • sloc: ruby: 1,915,304; javascript: 557,307; sql: 60,639; xml: 6,509; sh: 4,567; makefile: 1,239; python: 406
file content (53 lines) | stat: -rw-r--r-- 1,653 bytes parent folder | download
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']);
    });
  });
});