@diplodoc/cli-tests 0.0.0-rc-resolve-codeblock-202509151421 → 0.0.0-rc-rebase-links-in-autotitles-17972680369

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/e2e/__snapshots__/alternates.test.ts.snap +896 -0
  2. package/e2e/__snapshots__/bundles.spec.ts.snap +9 -3
  3. package/e2e/__snapshots__/include-toc.test.ts.snap +3 -13
  4. package/e2e/__snapshots__/load-custom-resources.spec.ts.snap +6 -9
  5. package/e2e/__snapshots__/metadata.spec.ts.snap +3 -6
  6. package/e2e/__snapshots__/plugin-corner-cases.spec.ts.snap +0 -0
  7. package/e2e/__snapshots__/preprocess.test.ts.snap +870 -34
  8. package/e2e/__snapshots__/regression.test.ts.snap +20 -36
  9. package/e2e/__snapshots__/restricted-access.test.ts.snap +0 -10
  10. package/e2e/__snapshots__/rtl.spec.ts.snap +18 -6
  11. package/e2e/__snapshots__/search.test.ts.snap +1 -1
  12. package/e2e/__snapshots__/single-page.spec.ts.snap +9 -3
  13. package/e2e/__snapshots__/skip-html-extension.spec.ts.snap +4 -4
  14. package/e2e/__snapshots__/translation.spec.ts.snap +14 -16
  15. package/e2e/alternates.test.ts +35 -0
  16. package/e2e/bundles.spec.ts +1 -0
  17. package/e2e/errors.spec.ts +18 -8
  18. package/e2e/generate-map.spec.ts +6 -2
  19. package/e2e/include-toc.test.ts +1 -0
  20. package/e2e/load-custom-resources.spec.ts +1 -0
  21. package/e2e/metadata.spec.ts +1 -0
  22. package/e2e/plugin-corner-cases.spec.ts +1 -0
  23. package/e2e/preprocess.test.ts +9 -2
  24. package/e2e/redirects-validation.spec.ts +5 -4
  25. package/e2e/regression.test.ts +1 -0
  26. package/e2e/restricted-access.test.ts +3 -5
  27. package/e2e/rtl.spec.ts +1 -0
  28. package/e2e/search.test.ts +1 -0
  29. package/e2e/single-page.spec.ts +1 -0
  30. package/e2e/skip-html-extension.spec.ts +1 -0
  31. package/e2e/translation.spec.ts +18 -7
  32. package/fixtures/cliAdapter.ts +7 -3
  33. package/fixtures/globals.d.ts +1 -1
  34. package/fixtures/runners/binary.ts +5 -2
  35. package/fixtures/runners/index.ts +2 -1
  36. package/fixtures/runners/source.ts +1 -1
  37. package/fixtures/utils/file.ts +20 -16
  38. package/fixtures/utils/test.ts +20 -18
  39. package/mocks/alternates/input/.yfm +1 -0
  40. package/mocks/alternates/input/az/about.md +3 -0
  41. package/mocks/alternates/input/az/deep/test.md +3 -0
  42. package/mocks/alternates/input/az/index.yaml +3 -0
  43. package/mocks/alternates/input/az/toc.yaml +6 -0
  44. package/mocks/alternates/input/en/about.md +3 -0
  45. package/mocks/alternates/input/en/deep/test.md +3 -0
  46. package/mocks/alternates/input/en/index.yaml +3 -0
  47. package/mocks/alternates/input/en/toc.yaml +6 -0
  48. package/mocks/alternates/input/ru/about.md +8 -0
  49. package/mocks/alternates/input/ru/deep/test.md +3 -0
  50. package/mocks/alternates/input/ru/index.yaml +3 -0
  51. package/mocks/alternates/input/ru/toc.yaml +6 -0
  52. package/mocks/preprocess/input/_assets/1.svg +15 -0
  53. package/mocks/preprocess/input/autotitle.md +16 -0
  54. package/mocks/preprocess/input/images.md +92 -1
  55. package/mocks/preprocess/input/includes/level1.md +9 -0
  56. package/mocks/preprocess/input/includes/level11.md +1 -0
  57. package/mocks/preprocess/input/includes/sub/level2.md +7 -0
  58. package/mocks/preprocess/input/level0.md +7 -0
  59. package/mocks/preprocess/input/level1/level1.md +7 -0
  60. package/mocks/preprocess/input/level1/level2/level2.md +6 -0
  61. package/mocks/preprocess/input/level1/toc.yaml +5 -0
  62. package/mocks/preprocess/input/toc.yaml +8 -0
  63. package/mocks/translation/dir-files/input/ru/nested/toc.yaml +3 -3
  64. package/mocks/translation/dir-files/input/ru/nested/use_filtered_above.md +4 -0
  65. package/package.json +1 -1
