@cparra/apexdocs 2.25.0-alpha.0 → 2.25.0-alpha.2

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 (215) hide show
  1. package/__mocks__/chalk.js +12 -0
  2. package/__mocks__/log-update.js +6 -0
  3. package/eslint.config.mjs +10 -0
  4. package/examples/plain-markdown/docs/Miscellaneous/ns.BaseClass.md +16 -0
  5. package/examples/plain-markdown/docs/Miscellaneous/ns.MultiInheritanceClass.md +73 -0
  6. package/examples/plain-markdown/docs/Miscellaneous/ns.ParentInterface.md +15 -0
  7. package/examples/plain-markdown/docs/Miscellaneous/ns.ReferencedEnum.md +8 -0
  8. package/examples/plain-markdown/docs/Miscellaneous/ns.SampleException.md +7 -0
  9. package/examples/plain-markdown/docs/Miscellaneous/ns.SampleInterface.md +115 -0
  10. package/examples/plain-markdown/docs/Sample-Enums/ns.SampleEnum.md +36 -0
  11. package/examples/plain-markdown/docs/SampleGroup/ns.SampleClass.md +173 -0
  12. package/examples/plain-markdown/docs/index.md +33 -0
  13. package/examples/plain-markdown/force-app/classes/MultiInheritanceClass.cls +1 -0
  14. package/examples/plain-markdown/force-app/classes/SampleClass.cls +37 -0
  15. package/examples/plain-markdown/package.json +2 -6
  16. package/jest.config.js +4 -0
  17. package/jest.d.ts +7 -0
  18. package/lib/__spec__/core/expect-extensions.d.ts +3 -0
  19. package/lib/__spec__/core/expect-extensions.js +54 -0
  20. package/lib/__spec__/core/expect-extensions.js.map +1 -0
  21. package/lib/__spec__/core/generating-class-docs.spec.d.ts +1 -0
  22. package/lib/__spec__/core/generating-class-docs.spec.js +427 -0
  23. package/lib/__spec__/core/generating-class-docs.spec.js.map +1 -0
  24. package/lib/__spec__/core/generating-enum-docs.spec.d.ts +1 -0
  25. package/lib/__spec__/core/generating-enum-docs.spec.js +303 -0
  26. package/lib/__spec__/core/generating-enum-docs.spec.js.map +1 -0
  27. package/lib/__spec__/core/generating-interface-docs.spec.d.ts +1 -0
  28. package/lib/__spec__/core/generating-interface-docs.spec.js +361 -0
  29. package/lib/__spec__/core/generating-interface-docs.spec.js.map +1 -0
  30. package/lib/__spec__/core/generating-reference-guide.spec.d.ts +1 -0
  31. package/lib/__spec__/core/generating-reference-guide.spec.js +161 -0
  32. package/lib/__spec__/core/generating-reference-guide.spec.js.map +1 -0
  33. package/lib/adapters/apex-types.d.ts +5 -5
  34. package/lib/adapters/apex-types.js +97 -22
  35. package/lib/adapters/apex-types.js.map +1 -1
  36. package/lib/adapters/documentables.d.ts +4 -3
  37. package/lib/adapters/documentables.js +23 -8
  38. package/lib/adapters/documentables.js.map +1 -1
  39. package/lib/adapters/fields-and-properties.d.ts +4 -3
  40. package/lib/adapters/fields-and-properties.js +26 -5
  41. package/lib/adapters/fields-and-properties.js.map +1 -1
  42. package/lib/adapters/methods-and-constructors.d.ts +4 -3
  43. package/lib/adapters/methods-and-constructors.js +54 -12
  44. package/lib/adapters/methods-and-constructors.js.map +1 -1
  45. package/lib/adapters/references.d.ts +1 -1
  46. package/lib/adapters/references.js +3 -3
  47. package/lib/adapters/references.js.map +1 -1
  48. package/lib/adapters/type-utils.d.ts +1 -1
  49. package/lib/adapters/type-utils.js +1 -2
  50. package/lib/adapters/type-utils.js.map +1 -1
  51. package/lib/application/Apexdocs.js +21 -15
  52. package/lib/application/Apexdocs.js.map +1 -1
  53. package/lib/application/flows/generate-markdown-files.d.ts +3 -0
  54. package/lib/application/flows/generate-markdown-files.js +57 -0
  55. package/lib/application/flows/generate-markdown-files.js.map +1 -0
  56. package/lib/cli/generate.js +7 -7
  57. package/lib/cli/generate.js.map +1 -1
  58. package/lib/core/__test__/inheritance-chain.test.d.ts +1 -0
  59. package/lib/core/__test__/inheritance-chain.test.js +42 -0
  60. package/lib/core/__test__/inheritance-chain.test.js.map +1 -0
  61. package/lib/core/generate-docs.d.ts +24 -0
  62. package/lib/core/generate-docs.js +267 -0
  63. package/lib/core/generate-docs.js.map +1 -0
  64. package/lib/core/inheritance-chain.d.ts +2 -0
  65. package/lib/core/inheritance-chain.js +35 -0
  66. package/lib/core/inheritance-chain.js.map +1 -0
  67. package/lib/core/template.d.ts +10 -0
  68. package/lib/core/template.js +92 -0
  69. package/lib/core/template.js.map +1 -0
  70. package/lib/core/templates/reference-guide.d.ts +1 -0
  71. package/lib/core/templates/reference-guide.js +18 -0
  72. package/lib/core/templates/reference-guide.js.map +1 -0
  73. package/lib/index.d.ts +2 -1
  74. package/lib/index.js +14 -3
  75. package/lib/index.js.map +1 -1
  76. package/lib/model/inheritance.d.ts +4 -1
  77. package/lib/model/manifest.js +8 -2
  78. package/lib/model/manifest.js.map +1 -1
  79. package/lib/model/markdown-file.d.ts +2 -2
  80. package/lib/model/markdown-file.js +5 -4
  81. package/lib/model/markdown-file.js.map +1 -1
  82. package/lib/model/markdown-generation-util/doc-comment-annotation-util.js +3 -4
  83. package/lib/model/markdown-generation-util/doc-comment-annotation-util.js.map +1 -1
  84. package/lib/model/markdown-generation-util/field-declaration-util.js +1 -2
  85. package/lib/model/markdown-generation-util/field-declaration-util.js.map +1 -1
  86. package/lib/model/markdown-generation-util/method-declaration-util.js +2 -3
  87. package/lib/model/markdown-generation-util/method-declaration-util.js.map +1 -1
  88. package/lib/model/markdown-generation-util/type-declaration-util.js +1 -2
  89. package/lib/model/markdown-generation-util/type-declaration-util.js.map +1 -1
  90. package/lib/model/markdown-home-file.js.map +1 -1
  91. package/lib/model/markdown-type-file.js.map +1 -1
  92. package/lib/model/openapi/open-api.js.map +1 -1
  93. package/lib/model/outputFile.d.ts +1 -1
  94. package/lib/model/outputFile.js +2 -9
  95. package/lib/model/outputFile.js.map +1 -1
  96. package/lib/model/types-repository.js.map +1 -1
  97. package/lib/service/apex-file-reader.js.map +1 -1
  98. package/lib/service/file-writer.js.map +1 -1
  99. package/lib/service/manifest-factory.js +1 -2
  100. package/lib/service/manifest-factory.js.map +1 -1
  101. package/lib/service/metadata-processor.js.map +1 -1
  102. package/lib/service/parser.js +1 -1
  103. package/lib/service/parser.js.map +1 -1
  104. package/lib/service/state.js.map +1 -1
  105. package/lib/service/walkers/class-walker.js.map +1 -1
  106. package/lib/service/walkers/interface-walker.js.map +1 -1
  107. package/lib/service/walkers/walker-factory.js.map +1 -1
  108. package/lib/service/walkers/walker.js.map +1 -1
  109. package/lib/settings.d.ts +0 -6
  110. package/lib/settings.js +0 -11
  111. package/lib/settings.js.map +1 -1
  112. package/lib/test-helpers/ClassMirrorBuilder.d.ts +4 -0
  113. package/lib/test-helpers/ClassMirrorBuilder.js +11 -1
  114. package/lib/test-helpers/ClassMirrorBuilder.js.map +1 -1
  115. package/lib/transpiler/factory.js.map +1 -1
  116. package/lib/transpiler/markdown/class-file-generatorHelper.d.ts +1 -1
  117. package/lib/transpiler/markdown/class-file-generatorHelper.js.map +1 -1
  118. package/lib/transpiler/markdown/jekyll/jekyll-docsProcessor.js.map +1 -1
  119. package/lib/transpiler/markdown/plain-markdown/class-template.js +53 -12
  120. package/lib/transpiler/markdown/plain-markdown/class-template.js.map +1 -1
  121. package/lib/transpiler/markdown/plain-markdown/constructors-partial-template.js +13 -16
  122. package/lib/transpiler/markdown/plain-markdown/constructors-partial-template.js.map +1 -1
  123. package/lib/transpiler/markdown/plain-markdown/documentable-partial-template.js +11 -8
  124. package/lib/transpiler/markdown/plain-markdown/documentable-partial-template.js.map +1 -1
  125. package/lib/transpiler/markdown/plain-markdown/enum-template.js +7 -6
  126. package/lib/transpiler/markdown/plain-markdown/enum-template.js.map +1 -1
  127. package/lib/transpiler/markdown/plain-markdown/fieldsPartialTemplate.js +9 -6
  128. package/lib/transpiler/markdown/plain-markdown/fieldsPartialTemplate.js.map +1 -1
  129. package/lib/transpiler/markdown/plain-markdown/grouped-members-partial-template.d.ts +1 -0
  130. package/lib/transpiler/markdown/plain-markdown/grouped-members-partial-template.js +10 -0
  131. package/lib/transpiler/markdown/plain-markdown/grouped-members-partial-template.js.map +1 -0
  132. package/lib/transpiler/markdown/plain-markdown/interface-template.js +4 -4
  133. package/lib/transpiler/markdown/plain-markdown/methods-partial-template.js +18 -20
  134. package/lib/transpiler/markdown/plain-markdown/methods-partial-template.js.map +1 -1
  135. package/lib/transpiler/markdown/plain-markdown/plain-docsProcessor.d.ts +0 -4
  136. package/lib/transpiler/markdown/plain-markdown/plain-docsProcessor.js +6 -86
  137. package/lib/transpiler/markdown/plain-markdown/plain-docsProcessor.js.map +1 -1
  138. package/lib/transpiler/markdown/plain-markdown/type-doc-partial.d.ts +1 -0
  139. package/lib/transpiler/markdown/plain-markdown/type-doc-partial.js +31 -0
  140. package/lib/transpiler/markdown/plain-markdown/type-doc-partial.js.map +1 -0
  141. package/lib/transpiler/openapi/open-api-docs-processor.js.map +1 -1
  142. package/lib/transpiler/openapi/parsers/Builder.js.map +1 -1
  143. package/lib/transpiler/openapi/parsers/MethodParser.js.map +1 -1
  144. package/lib/transpiler/openapi/parsers/ReferenceBuilder.js +3 -2
  145. package/lib/transpiler/openapi/parsers/ReferenceBuilder.js.map +1 -1
  146. package/lib/transpiler/openapi/parsers/ResponsesBuilder.js.map +1 -1
  147. package/lib/transpiler/transpiler.js.map +1 -1
  148. package/lib/util/error-logger.js.map +1 -1
  149. package/lib/util/logger.js +1 -1
  150. package/lib/util/logger.js.map +1 -1
  151. package/lib/util/string-utils.js +2 -2
  152. package/lib/util/string-utils.js.map +1 -1
  153. package/package.json +17 -17
  154. package/src/__spec__/core/expect-extensions.ts +32 -0
  155. package/src/__spec__/core/generating-class-docs.spec.ts +511 -0
  156. package/src/__spec__/core/generating-enum-docs.spec.ts +355 -0
  157. package/src/__spec__/core/generating-interface-docs.spec.ts +431 -0
  158. package/src/__spec__/core/generating-reference-guide.spec.ts +163 -0
  159. package/src/adapters/__tests__/interface-adapter.spec.ts +15 -11
  160. package/src/adapters/__tests__/references.spec.ts +1 -1
  161. package/src/adapters/apex-types.ts +205 -41
  162. package/src/adapters/documentables.ts +44 -9
  163. package/src/adapters/fields-and-properties.ts +31 -7
  164. package/src/adapters/methods-and-constructors.ts +65 -22
  165. package/src/adapters/references.ts +1 -1
  166. package/src/adapters/type-utils.ts +1 -1
  167. package/src/application/Apexdocs.ts +21 -15
  168. package/src/application/flows/generate-markdown-files.ts +47 -0
  169. package/src/cli/generate.ts +96 -96
  170. package/src/core/__test__/inheritance-chain.test.ts +54 -0
  171. package/src/core/generate-docs.ts +396 -0
  172. package/src/core/inheritance-chain.ts +23 -0
  173. package/src/core/renderable/types.d.ts +131 -0
  174. package/src/core/template.ts +108 -0
  175. package/src/core/templates/reference-guide.ts +14 -0
  176. package/src/index.ts +3 -1
  177. package/src/model/inheritance.ts +2 -1
  178. package/src/model/manifest.ts +12 -2
  179. package/src/model/markdown-file.ts +5 -4
  180. package/src/model/markdown-generation-util/doc-comment-annotation-util.ts +1 -1
  181. package/src/model/markdown-generation-util/method-declaration-util.ts +1 -1
  182. package/src/model/outputFile.ts +2 -11
  183. package/src/service/parser.ts +1 -1
  184. package/src/settings.ts +0 -15
  185. package/src/test-helpers/ClassMirrorBuilder.ts +14 -1
  186. package/src/transpiler/markdown/class-file-generatorHelper.ts +1 -1
  187. package/src/transpiler/markdown/plain-markdown/class-template.ts +53 -12
  188. package/src/transpiler/markdown/plain-markdown/constructors-partial-template.ts +13 -16
  189. package/src/transpiler/markdown/plain-markdown/documentable-partial-template.ts +11 -8
  190. package/src/transpiler/markdown/plain-markdown/enum-template.ts +7 -6
  191. package/src/transpiler/markdown/plain-markdown/fieldsPartialTemplate.ts +9 -6
  192. package/src/transpiler/markdown/plain-markdown/grouped-members-partial-template.ts +6 -0
  193. package/src/transpiler/markdown/plain-markdown/interface-template.ts +4 -4
  194. package/src/transpiler/markdown/plain-markdown/methods-partial-template.ts +18 -20
  195. package/src/transpiler/markdown/plain-markdown/plain-docsProcessor.ts +8 -100
  196. package/src/transpiler/markdown/plain-markdown/type-doc-partial.ts +27 -0
  197. package/src/transpiler/openapi/parsers/ReferenceBuilder.ts +3 -2
  198. package/src/util/logger.ts +1 -1
  199. package/tsconfig.json +1 -1
  200. package/.eslintrc.js +0 -12
  201. package/examples/plain-markdown/README.md +0 -301
  202. package/lib/templating/compile.d.ts +0 -7
  203. package/lib/templating/compile.js +0 -98
  204. package/lib/templating/compile.js.map +0 -1
  205. package/lib/templating/helpers.d.ts +0 -2
  206. package/lib/templating/helpers.js +0 -18
  207. package/lib/templating/helpers.js.map +0 -1
  208. package/lib/transpiler/markdown/plain-markdown/type-level-apex-doc-partial-template.d.ts +0 -1
  209. package/lib/transpiler/markdown/plain-markdown/type-level-apex-doc-partial-template.js +0 -31
  210. package/lib/transpiler/markdown/plain-markdown/type-level-apex-doc-partial-template.js.map +0 -1
  211. package/src/templating/__tests__/compile.spec.ts +0 -741
  212. package/src/templating/compile.ts +0 -187
  213. package/src/templating/helpers.ts +0 -14
  214. package/src/templating/types.d.ts +0 -104
  215. package/src/transpiler/markdown/plain-markdown/type-level-apex-doc-partial-template.ts +0 -27
