File size: 1,222 Bytes
bc20498
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
import { dedent } from '..';

describe('Issue 21', () => {
  it('should dedent nested dedents correctly', () => {
    const fieldDocs = dedent`
      * a
      * b
      * c
    `

    const a = dedent`
      /**
       ${fieldIntro()}
       *
       ${fieldDocs}
       *
       ${fieldExample()}
       */
    `

    function fieldIntro() {
      return dedent`
        * 0
      `
    }
    function fieldExample() {
      return dedent`
        * d
      `
    }

    const expected = `/**
 * 0
 *
 * a
 * b
 * c
 *
 * d
 */`

    expect(a).toEqual(expected);
  });

  /**
   * Could not find a way to handle this but is an edge case we'd like to solve eventually
   */
  it.skip('should handle function calls of nested dedents correctly', () => {
    const fieldDocs = dedent(`
      * a
      * b
      * c
    `)

    const a = dedent(`
      /**
       ${fieldIntro()}
       *
       ${fieldDocs}
       *
       ${fieldExample()}
       */
    `)

    function fieldIntro() {
      return dedent(`
        * 0
      `)
    }
    function fieldExample() {
      return dedent(`
        * d
      `)
    }

    const expected = `/**
 * 0
 *
 * a
 * b
 * c
 *
 * d
 */`

    expect(a).toEqual(expected);
  });
});