@@ -25,7 +25,7 @@ exports[`Generate html document with correct lang and dir attributes. Load corre
25
25
  <body class="g-root g-root_theme_light">
26
26
  <div id="root"></div>
27
27
  <script type="application/json" id="diplodoc-state">
28
- {"data":{"leading":true,"data":{"title":"Documentation","links":[{"title":"Documentation","href":"page.html"}]},"meta":{"metadata":[{"name":"generator","content":"Diplodoc Platform vDIPLODOC-VERSION"}],"vcsPath":"index.yaml","sourcePath":"index.yaml"},"title":"Documentation"},"router":{"pathname":"index","depth":1,"base":"./"},"lang":"he","langs":["he"],"viewerInterface":{"toc":true,"search":true,"feedback":true}}
28
+ {"data":{"leading":true,"data":{"title":"Documentation","links":[{"title":"Documentation","href":"page.html"}]},"meta":{"metadata":[{"name":"generator","content":"Diplodoc Platform vDIPLODOC-VERSION"}],"vcsPath":"index.yaml"},"title":"Documentation"},"router":{"pathname":"index","depth":1,"base":"./"},"lang":"he","langs":["he"],"viewerInterface":{"toc":true,"search":true,"feedback":true}}
29
29
  </script>
30
30
  <script type="application/javascript">
31
31
  const data = document.querySelector('script#diplodoc-state');
@@ -53,7 +53,7 @@ exports[`Generate html document with correct lang and dir attributes. Load corre
53
53
  <body class="g-root g-root_theme_light">
54
54
  <div id="root"></div>
55
55
  <script type="application/json" id="diplodoc-state">
56
- {"data":{"leading":false,"html":"&lt;p&gt;תיעוד&lt;/p&gt;/n","meta":{"metadata":[{"name":"generator","content":"Diplodoc Platform vDIPLODOC-VERSION"}],"vcsPath":"page.md","sourcePath":"page.md"},"headings":[],"title":""},"router":{"pathname":"page","depth":1,"base":"./"},"lang":"he","langs":["he"],"viewerInterface":{"toc":true,"search":true,"feedback":true}}
56
+ {"data":{"leading":false,"html":"&lt;p&gt;תיעוד&lt;/p&gt;/n","meta":{"metadata":[{"name":"generator","content":"Diplodoc Platform vDIPLODOC-VERSION"}],"vcsPath":"page.md"},"headings":[],"title":""},"router":{"pathname":"page","depth":1,"base":"./"},"lang":"he","langs":["he"],"viewerInterface":{"toc":true,"search":true,"feedback":true}}
57
57
  </script>
58
58
  <script type="application/javascript">
59
59
  const data = document.querySelector('script#diplodoc-state');
@@ -92,13 +92,16 @@ exports[`Generate html document with correct lang and dir attributes. Load corre
92
92
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
93
93
  <base href="../" />
94
94
  <title>Documentation | Documentation</title>
95
+ <link rel="canonical" href="ar/index.html">
96
+ <link rel="alternate" href="en/index.html" hreflang="en" />
97
+ <link rel="alternate" href="ar/index.html" hreflang="ar" />
95
98
  <meta name="generator" content="Diplodoc Platform vDIPLODOC-VERSION">
96
99
  <style type="text/css">html, body {min-height:100vh; height:100vh;}</style>
97
100
  </head>
98
101
  <body class="g-root g-root_theme_light">
99
102
  <div id="root"></div>
100
103
  <script type="application/json" id="diplodoc-state">
101
- {"data":{"leading":true,"data":{"title":"Documentation","links":[{"title":"Documentation","href":"ar/page.html"}]},"meta":{"metadata":[{"name":"generator","content":"Diplodoc Platform vDIPLODOC-VERSION"}],"vcsPath":"ar/index.yaml","sourcePath":"ar/index.yaml"},"title":"Documentation"},"router":{"pathname":"ar/index","depth":2,"base":"../"},"lang":"ar","langs":["ar","en"],"viewerInterface":{"toc":true,"search":true,"feedback":true}}
104
+ {"data":{"leading":true,"data":{"title":"Documentation","links":[{"title":"Documentation","href":"ar/page.html"}]},"meta":{"metadata":[{"name":"generator","content":"Diplodoc Platform vDIPLODOC-VERSION"}],"alternate":[{"href":"en/index.html","hreflang":"en"},{"href":"ar/index.html","hreflang":"ar"}],"canonical":"ar/index.html","vcsPath":"ar/index.yaml"},"title":"Documentation"},"router":{"pathname":"ar/index","depth":2,"base":"../"},"lang":"ar","langs":["ar","en"],"viewerInterface":{"toc":true,"search":true,"feedback":true}}
102
105
  </script>
103
106
  <script type="application/javascript">
104
107
  const data = document.querySelector('script#diplodoc-state');
@@ -120,13 +123,16 @@ exports[`Generate html document with correct lang and dir attributes. Load corre
120
123
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
121
124
  <base href="../" />
122
125
  <title>Documentation</title>
126
+ <link rel="canonical" href="ar/page.html">
127
+ <link rel="alternate" href="en/page.html" hreflang="en" />
128
+ <link rel="alternate" href="ar/page.html" hreflang="ar" />
123
129
  <meta name="generator" content="Diplodoc Platform vDIPLODOC-VERSION">
124
130
  <style type="text/css">html, body {min-height:100vh; height:100vh;}</style>
125
131
  </head>
126
132
  <body class="g-root g-root_theme_light">
127
133
  <div id="root"></div>
128
134
  <script type="application/json" id="diplodoc-state">
129
- {"data":{"leading":false,"html":"&lt;p&gt;توثيق&lt;/p&gt;/n","meta":{"metadata":[{"name":"generator","content":"Diplodoc Platform vDIPLODOC-VERSION"}],"vcsPath":"ar/page.md","sourcePath":"ar/page.md"},"headings":[],"title":""},"router":{"pathname":"ar/page","depth":2,"base":"../"},"lang":"ar","langs":["ar","en"],"viewerInterface":{"toc":true,"search":true,"feedback":true}}
135
+ {"data":{"leading":false,"html":"&lt;p&gt;توثيق&lt;/p&gt;/n","meta":{"metadata":[{"name":"generator","content":"Diplodoc Platform vDIPLODOC-VERSION"}],"alternate":[{"href":"en/page.html","hreflang":"en"},{"href":"ar/page.html","hreflang":"ar"}],"canonical":"ar/page.html","vcsPath":"ar/page.md"},"headings":[],"title":""},"router":{"pathname":"ar/page","depth":2,"base":"../"},"lang":"ar","langs":["ar","en"],"viewerInterface":{"toc":true,"search":true,"feedback":true}}
130
136
  </script>
131
137
  <script type="application/javascript">
132
138
  const data = document.querySelector('script#diplodoc-state');
@@ -150,13 +156,16 @@ exports[`Generate html document with correct lang and dir attributes. Load corre
150
156
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
151
157
  <base href="../" />
152
158
  <title>Documentation | Documentation</title>
159
+ <link rel="canonical" href="en/index.html">
160
+ <link rel="alternate" href="en/index.html" hreflang="en" />
161
+ <link rel="alternate" href="ar/index.html" hreflang="ar" />
153
162
  <meta name="generator" content="Diplodoc Platform vDIPLODOC-VERSION">
154
163
  <style type="text/css">html, body {min-height:100vh; height:100vh;}</style>
155
164
  </head>
156
165
  <body class="g-root g-root_theme_light">
157
166
  <div id="root"></div>
158
167
  <script type="application/json" id="diplodoc-state">
159
- {"data":{"leading":true,"data":{"title":"Documentation","description":"","links":[{"title":"Getting started with Documentation","description":"This guide will show you the basics of working with Documentation","href":"en/page.html"}]},"meta":{"metadata":[{"name":"generator","content":"Diplodoc Platform vDIPLODOC-VERSION"}],"title":"Documentation","noIndex":true,"vcsPath":"en/index.yaml","sourcePath":"en/index.yaml"},"title":"Documentation"},"router":{"pathname":"en/index","depth":2,"base":"../"},"lang":"en","langs":["ar","en"],"viewerInterface":{"toc":true,"search":true,"feedback":true}}
168
+ {"data":{"leading":true,"data":{"title":"Documentation","description":"","links":[{"title":"Getting started with Documentation","description":"This guide will show you the basics of working with Documentation","href":"en/page.html"}]},"meta":{"metadata":[{"name":"generator","content":"Diplodoc Platform vDIPLODOC-VERSION"}],"alternate":[{"href":"en/index.html","hreflang":"en"},{"href":"ar/index.html","hreflang":"ar"}],"canonical":"en/index.html","title":"Documentation","noIndex":true,"vcsPath":"en/index.yaml"},"title":"Documentation"},"router":{"pathname":"en/index","depth":2,"base":"../"},"lang":"en","langs":["ar","en"],"viewerInterface":{"toc":true,"search":true,"feedback":true}}
160
169
  </script>
161
170
  <script type="application/javascript">
162
171
  const data = document.querySelector('script#diplodoc-state');
@@ -178,6 +187,9 @@ exports[`Generate html document with correct lang and dir attributes. Load corre
178
187
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
179
188
  <base href="../" />
180
189
  <title>Documentation</title>
190
+ <link rel="canonical" href="en/page.html">
191
+ <link rel="alternate" href="en/page.html" hreflang="en" />
192
+ <link rel="alternate" href="ar/page.html" hreflang="ar" />
181
193
  <meta name="generator" content="Diplodoc Platform vDIPLODOC-VERSION">
182
194
  <meta name="yfm" content="builder">
183
195
  <style type="text/css">html, body {min-height:100vh; height:100vh;}</style>
@@ -185,7 +197,7 @@ exports[`Generate html document with correct lang and dir attributes. Load corre
185
197
  <body class="g-root g-root_theme_light">
186
198
  <div id="root"></div>
187
199
  <script type="application/json" id="diplodoc-state">
188
- {"data":{"leading":false,"html":"&lt;p&gt;Lorem&lt;/p&gt;/n","meta":{"metadata":[{"name":"generator","content":"Diplodoc Platform vDIPLODOC-VERSION"},{"name":"yfm","content":"builder"}],"vcsPath":"en/page.md","sourcePath":"en/page.md"},"headings":[],"title":""},"router":{"pathname":"en/page","depth":2,"base":"../"},"lang":"en","langs":["ar","en"],"viewerInterface":{"toc":true,"search":true,"feedback":true}}
200
+ {"data":{"leading":false,"html":"&lt;p&gt;Lorem&lt;/p&gt;/n","meta":{"metadata":[{"name":"generator","content":"Diplodoc Platform vDIPLODOC-VERSION"},{"name":"yfm","content":"builder"}],"alternate":[{"href":"en/page.html","hreflang":"en"},{"href":"ar/page.html","hreflang":"ar"}],"canonical":"en/page.html","vcsPath":"en/page.md"},"headings":[],"title":""},"router":{"pathname":"en/page","depth":2,"base":"../"},"lang":"en","langs":["ar","en"],"viewerInterface":{"toc":true,"search":true,"feedback":true}}
189
201
  </script>
190
202
  <script type="application/javascript">
191
203
  const data = document.querySelector('script#diplodoc-state');
@@ -39,7 +39,7 @@ exports[`Local search > internal 2`] = `
39
39
  <body class="g-root g-root_theme_light">
40
40
  <div id="root"></div>
41
41
  <script type="application/json" id="diplodoc-state">
42
- {"data":{"leading":false,"html":"&lt;p&gt;Content&lt;/p&gt;/n","meta":{"metadata":[{"name":"generator","content":"Diplodoc Platform vDIPLODOC-VERSION"}],"vcsPath":"index.md","sourcePath":"index.md"},"headings":[],"title":"Header"},"router":{"pathname":"index","depth":1,"base":"./"},"lang":"en","langs":["en","ru"],"viewerInterface":{"toc-header":false,"favicon-src":"https://storage.yandexcloud.net/diplodoc-www-assets/favicon/favicon.ico","toc":false,"search":true,"feedback":true},"search":{"provider":"local","tolerance":2,"confidense":"phrased","enabled":true,"api":"_search/api.js","link":"_search/en/index.html"}}
42
+ {"data":{"leading":false,"html":"&lt;p&gt;Content&lt;/p&gt;/n","meta":{"metadata":[{"name":"generator","content":"Diplodoc Platform vDIPLODOC-VERSION"}],"vcsPath":"index.md"},"headings":[],"title":"Header"},"router":{"pathname":"index","depth":1,"base":"./"},"lang":"en","langs":["en","ru"],"viewerInterface":{"toc-header":false,"favicon-src":"https://storage.yandexcloud.net/diplodoc-www-assets/favicon/favicon.ico","toc":false,"search":true,"feedback":true},"search":{"provider":"local","tolerance":2,"confidense":"phrased","enabled":true,"api":"_search/api.js","link":"_search/en/index.html"}}
43
43
  </script>
44
44
  <script type="application/javascript">
45
45
  const data = document.querySelector('script#diplodoc-state');
@@ -41,13 +41,15 @@ exports[`Single page mode > simple md2html single page with lang dirs 2`] = `
41
41
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
42
42
  <base href="../" />
43
43
  <title>Documentation | Documentation</title>
44
+ <link rel="canonical" href="ru/index.html">
45
+ <link rel="alternate" href="ru/index.html" hreflang="ru" />
44
46
  <meta name="generator" content="Diplodoc Platform vDIPLODOC-VERSION">
45
47
  <style type="text/css">html, body {min-height:100vh; height:100vh;}</style>
46
48
  </head>
47
49
  <body class="g-root g-root_theme_light">
48
50
  <div id="root"></div>
49
51
  <script type="application/json" id="diplodoc-state">
50
- {"data":{"leading":true,"data":{"title":"Documentation","description":"","links":[{"title":"Getting started with Documentation","description":"This guide will show you the basics of working with Documentation","href":"ru/page.html"}]},"meta":{"metadata":[{"name":"generator","content":"Diplodoc Platform vDIPLODOC-VERSION"}],"title":"Documentation","noIndex":true,"vcsPath":"ru/index.yaml","sourcePath":"ru/index.yaml"},"title":"Documentation"},"router":{"pathname":"ru/index","depth":2,"base":"../"},"lang":"ru","langs":["ru"],"viewerInterface":{"toc":true,"search":true,"feedback":true}}
52
+ {"data":{"leading":true,"data":{"title":"Documentation","description":"","links":[{"title":"Getting started with Documentation","description":"This guide will show you the basics of working with Documentation","href":"ru/page.html"}]},"meta":{"metadata":[{"name":"generator","content":"Diplodoc Platform vDIPLODOC-VERSION"}],"alternate":[{"href":"ru/index.html","hreflang":"ru"}],"canonical":"ru/index.html","title":"Documentation","noIndex":true,"vcsPath":"ru/index.yaml"},"title":"Documentation"},"router":{"pathname":"ru/index","depth":2,"base":"../"},"lang":"ru","langs":["ru"],"viewerInterface":{"toc":true,"search":true,"feedback":true}}
51
53
  </script>
52
54
  <script type="application/javascript">
53
55
  const data = document.querySelector('script#diplodoc-state');
@@ -69,6 +71,8 @@ exports[`Single page mode > simple md2html single page with lang dirs 3`] = `
69
71
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
70
72
  <base href="../" />
71
73
  <title>Page Title | Documentation</title>
74
+ <link rel="canonical" href="ru/page.html">
75
+ <link rel="alternate" href="ru/page.html" hreflang="ru" />
72
76
  <meta name="generator" content="Diplodoc Platform vDIPLODOC-VERSION">
73
77
  <meta name="yfm" content="builder in page">
74
78
  <meta name="description" content="Some test description">
@@ -78,7 +82,7 @@ exports[`Single page mode > simple md2html single page with lang dirs 3`] = `
78
82
  <body class="g-root g-root_theme_light">
79
83
  <div id="root"></div>
80
84
  <script type="application/json" id="diplodoc-state">
81
- {"data":{"leading":false,"html":"&lt;p&gt;Lorem&lt;/p&gt;/n","meta":{"metadata":[{"name":"generator","content":"Diplodoc Platform vDIPLODOC-VERSION"},{"name":"yfm","content":"builder in page"},{"name":"description","content":"Some test description"}],"title":"Page Title","description":"Some test description","interface":{"toc":false,"favicon-src":"/favicon.ico"},"vcsPath":"ru/page.md","sourcePath":"ru/page.md"},"headings":[],"title":"Page Title"},"router":{"pathname":"ru/page","depth":2,"base":"../"},"lang":"ru","langs":["ru"],"viewerInterface":{"toc":false,"search":true,"feedback":true,"favicon-src":"/favicon.ico"}}
85
+ {"data":{"leading":false,"html":"&lt;p&gt;Lorem&lt;/p&gt;/n","meta":{"metadata":[{"name":"generator","content":"Diplodoc Platform vDIPLODOC-VERSION"},{"name":"yfm","content":"builder in page"},{"name":"description","content":"Some test description"}],"alternate":[{"href":"ru/page.html","hreflang":"ru"}],"canonical":"ru/page.html","title":"Page Title","description":"Some test description","interface":{"toc":false,"favicon-src":"/favicon.ico"},"vcsPath":"ru/page.md"},"headings":[],"title":"Page Title"},"router":{"pathname":"ru/page","depth":2,"base":"../"},"lang":"ru","langs":["ru"],"viewerInterface":{"toc":false,"search":true,"feedback":true,"favicon-src":"/favicon.ico"}}
82
86
  </script>
83
87
  <script type="application/javascript">
84
88
  const data = document.querySelector('script#diplodoc-state');
@@ -100,13 +104,15 @@ exports[`Single page mode > simple md2html single page with lang dirs 4`] = `
100
104
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
101
105
  <base href="../../" />
102
106
  <title>Documentation</title>
107
+ <link rel="canonical" href="ru/project/config.html">
108
+ <link rel="alternate" href="ru/project/config.html" hreflang="ru" />
103
109
  <meta name="generator" content="Diplodoc Platform vDIPLODOC-VERSION">
104
110
  <style type="text/css">html, body {min-height:100vh; height:100vh;}</style>
105
111
  </head>
106
112
  <body class="g-root g-root_theme_light">
107
113
  <div id="root"></div>
108
114
  <script type="application/json" id="diplodoc-state">
109
- {"data":{"leading":false,"html":"&lt;p&gt;Lorem&lt;/p&gt;/n","meta":{"metadata":[{"name":"generator","content":"Diplodoc Platform vDIPLODOC-VERSION"}],"vcsPath":"ru/project/config.md","sourcePath":"ru/project/config.md"},"headings":[],"title":""},"router":{"pathname":"ru/project/config","depth":3,"base":"../../"},"lang":"ru","langs":["ru"],"viewerInterface":{"toc":true,"search":true,"feedback":true}}
115
+ {"data":{"leading":false,"html":"&lt;p&gt;Lorem&lt;/p&gt;/n","meta":{"metadata":[{"name":"generator","content":"Diplodoc Platform vDIPLODOC-VERSION"}],"alternate":[{"href":"ru/project/config.html","hreflang":"ru"}],"canonical":"ru/project/config.html","vcsPath":"ru/project/config.md"},"headings":[],"title":""},"router":{"pathname":"ru/project/config","depth":3,"base":"../../"},"lang":"ru","langs":["ru"],"viewerInterface":{"toc":true,"search":true,"feedback":true}}
110
116
  </script>
111
117
  <script type="application/javascript">
112
118
  const data = document.querySelector('script#diplodoc-state');
@@ -31,7 +31,7 @@ exports[`Skip html extension > transforms links correctly 2`] = `
31
31
  <body class="g-root g-root_theme_light">
32
32
  <div id="root"></div>
33
33
  <script type="application/json" id="diplodoc-state">
34
- {"data":{"leading":false,"html":"","meta":{"metadata":[{"name":"generator","content":"Diplodoc Platform vDIPLODOC-VERSION"}],"vcsPath":"folder/index.md","sourcePath":"folder/index.md"},"headings":[],"title":"Page 3"},"router":{"pathname":"folder/index","depth":2,"base":"../"},"lang":"ru","langs":["ru"],"viewerInterface":{"toc":true,"search":true,"feedback":true}}
34
+ {"data":{"leading":false,"html":"","meta":{"metadata":[{"name":"generator","content":"Diplodoc Platform vDIPLODOC-VERSION"}],"vcsPath":"folder/index.md"},"headings":[],"title":"Page 3"},"router":{"pathname":"folder/index","depth":2,"base":"../"},"lang":"ru","langs":["ru"],"viewerInterface":{"toc":true,"search":true,"feedback":true}}
35
35
  </script>
36
36
  <script type="application/javascript">
37
37
  const data = document.querySelector('script#diplodoc-state');
@@ -59,7 +59,7 @@ exports[`Skip html extension > transforms links correctly 3`] = `
59
59
  <body class="g-root g-root_theme_light">
60
60
  <div id="root"></div>
61
61
  <script type="application/json" id="diplodoc-state">
62
- {"data":{"leading":false,"html":"&lt;p&gt;&lt;a href=\\"page1\\"&gt;Link 1&lt;/a&gt;&lt;br /&gt;/n&lt;a href=\\"page2\\"&gt;Link 2&lt;/a&gt;&lt;/p&gt;/n","meta":{"metadata":[{"name":"generator","content":"Diplodoc Platform vDIPLODOC-VERSION"}],"vcsPath":"index-test-html/index.md","sourcePath":"index-test-html/index.md"},"headings":[],"title":"Folder"},"router":{"pathname":"index-test-html/index","depth":2,"base":"../"},"lang":"ru","langs":["ru"],"viewerInterface":{"toc":true,"search":true,"feedback":true}}
62
+ {"data":{"leading":false,"html":"&lt;p&gt;&lt;a href=\\"page1\\"&gt;Link 1&lt;/a&gt;&lt;br /&gt;/n&lt;a href=\\"page2\\"&gt;Link 2&lt;/a&gt;&lt;/p&gt;/n","meta":{"metadata":[{"name":"generator","content":"Diplodoc Platform vDIPLODOC-VERSION"}],"vcsPath":"index-test-html/index.md"},"headings":[],"title":"Folder"},"router":{"pathname":"index-test-html/index","depth":2,"base":"../"},"lang":"ru","langs":["ru"],"viewerInterface":{"toc":true,"search":true,"feedback":true}}
63
63
  </script>
64
64
  <script type="application/javascript">
65
65
  const data = document.querySelector('script#diplodoc-state');
@@ -107,7 +107,7 @@ exports[`Skip html extension > transforms links correctly 5`] = `
107
107
  <body class="g-root g-root_theme_light">
108
108
  <div id="root"></div>
109
109
  <script type="application/json" id="diplodoc-state">
110
- {"data":{"leading":false,"html":"&lt;p&gt;&lt;a href=\\"page2#hash\\"&gt;Link&lt;/a&gt;&lt;/p&gt;/n","meta":{"metadata":[{"name":"generator","content":"Diplodoc Platform vDIPLODOC-VERSION"}],"vcsPath":"page1.md","sourcePath":"page1.md"},"headings":[],"title":"Page 1"},"router":{"pathname":"page1","depth":1,"base":"./"},"lang":"ru","langs":["ru"],"viewerInterface":{"toc":true,"search":true,"feedback":true}}
110
+ {"data":{"leading":false,"html":"&lt;p&gt;&lt;a href=\\"page2#hash\\"&gt;Link&lt;/a&gt;&lt;/p&gt;/n","meta":{"metadata":[{"name":"generator","content":"Diplodoc Platform vDIPLODOC-VERSION"}],"vcsPath":"page1.md"},"headings":[],"title":"Page 1"},"router":{"pathname":"page1","depth":1,"base":"./"},"lang":"ru","langs":["ru"],"viewerInterface":{"toc":true,"search":true,"feedback":true}}
111
111
  </script>
112
112
  <script type="application/javascript">
113
113
  const data = document.querySelector('script#diplodoc-state');
@@ -135,7 +135,7 @@ exports[`Skip html extension > transforms links correctly 6`] = `
135
135
  <body class="g-root g-root_theme_light">
136
136
  <div id="root"></div>
137
137
  <script type="application/json" id="diplodoc-state">
138
- {"data":{"leading":false,"html":"&lt;h2 id=\\"hash\\"&gt;&lt;a href=\\"page2#hash\\" class=\\"yfm-anchor\\" aria-hidden=\\"true\\"&gt;&lt;span class=\\"visually-hidden\\" data-no-index=\\"true\\"&gt;hash&lt;/span&gt;&lt;/a&gt;hash&lt;/h2&gt;/n&lt;p&gt;&lt;a href=\\"folder/\\"&gt;Link&lt;/a&gt;&lt;br /&gt;/n&lt;a href=\\"https://example.com\\" target=\\"_blank\\" rel=\\"noreferrer noopener\\"&gt;External link&lt;/a&gt;&lt;/p&gt;/n","meta":{"metadata":[{"name":"generator","content":"Diplodoc Platform vDIPLODOC-VERSION"}],"vcsPath":"page2.md","sourcePath":"page2.md"},"headings":[{"title":"hash","href":"page2#hash","level":2}],"title":"Page 2"},"router":{"pathname":"page2","depth":1,"base":"./"},"lang":"ru","langs":["ru"],"viewerInterface":{"toc":true,"search":true,"feedback":true}}
138
+ {"data":{"leading":false,"html":"&lt;h2 id=\\"hash\\"&gt;&lt;a href=\\"page2#hash\\" class=\\"yfm-anchor\\" aria-hidden=\\"true\\"&gt;&lt;span class=\\"visually-hidden\\" data-no-index=\\"true\\"&gt;hash&lt;/span&gt;&lt;/a&gt;hash&lt;/h2&gt;/n&lt;p&gt;&lt;a href=\\"folder/\\"&gt;Link&lt;/a&gt;&lt;br /&gt;/n&lt;a href=\\"https://example.com\\" target=\\"_blank\\" rel=\\"noreferrer noopener\\"&gt;External link&lt;/a&gt;&lt;/p&gt;/n","meta":{"metadata":[{"name":"generator","content":"Diplodoc Platform vDIPLODOC-VERSION"}],"vcsPath":"page2.md"},"headings":[{"title":"hash","href":"page2#hash","level":2}],"title":"Page 2"},"router":{"pathname":"page2","depth":1,"base":"./"},"lang":"ru","langs":["ru"],"viewerInterface":{"toc":true,"search":true,"feedback":true}}
139
139
  </script>
140
140
  <script type="application/javascript">
141
141
  const data = document.querySelector('script#diplodoc-state');
@@ -17,7 +17,6 @@ metadata:
17
17
  - name: generator
18
18
  content: Diplodoc Platform vDIPLODOC-VERSION
19
19
  vcsPath: index.md
20
- sourcePath: index.md
21
20
  ---
22
21
  ## Index header
23
22
 
@@ -34,7 +33,6 @@ metadata:
34
33
  - name: generator
35
34
  content: Diplodoc Platform vDIPLODOC-VERSION
36
35
  vcsPath: no-translate.md
37
- sourcePath: no-translate.md
38
36
  ---
39
37
  # No-translate directive
40
38
 
@@ -98,7 +96,6 @@ metadata:
98
96
  - name: generator
99
97
  content: Diplodoc Platform vDIPLODOC-VERSION
100
98
  vcsPath: openapi/index.md
101
- sourcePath: openapi/index.md
102
99
  ---
103
100
  # OpenAPI definition
104
101
 
@@ -199,7 +196,6 @@ metadata:
199
196
  - name: generator
200
197
  content: Diplodoc Platform vDIPLODOC-VERSION
201
198
  vcsPath: openapi/test-controller/getWithPayloadResponse.md
202
- sourcePath: openapi/test-controller/getWithPayloadResponse.md
203
199
  ---
204
200
  <div class="openapi">
205
201
 
@@ -285,7 +281,6 @@ metadata:
285
281
  - name: generator
286
282
  content: Diplodoc Platform vDIPLODOC-VERSION
287
283
  vcsPath: openapi/test-controller/index.md
288
- sourcePath: openapi/test-controller/index.md
289
284
  ---
290
285
  # test-controller
291
286
 
@@ -333,7 +328,6 @@ metadata:
333
328
  - name: generator
334
329
  content: Diplodoc Platform vDIPLODOC-VERSION
335
330
  vcsPath: index.md
336
- sourcePath: index.md
337
331
  ---
338
332
  ## Index header
339
333
 
@@ -350,7 +344,6 @@ metadata:
350
344
  - name: generator
351
345
  content: Diplodoc Platform vDIPLODOC-VERSION
352
346
  vcsPath: no-translate.md
353
- sourcePath: no-translate.md
354
347
  ---
355
348
  # No-translate directive
356
349
 
@@ -414,7 +407,6 @@ metadata:
414
407
  - name: generator
415
408
  content: Diplodoc Platform vDIPLODOC-VERSION
416
409
  vcsPath: openapi/index.md
417
- sourcePath: openapi/index.md
418
410
  ---
419
411
  # OpenAPI definition
420
412
 
@@ -515,7 +507,6 @@ metadata:
515
507
  - name: generator
516
508
  content: Diplodoc Platform vDIPLODOC-VERSION
517
509
  vcsPath: openapi/test-controller/getWithPayloadResponse.md
518
- sourcePath: openapi/test-controller/getWithPayloadResponse.md
519
510
  ---
520
511
  <div class="openapi">
521
512
 
@@ -601,7 +592,6 @@ metadata:
601
592
  - name: generator
602
593
  content: Diplodoc Platform vDIPLODOC-VERSION
603
594
  vcsPath: openapi/test-controller/index.md
604
- sourcePath: openapi/test-controller/index.md
605
595
  ---
606
596
  # test-controller
607
597
 
@@ -662,6 +652,8 @@ exports[`Translate command > do not filter files on extract > filelist 1`] = `
662
652
  "es/nested/syntax/lists.md.xliff",
663
653
  "es/nested/toc.yaml.skl",
664
654
  "es/nested/toc.yaml.xliff",
655
+ "es/nested/use_filtered_above.md.skl",
656
+ "es/nested/use_filtered_above.md.xliff",
665
657
  "es/no-var-page.md.skl",
666
658
  "es/no-var-page.md.xliff",
667
659
  "es/not-in-toc.md.skl",
@@ -1186,16 +1178,18 @@ exports[`Translate command > filter files on extract > filelist 1`] = `
1186
1178
  "es/index.md.xliff",
1187
1179
  "es/nested/a1.md.skl",
1188
1180
  "es/nested/a1.md.xliff",
1189
- "es/nested/index-yfm.md.skl",
1190
- "es/nested/index-yfm.md.xliff",
1191
1181
  "es/nested/index.yaml.skl",
1192
1182
  "es/nested/index.yaml.xliff",
1193
1183
  "es/nested/syntax/base.md.skl",
1194
1184
  "es/nested/syntax/base.md.xliff",
1185
+ "es/nested/syntax/index.md.skl",
1186
+ "es/nested/syntax/index.md.xliff",
1195
1187
  "es/nested/syntax/lists.md.skl",
1196
1188
  "es/nested/syntax/lists.md.xliff",
1197
1189
  "es/nested/toc.yaml.skl",
1198
1190
  "es/nested/toc.yaml.xliff",
1191
+ "es/nested/use_filtered_above.md.skl",
1192
+ "es/nested/use_filtered_above.md.xliff",
1199
1193
  "es/no-var-page.md.skl",
1200
1194
  "es/no-var-page.md.xliff",
1201
1195
  "es/to-be-excluded.md.skl",
@@ -1215,16 +1209,18 @@ exports[`Translate command > filter files on extract with extra exclude option >
1215
1209
  "es/index.md.xliff",
1216
1210
  "es/nested/a1.md.skl",
1217
1211
  "es/nested/a1.md.xliff",
1218
- "es/nested/index-yfm.md.skl",
1219
- "es/nested/index-yfm.md.xliff",
1220
1212
  "es/nested/index.yaml.skl",
1221
1213
  "es/nested/index.yaml.xliff",
1222
1214
  "es/nested/syntax/base.md.skl",
1223
1215
  "es/nested/syntax/base.md.xliff",
1216
+ "es/nested/syntax/index.md.skl",
1217
+ "es/nested/syntax/index.md.xliff",
1224
1218
  "es/nested/syntax/lists.md.skl",
1225
1219
  "es/nested/syntax/lists.md.xliff",
1226
1220
  "es/nested/toc.yaml.skl",
1227
1221
  "es/nested/toc.yaml.xliff",
1222
+ "es/nested/use_filtered_above.md.skl",
1223
+ "es/nested/use_filtered_above.md.xliff",
1228
1224
  "es/no-var-page.md.skl",
1229
1225
  "es/no-var-page.md.xliff",
1230
1226
  "es/toc.yaml.skl",
@@ -1244,16 +1240,18 @@ exports[`Translate command > filter files on extract with extra vars option > fi
1244
1240
  "es/index.md.xliff",
1245
1241
  "es/nested/a1.md.skl",
1246
1242
  "es/nested/a1.md.xliff",
1247
- "es/nested/index-yfm.md.skl",
1248
- "es/nested/index-yfm.md.xliff",
1249
1243
  "es/nested/index.yaml.skl",
1250
1244
  "es/nested/index.yaml.xliff",
1251
1245
  "es/nested/syntax/base.md.skl",
1252
1246
  "es/nested/syntax/base.md.xliff",
1247
+ "es/nested/syntax/index.md.skl",
1248
+ "es/nested/syntax/index.md.xliff",
1253
1249
  "es/nested/syntax/lists.md.skl",
1254
1250
  "es/nested/syntax/lists.md.xliff",
1255
1251
  "es/nested/toc.yaml.skl",
1256
1252
  "es/nested/toc.yaml.xliff",
1253
+ "es/nested/use_filtered_above.md.skl",
1254
+ "es/nested/use_filtered_above.md.xliff",
1257
1255
  "es/no-var-page.md.skl",
1258
1256
  "es/no-var-page.md.xliff",
1259
1257
  "es/to-be-excluded.md.skl",
@@ -0,0 +1,35 @@
1
+ import {describe, it} from 'vitest';
2
+
3
+ import {TestAdapter, compareDirectories, getTestPaths} from '../fixtures';
4
+
5
+ describe('Alternates', () => {
6
+ it('skip-html-extension', async () => {
7
+ const {inputPath, outputPath} = getTestPaths('mocks/alternates');
8
+
9
+ await TestAdapter.testBuildPass(inputPath, outputPath, {
10
+ md2md: false,
11
+ md2html: true,
12
+ args: '-j2 --skip-html-extension',
13
+ });
14
+
15
+ await compareDirectories(outputPath);
16
+ });
17
+
18
+ it('internal', async () => {
19
+ const {inputPath, outputPath} = getTestPaths('mocks/alternates');
20
+
21
+ await TestAdapter.testBuildPass(inputPath, outputPath, {
22
+ md2md: true,
23
+ md2html: false,
24
+ args: '-j2',
25
+ });
26
+ await TestAdapter.testBuildPass(outputPath, outputPath + '-html', {
27
+ md2md: false,
28
+ md2html: true,
29
+ args: '-j2',
30
+ });
31
+
32
+ await compareDirectories(outputPath);
33
+ await compareDirectories(outputPath + '-html');
34
+ });
35
+ });
@@ -1,4 +1,5 @@
1
1
  import {describe, it} from 'vitest';
2
+
2
3
  import {TestAdapter, compareDirectories, getTestPaths} from '../fixtures';
3
4
 
4
5
  describe('Check bundles', () => {
@@ -1,45 +1,55 @@
1
1
  import type {Report} from '../fixtures/runners/types';
2
2
 
3
3
  import {describe, expect, it} from 'vitest';
4
+
4
5
  import {TestAdapter, getTestPaths} from '../fixtures';
5
6
 
6
7
  type TestResult = {
7
8
  md: Report;
8
9
  html: Report;
9
- }
10
+ };
10
11
 
11
12
  function test(path: string, expect: Function) {
12
13
  it(path, async () => {
13
14
  const {inputPath, outputPath} = getTestPaths(path);
14
15
 
15
16
  const md = await TestAdapter.build.run(inputPath, outputPath, ['-j2', '-f', 'md']);
16
- const html = await TestAdapter.build.run(inputPath, outputPath + '-html', ['-j2', '-f', 'html']);
17
+ const html = await TestAdapter.build.run(inputPath, outputPath + '-html', [
18
+ '-j2',
19
+ '-f',
20
+ 'html',
21
+ ]);
17
22
  return expect({md, html});
18
23
  });
19
24
  }
20
25
 
21
-
22
26
  describe('Errors', () => {
23
27
  test('mocks/errors/unreachable-link', ({html}: TestResult) => {
24
28
  expectErrors(html, [
25
29
  'ERR index.md: 1: YFM003 / unreachable-link Link is unreachable [Context: "[Unreachable link: "exists.html"][existing file](./exists.md)"]',
26
- 'ERR index.md: 2: YFM003 / unreachable-link Link is unreachable [Context: "[Unreachable link: "missed.html"][missed file](./missed.md)"]'
30
+ 'ERR index.md: 2: YFM003 / unreachable-link Link is unreachable [Context: "[Unreachable link: "missed.html"][missed file](./missed.md)"]',
27
31
  ]);
28
32
  });
29
33
 
30
34
  it('translate extract with filtered links', async () => {
31
35
  const {inputPath, outputPath} = getTestPaths('mocks/errors/extract-filtered-link');
32
36
 
33
- const result = await TestAdapter.extract.run(inputPath, outputPath, ['--source', 'ru-RU', '--target', 'es-ES', '--filter']);
34
-
37
+ const result = await TestAdapter.extract.run(inputPath, outputPath, [
38
+ '--source',
39
+ 'ru-RU',
40
+ '--target',
41
+ 'es-ES',
42
+ '--filter',
43
+ ]);
44
+
35
45
  expect(result.code).toEqual(1);
36
-
46
+
37
47
  expect(result.errors).toEqual([
38
48
  "ERR File index.md contains link to filtered.md, which was filtered from toc.yaml or it's not been included initially",
39
49
  "ERR File index.md contains link to filtered2.md, which was filtered from toc.yaml or it's not been included initially",
40
50
  "ERR File index.md contains link to filtered2.md, which was filtered from toc.yaml or it's not been included initially",
41
51
  "ERR File index.md contains link to filtered3.md, which was filtered from toc.yaml or it's not been included initially",
42
- ])
52
+ ]);
43
53
  });
44
54
  });
45
55
 
@@ -1,8 +1,9 @@
1
1
  import {describe, expect, test} from 'vitest';
2
- import {TestAdapter, bundleless, getFileContent, getTestPaths} from '../fixtures';
3
2
  import {join} from 'node:path';
4
3
  import {readFile} from 'node:fs/promises';
5
4
 
5
+ import {TestAdapter, bundleless, getFileContent, getTestPaths} from '../fixtures';
6
+
6
7
  const generateMapTestTemplate = (
7
8
  testTitle: string,
8
9
  testRootPath: string,
@@ -19,7 +20,10 @@ const generateMapTestTemplate = (
19
20
  });
20
21
 
21
22
  const content = getFileContent(join(outputPath, 'files.json'));
22
- const manifestContent = await readFile(join(outputPath, 'yfm-build-manifest.json'), 'utf-8');
23
+ const manifestContent = await readFile(
24
+ join(outputPath, 'yfm-build-manifest.json'),
25
+ 'utf-8',
26
+ );
23
27
 
24
28
  expect(bundleless(content)).toMatchSnapshot();
25
29
  expect(JSON.parse(manifestContent)).toMatchSnapshot();
@@ -1,4 +1,5 @@
1
1
  import {describe, test} from 'vitest';
2
+
2
3
  import {TestAdapter, compareDirectories, getTestPaths} from '../fixtures';
3
4
 
4
5
  describe('Include toc', () => {
@@ -1,4 +1,5 @@
1
1
  import {describe, test} from 'vitest';
2
+
2
3
  import {TestAdapter, compareDirectories, getTestPaths} from '../fixtures';
3
4
 
4
5
  const generateMapTestTemplate = (
@@ -1,4 +1,5 @@
1
1
  import {describe, test} from 'vitest';
2
+
2
3
  import {TestAdapter, compareDirectories, getTestPaths} from '../fixtures';
3
4
 
4
5
  const generateMapTestTemplate = (
@@ -1,4 +1,5 @@
1
1
  import {describe, it} from 'vitest';
2
+
2
3
  import {TestAdapter, compareDirectories, getTestPaths} from '../fixtures';
3
4
 
4
5
  describe('plugin corner cases:', () => {
@@ -1,4 +1,5 @@
1
1
  import {describe, test} from 'vitest';
2
+
2
3
  import {TestAdapter, compareDirectories, getTestPaths} from '../fixtures';
3
4
 
4
5
  const generateFilesYamlTestTemplate = (
@@ -9,7 +10,7 @@ const generateFilesYamlTestTemplate = (
9
10
  test(testTitle, async () => {
10
11
  const {inputPath, outputPath} = getTestPaths(testRootPath);
11
12
  await TestAdapter.testBuildPass(inputPath, outputPath, {
12
- md2md:true,
13
+ md2md: true,
13
14
  md2html: false,
14
15
  args: args.join(' '),
15
16
  });
@@ -24,10 +25,16 @@ const generateFilesYamlTestTemplate = (
24
25
 
25
26
  describe('Preprocess', () => {
26
27
  generateFilesYamlTestTemplate('HashIncludes=true,Autotitles=false', 'mocks/preprocess', [
27
- '--no-merge-autotitles'
28
+ '--no-merge-autotitles',
28
29
  ]);
29
30
 
30
31
  generateFilesYamlTestTemplate('HashIncludes=true,Autotitles=true', 'mocks/preprocess');
31
32
 
33
+ generateFilesYamlTestTemplate(
34
+ 'HashIncludes=true,Autotitles=true,Svg=true',
35
+ 'mocks/preprocess',
36
+ ['--merge-svg'],
37
+ );
38
+
32
39
  // generateFilesYamlTestTemplate('Nested toc restricted access', 'mocks/preprocess/test3');
33
40
  });
@@ -1,4 +1,5 @@
1
1
  import {describe, expect, it} from 'vitest';
2
+
2
3
  import {TestAdapter, getTestPaths} from '../fixtures';
3
4
 
4
5
  describe('Redirects validation', () => {
@@ -38,7 +39,9 @@ describe('Redirects validation', () => {
38
39
  });
39
40
 
40
41
  it('should emit an error when a redirect is malformed', async () => {
41
- const {inputPath, outputPath} = getTestPaths('mocks/redirects-validation/malformed-redirect');
42
+ const {inputPath, outputPath} = getTestPaths(
43
+ 'mocks/redirects-validation/malformed-redirect',
44
+ );
42
45
 
43
46
  const report = await TestAdapter.build.run(inputPath, outputPath, ['-f', 'md']);
44
47
 
@@ -54,8 +57,6 @@ describe('Redirects validation', () => {
54
57
  const report = await TestAdapter.build.run(inputPath, outputPath, ['-f', 'md']);
55
58
 
56
59
  expect(report.code).toBe(1);
57
- expect(report.errors).toContainEqual(
58
- expect.stringMatching(/Parameters must be different/),
59
- );
60
+ expect(report.errors).toContainEqual(expect.stringMatching(/Parameters must be different/));
60
61
  });
61
62
  });
@@ -1,5 +1,6 @@
1
1
  import {describe, it} from 'vitest';
2
2
  import {dedent} from 'ts-dedent';
3
+
3
4
  import {TestAdapter, compareDirectories, getTestPaths} from '../fixtures';
4
5
 
5
6
  function test(_description: string) {
@@ -1,13 +1,11 @@
1
1
  import {describe, test} from 'vitest';
2
+
2
3
  import {TestAdapter, compareDirectories, getTestPaths} from '../fixtures';
3
4
 
4
- const generateFilesYamlTestTemplate = (
5
- testTitle: string,
6
- testRootPath: string
7
- ) => {
5
+ const generateFilesYamlTestTemplate = (testTitle: string, testRootPath: string) => {
8
6
  test(testTitle, async () => {
9
7
  const {inputPath, outputPath} = getTestPaths(testRootPath);
10
- await TestAdapter.testBuildPass(inputPath, outputPath, {md2md:true});
8
+ await TestAdapter.testBuildPass(inputPath, outputPath, {md2md: true});
11
9
  await compareDirectories(outputPath);
12
10
  });
13
11
  };
package/e2e/rtl.spec.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import {describe, test} from 'vitest';
2
+
2
3
  import {TestAdapter, compareDirectories, getTestPaths} from '../fixtures';
3
4
 
4
5
  const generateMapTestTemplate = (