@@ -0,0 +1,303 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const generate_docs_1 = require("../../core/generate-docs");
4
+ const expect_extensions_1 = require("./expect-extensions");
5
+ describe('Generates enum documentation', () => {
6
+ beforeAll(() => {
7
+ (0, expect_extensions_1.extendExpect)();
8
+ });
9
+ describe('documentation output', () => {
10
+ it('always returns markdown as the format', () => {
11
+ const input = `
12
+ public enum MyEnum {
13
+ VALUE1,
14
+ VALUE2
15
+ }
16
+ `;
17
+ const result = (0, generate_docs_1.generateDocs)([input]);
18
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data.format).toBe('markdown'));
19
+ });
20
+ it('returns the name of the enum', () => {
21
+ const input = `
22
+ public enum MyEnum {
23
+ VALUE1,
24
+ VALUE2
25
+ }
26
+ `;
27
+ const result = (0, generate_docs_1.generateDocs)([input]);
28
+ expect(result).documentationBundleHasLength(1);
29
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data.docs[0].typeName).toBe('MyEnum'));
30
+ });
31
+ it('returns the type as enum', () => {
32
+ const input = `
33
+ public enum MyEnum {
34
+ VALUE1,
35
+ VALUE2
36
+ }
37
+ `;
38
+ const result = (0, generate_docs_1.generateDocs)([input]);
39
+ expect(result).documentationBundleHasLength(1);
40
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data.docs[0].type).toBe('enum'));
41
+ });
42
+ it('does not return enums out of scope', () => {
43
+ const input1 = `
44
+ global enum MyEnum {
45
+ VALUE1,
46
+ VALUE2
47
+ }
48
+ `;
49
+ const input2 = `
50
+ public enum MyEnum {
51
+ VALUE1,
52
+ VALUE2
53
+ }
54
+ `;
55
+ const result = (0, generate_docs_1.generateDocs)([input1, input2], { scope: ['global'] });
56
+ expect(result).documentationBundleHasLength(1);
57
+ });
58
+ it('does not return enums that have an @ignore in the docs', () => {
59
+ const input = `
60
+ /**
61
+ * @ignore
62
+ */
63
+ public enum MyEnum {
64
+ VALUE1,
65
+ VALUE2
66
+ }
67
+ `;
68
+ const result = (0, generate_docs_1.generateDocs)([input]);
69
+ expect(result).documentationBundleHasLength(0);
70
+ });
71
+ });
72
+ describe('documentation content', () => {
73
+ it('generates a heading with the enum name', () => {
74
+ const input = `
75
+ public enum MyEnum {
76
+ VALUE1,
77
+ VALUE2
78
+ }
79
+ `;
80
+ const output = `# MyEnum Enum`;
81
+ const result = (0, generate_docs_1.generateDocs)([input]);
82
+ expect(result).documentationBundleHasLength(1);
83
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data).firstDocContains(output));
84
+ });
85
+ it('displays type level annotations', () => {
86
+ const input = `
87
+ @NamespaceAccessible
88
+ public enum MyEnum {
89
+ VALUE1,
90
+ VALUE2
91
+ }
92
+ `;
93
+ const result = (0, generate_docs_1.generateDocs)([input]);
94
+ expect(result).documentationBundleHasLength(1);
95
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data).firstDocContains('NAMESPACEACCESSIBLE'));
96
+ });
97
+ it('displays the description', () => {
98
+ const input = `
99
+ /**
100
+ * This is a description
101
+ */
102
+ public enum MyEnum {
103
+ VALUE1,
104
+ VALUE2
105
+ }
106
+ `;
107
+ const result = (0, generate_docs_1.generateDocs)([input]);
108
+ expect(result).documentationBundleHasLength(1);
109
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data).firstDocContains('This is a description'));
110
+ });
111
+ it('display custom documentation tags', () => {
112
+ const input = `
113
+ /**
114
+ * @custom-tag My Value
115
+ */
116
+ public enum MyEnum {
117
+ VALUE1,
118
+ VALUE2
119
+ }
120
+ `;
121
+ const result = (0, generate_docs_1.generateDocs)([input]);
122
+ expect(result).documentationBundleHasLength(1);
123
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data).firstDocContains('Custom Tag'));
124
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data).firstDocContains('My Value'));
125
+ });
126
+ it('displays the group', () => {
127
+ const input = `
128
+ /**
129
+ * @group MyGroup
130
+ */
131
+ public enum MyEnum {
132
+ VALUE1,
133
+ VALUE2
134
+ }
135
+ `;
136
+ const result = (0, generate_docs_1.generateDocs)([input]);
137
+ expect(result).documentationBundleHasLength(1);
138
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data).firstDocContains('Group'));
139
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data).firstDocContains('MyGroup'));
140
+ });
141
+ it('displays the author', () => {
142
+ const input = `
143
+ /**
144
+ * @author John Doe
145
+ */
146
+ public enum MyEnum {
147
+ VALUE1,
148
+ VALUE2
149
+ }
150
+ `;
151
+ const result = (0, generate_docs_1.generateDocs)([input]);
152
+ expect(result).documentationBundleHasLength(1);
153
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data).firstDocContains('Author'));
154
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data).firstDocContains('John Doe'));
155
+ });
156
+ it('displays the date', () => {
157
+ const input = `
158
+ /**
159
+ * @date 2021-01-01
160
+ */
161
+ public enum MyEnum {
162
+ VALUE1,
163
+ VALUE2
164
+ }
165
+ `;
166
+ const result = (0, generate_docs_1.generateDocs)([input]);
167
+ expect(result).documentationBundleHasLength(1);
168
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data).firstDocContains('Date'));
169
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data).firstDocContains('2021-01-01'));
170
+ });
171
+ it('displays descriptions', () => {
172
+ const input = `
173
+ /**
174
+ * @description This is a description
175
+ */
176
+ public enum MyEnum {}
177
+ `;
178
+ const result = (0, generate_docs_1.generateDocs)([input]);
179
+ expect(result).documentationBundleHasLength(1);
180
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data).firstDocContains('This is a description'));
181
+ });
182
+ it('displays descriptions with links', () => {
183
+ const input1 = `
184
+ /**
185
+ * @description This is a description with a {@link EnumRef} reference
186
+ */
187
+ public enum MyEnum {}
188
+ `;
189
+ const input2 = 'public enum EnumRef {}';
190
+ const result = (0, generate_docs_1.generateDocs)([input1, input2]);
191
+ expect(result).documentationBundleHasLength(2);
192
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data).firstDocContains('Description'));
193
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data).firstDocContains('This is a description with a [EnumRef](./EnumRef.md) reference'));
194
+ });
195
+ it('displays descriptions with emails', () => {
196
+ const input = `
197
+ /**
198
+ * @description This is a description with an {@email test@testerson.com} email
199
+ */
200
+ public enum MyEnum {}
201
+ `;
202
+ const result = (0, generate_docs_1.generateDocs)([input]);
203
+ expect(result).documentationBundleHasLength(1);
204
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data).firstDocContains('This is a description with an [test@testerson.com](mailto:test@testerson.com) email'));
205
+ });
206
+ it('displays sees with accurately resolved links', () => {
207
+ const input1 = `
208
+ /**
209
+ * @see EnumRef
210
+ */
211
+ public enum MyEnum {}
212
+ `;
213
+ const input2 = 'public enum EnumRef {}';
214
+ const result = (0, generate_docs_1.generateDocs)([input1, input2]);
215
+ expect(result).documentationBundleHasLength(2);
216
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data).firstDocContains('See'));
217
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data).firstDocContains('[EnumRef](./EnumRef.md)'));
218
+ });
219
+ it('displays sees without links when the reference is not found', () => {
220
+ const input = `
221
+ /**
222
+ * @see EnumRef
223
+ */
224
+ public enum MyEnum {}
225
+ `;
226
+ const result = (0, generate_docs_1.generateDocs)([input]);
227
+ expect(result).documentationBundleHasLength(1);
228
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data).firstDocContains('See'));
229
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data).firstDocContains('EnumRef'));
230
+ });
231
+ it('displays the namespace if present in the config', () => {
232
+ const input = `
233
+ public enum MyEnum {}
234
+ `;
235
+ const result = (0, generate_docs_1.generateDocs)([input], { namespace: 'MyNamespace' });
236
+ expect(result).documentationBundleHasLength(1);
237
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data).firstDocContains('## Namespace'));
238
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data).firstDocContains('MyNamespace'));
239
+ });
240
+ it('does not display the namespace if not present in the config', () => {
241
+ const input = `
242
+ public enum MyEnum {}
243
+ `;
244
+ const result = (0, generate_docs_1.generateDocs)([input]);
245
+ expect(result).documentationBundleHasLength(1);
246
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data).firstDocContainsNot('## Namespace'));
247
+ });
248
+ it('displays a mermaid diagram', () => {
249
+ const input = `
250
+ /**
251
+ * @mermaid
252
+ * graph TD
253
+ * A[Square Rect] -- Link text --> B((Circle))
254
+ * A --> C(Round Rect)
255
+ * B --> D{Rhombus}
256
+ * C --> D
257
+ */
258
+ public enum MyEnum {
259
+ VALUE1,
260
+ VALUE2
261
+ }
262
+ `;
263
+ const result = (0, generate_docs_1.generateDocs)([input]);
264
+ expect(result).documentationBundleHasLength(1);
265
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data).firstDocContains('```mermaid'));
266
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data).firstDocContains('graph TD'));
267
+ });
268
+ it('displays an example code block', () => {
269
+ const input = `
270
+ /**
271
+ * @example
272
+ * public class MyClass {
273
+ * public void myMethod() {
274
+ * System.debug('Hello, World!');
275
+ * }
276
+ * }
277
+ */
278
+ public enum MyEnum {
279
+ VALUE1,
280
+ VALUE2
281
+ }
282
+ `;
283
+ const result = (0, generate_docs_1.generateDocs)([input]);
284
+ expect(result).documentationBundleHasLength(1);
285
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data).firstDocContains('```apex'));
286
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data).firstDocContains('public class MyClass'));
287
+ });
288
+ it('displays values', () => {
289
+ const input = `
290
+ public enum MyEnum {
291
+ VALUE1,
292
+ VALUE2
293
+ }
294
+ `;
295
+ const result = (0, generate_docs_1.generateDocs)([input]);
296
+ expect(result).documentationBundleHasLength(1);
297
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data).firstDocContains('## Values'));
298
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data).firstDocContains('VALUE1'));
299
+ (0, expect_extensions_1.assertEither)(result, (data) => expect(data).firstDocContains('VALUE2'));
300
+ });
301
+ });
302
+ });
303
+ //# sourceMappingURL=generating-enum-docs.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generating-enum-docs.spec.js","sourceRoot":"","sources":["../../../src/__spec__/core/generating-enum-docs.spec.ts"],"names":[],"mappings":"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"}