@cparra/apexdocs 2.25.0-alpha.4 → 2.25.0-alpha.6
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.
- package/dist/cli/generate.js +2745 -39
- package/dist/defaults-DUwru49Q.js +12 -0
- package/dist/defaults-SH0Rsi5E.js +11 -0
- package/dist/index.d.ts +62 -2
- package/dist/index.js +36 -1
- package/examples/plain-markdown/docs/Miscellaneous/ns.BaseClass.md +1 -1
- package/examples/plain-markdown/docs/Miscellaneous/ns.MultiInheritanceClass.md +1 -1
- package/examples/plain-markdown/docs/Miscellaneous/ns.ParentInterface.md +1 -1
- package/examples/plain-markdown/docs/Miscellaneous/ns.ReferencedEnum.md +1 -1
- package/examples/plain-markdown/docs/Miscellaneous/ns.SampleException.md +1 -1
- package/examples/plain-markdown/docs/Miscellaneous/ns.SampleInterface.md +1 -1
- package/examples/plain-markdown/docs/Miscellaneous/ns.Url.md +1 -1
- package/examples/plain-markdown/docs/Sample-Enums/ns.SampleEnum.md +1 -1
- package/examples/plain-markdown/docs/SampleGroup/ns.SampleClass.md +1 -1
- package/examples/plain-markdown/docs/index.md +1 -1
- package/examples/plain-markdown/package.json +3 -4
- package/examples/vitepress/.forceignore +12 -0
- package/examples/vitepress/apexdocs.config.ts +108 -0
- package/examples/vitepress/config/project-scratch-def.json +13 -0
- package/examples/vitepress/docs/.vitepress/cache/deps/@theme_index.js +259 -0
- package/examples/vitepress/docs/.vitepress/cache/deps/@theme_index.js.map +7 -0
- package/examples/vitepress/docs/.vitepress/cache/deps/_metadata.json +40 -0
- package/examples/vitepress/docs/.vitepress/cache/deps/chunk-574YRH25.js +11474 -0
- package/examples/vitepress/docs/.vitepress/cache/deps/chunk-574YRH25.js.map +7 -0
- package/examples/vitepress/docs/.vitepress/cache/deps/chunk-E5DZZB2I.js +9172 -0
- package/examples/vitepress/docs/.vitepress/cache/deps/chunk-E5DZZB2I.js.map +7 -0
- package/examples/vitepress/docs/.vitepress/cache/deps/package.json +3 -0
- package/examples/vitepress/docs/.vitepress/cache/deps/vitepress___@vue_devtools-api.js +4339 -0
- package/examples/vitepress/docs/.vitepress/cache/deps/vitepress___@vue_devtools-api.js.map +7 -0
- package/examples/vitepress/docs/.vitepress/cache/deps/vitepress___@vueuse_core.js +567 -0
- package/examples/vitepress/docs/.vitepress/cache/deps/vitepress___@vueuse_core.js.map +7 -0
- package/examples/vitepress/docs/.vitepress/cache/deps/vue.js +323 -0
- package/examples/vitepress/docs/.vitepress/cache/deps/vue.js.map +7 -0
- package/examples/vitepress/docs/.vitepress/config.mts +21 -0
- package/examples/vitepress/docs/.vitepress/sidebar.json +119 -0
- package/examples/vitepress/docs/Miscellaneous/apexdocs.BaseClass.md +20 -0
- package/examples/vitepress/docs/Miscellaneous/apexdocs.MultiInheritanceClass.md +78 -0
- package/examples/vitepress/docs/Miscellaneous/apexdocs.ParentInterface.md +19 -0
- package/examples/vitepress/docs/Miscellaneous/apexdocs.ReferencedEnum.md +15 -0
- package/examples/vitepress/docs/Miscellaneous/apexdocs.SampleException.md +28 -0
- package/examples/vitepress/docs/Miscellaneous/apexdocs.SampleInterface.md +122 -0
- package/examples/vitepress/docs/Miscellaneous/apexdocs.Url.md +318 -0
- package/examples/vitepress/docs/Sample-Enums/apexdocs.SampleEnum.md +41 -0
- package/examples/vitepress/docs/SampleGroup/apexdocs.SampleClass.md +178 -0
- package/examples/vitepress/docs/api-examples.md +49 -0
- package/examples/vitepress/docs/index-frontmatter.md +16 -0
- package/examples/vitepress/docs/index.md +127 -0
- package/examples/vitepress/docs/markdown-examples.md +85 -0
- package/examples/vitepress/force-app/main/default/classes/BaseClass.cls +3 -0
- package/examples/vitepress/force-app/main/default/classes/MultiInheritanceClass.cls +1 -0
- package/examples/vitepress/force-app/main/default/classes/ParentInterface.cls +3 -0
- package/examples/vitepress/force-app/main/default/classes/ReferencedEnum.cls +5 -0
- package/examples/vitepress/force-app/main/default/classes/SampleClass.cls +72 -0
- package/examples/vitepress/force-app/main/default/classes/SampleEnum.cls +30 -0
- package/examples/vitepress/force-app/main/default/classes/SampleException.cls +17 -0
- package/examples/vitepress/force-app/main/default/classes/SampleInterface.cls +46 -0
- package/examples/vitepress/force-app/main/default/classes/Url.cls +195 -0
- package/examples/vitepress/package-lock.json +2574 -0
- package/examples/vitepress/package.json +18 -0
- package/examples/vitepress/sfdx-project.json +12 -0
- package/jest.config.js +1 -0
- package/package.json +11 -10
- package/src/application/Apexdocs.ts +16 -104
- package/src/application/__tests__/apex-file-reader.spec.ts +104 -0
- package/src/application/apex-file-reader.ts +42 -0
- package/src/application/file-writer.ts +25 -0
- package/src/application/generators/markdown.ts +53 -0
- package/src/application/generators/openapi.ts +56 -0
- package/src/cli/args.ts +17 -112
- package/src/cli/commands/markdown.ts +58 -0
- package/src/cli/generate.ts +7 -5
- package/src/{model/__tests__ → core/__test__}/manifest.spec.ts +1 -1
- package/src/core/manifest.ts +57 -51
- package/src/{__spec__/core → core/markdown/__test__}/expect-extensions.ts +5 -5
- package/src/core/markdown/__test__/generating-class-docs.spec.ts +727 -0
- package/src/{__spec__/core → core/markdown/__test__}/generating-enum-docs.spec.ts +82 -59
- package/src/{__spec__/core → core/markdown/__test__}/generating-interface-docs.spec.ts +94 -75
- package/src/core/markdown/__test__/generating-reference-guide.spec.ts +184 -0
- package/src/core/{__test__ → markdown/__test__}/inheritance-chain.test.ts +2 -2
- package/src/core/markdown/__test__/test-helpers.ts +22 -0
- package/src/core/{adapters → markdown/adapters}/__tests__/interface-adapter.spec.ts +38 -8
- package/src/core/{adapters → markdown/adapters}/apex-types.ts +7 -4
- package/src/core/{adapters → markdown/adapters}/inline.ts +1 -1
- package/src/core/markdown/adapters/renderable-bundle.ts +144 -0
- package/src/core/markdown/adapters/renderable-to-page-data.ts +92 -0
- package/src/core/{adapters → markdown/adapters}/types.d.ts +16 -2
- package/src/core/markdown/generate-docs.ts +158 -0
- package/src/core/markdown/reflection/error-handling.ts +37 -0
- package/src/core/markdown/reflection/filter-scope.ts +13 -0
- package/src/core/markdown/reflection/inheritance-chain-expanion.ts +22 -0
- package/src/core/markdown/reflection/inherited-member-expansion.ts +105 -0
- package/src/core/markdown/reflection/reflect-source.ts +41 -0
- package/src/core/markdown/reflection/sort-members.ts +59 -0
- package/src/{transpiler/markdown/plain-markdown → core/markdown/templates}/class-template.ts +2 -0
- package/src/core/markdown/templates/hookable.ts +7 -0
- package/src/core/{template.ts → markdown/templates/template.ts} +12 -12
- package/src/core/markdown/utils.ts +3 -0
- package/src/{transpiler → core}/openapi/__tests__/open-api-docs-processor.spec.ts +1 -1
- package/src/{model → core/openapi}/apex-type-wrappers/__tests__/ClassMirrorWrapper.spec.ts +3 -3
- package/src/core/openapi/file-container.ts +13 -0
- package/src/{service → core/openapi}/manifest-factory.ts +3 -3
- package/src/{transpiler → core}/openapi/open-api-docs-processor.ts +9 -10
- package/src/core/openapi/openapi-type-file.ts +14 -0
- package/src/{service → core/openapi}/parser.ts +8 -8
- package/src/{transpiler → core}/openapi/parsers/Builder.ts +2 -2
- package/src/{transpiler → core}/openapi/parsers/MethodParser.ts +5 -5
- package/src/{transpiler → core}/openapi/parsers/ParameterObjectBuilder.ts +2 -2
- package/src/{transpiler → core}/openapi/parsers/ReferenceBuilder.ts +3 -3
- package/src/{transpiler → core}/openapi/parsers/RequestBodyBuilder.ts +2 -2
- package/src/{transpiler → core}/openapi/parsers/ResponsesBuilder.ts +2 -2
- package/src/{transpiler → core}/openapi/parsers/__tests__/MethodParser.spec.ts +1 -1
- package/src/{transpiler → core}/openapi/parsers/__tests__/ParameterObjectBuilder.spec.ts +2 -2
- package/src/{transpiler → core}/openapi/parsers/__tests__/ReferenceBuilder.spec.ts +2 -2
- package/src/{transpiler → core}/openapi/parsers/__tests__/RequestBodyBuilder.spec.ts +2 -2
- package/src/{transpiler → core}/openapi/parsers/__tests__/ResponsesBuilder.spec.ts +1 -1
- package/src/{transpiler → core/openapi}/transpiler.ts +2 -6
- package/src/{model → core/openapi}/types-repository.ts +0 -9
- package/src/core/parse-apex-metadata.ts +14 -0
- package/src/core/settings.ts +56 -0
- package/src/core/shared/types.d.ts +92 -0
- package/src/core/shared/utils.ts +5 -0
- package/src/defaults.ts +8 -0
- package/src/index.ts +34 -2
- package/src/test-helpers/InterfaceMirrorBuilder.ts +0 -5
- package/src/test-helpers/SettingsBuilder.ts +1 -3
- package/src/util/logger.ts +2 -2
- package/src/util/string-utils.ts +0 -4
- package/tsconfig.json +5 -1
- package/apexdocs.config.ts +0 -13
- package/examples/plain-markdown/template.md +0 -3
- package/src/__spec__/core/generating-class-docs.spec.ts +0 -531
- package/src/__spec__/core/generating-reference-guide.spec.ts +0 -164
- package/src/__spec__/core/test-helpers.ts +0 -9
- package/src/application/generators/generate-markdown-files.ts +0 -53
- package/src/core/apex-bundle.ts +0 -3
- package/src/core/generate-docs.ts +0 -432
- package/src/model/markdown-file.ts +0 -122
- package/src/model/markdown-generation-util/doc-comment-annotation-util.ts +0 -50
- package/src/model/markdown-generation-util/field-declaration-util.ts +0 -71
- package/src/model/markdown-generation-util/index.ts +0 -3
- package/src/model/markdown-generation-util/method-declaration-util.ts +0 -166
- package/src/model/markdown-generation-util/type-declaration-util.ts +0 -91
- package/src/model/markdown-home-file.ts +0 -58
- package/src/model/markdown-type-file.ts +0 -169
- package/src/model/openapi/openapi-type-file.ts +0 -14
- package/src/model/outputFile.ts +0 -20
- package/src/service/__tests__/apex-file-reader.spec.ts +0 -93
- package/src/service/apex-file-reader.ts +0 -47
- package/src/service/file-writer.ts +0 -34
- package/src/service/metadata-processor.ts +0 -16
- package/src/service/state.ts +0 -24
- package/src/service/walkers/class-walker.ts +0 -30
- package/src/service/walkers/enum-walker.ts +0 -7
- package/src/service/walkers/interface-walker.ts +0 -12
- package/src/service/walkers/walker-factory.ts +0 -19
- package/src/service/walkers/walker.ts +0 -42
- package/src/settings.ts +0 -143
- package/src/transpiler/factory.ts +0 -31
- package/src/transpiler/file-container.ts +0 -13
- package/src/transpiler/generator-choices.ts +0 -1
- package/src/transpiler/markdown/class-file-generatorHelper.ts +0 -61
- package/src/transpiler/markdown/docsify/docsify-docs-processor.ts +0 -12
- package/src/transpiler/markdown/jekyll/jekyll-docsProcessor.ts +0 -50
- package/src/transpiler/markdown/markdown-transpiler-base.ts +0 -28
- package/src/transpiler/processor-type-transpiler.ts +0 -18
- /package/src/{service → application}/file-system.ts +0 -0
- /package/src/core/{adapters → markdown/adapters}/__tests__/documentables.spec.ts +0 -0
- /package/src/core/{adapters → markdown/adapters}/__tests__/references.spec.ts +0 -0
- /package/src/core/{adapters → markdown/adapters}/documentables.ts +0 -0
- /package/src/core/{adapters → markdown/adapters}/fields-and-properties.ts +0 -0
- /package/src/core/{adapters → markdown/adapters}/methods-and-constructors.ts +0 -0
- /package/src/core/{adapters → markdown/adapters}/type-utils.ts +0 -0
- /package/src/core/{inheritance-chain.ts → markdown/reflection/inheritance-chain.ts} +0 -0
- /package/src/{transpiler/markdown/plain-markdown → core/markdown/templates}/constructors-partial-template.ts +0 -0
- /package/src/{transpiler/markdown/plain-markdown → core/markdown/templates}/documentable-partial-template.ts +0 -0
- /package/src/{transpiler/markdown/plain-markdown → core/markdown/templates}/enum-template.ts +0 -0
- /package/src/{transpiler/markdown/plain-markdown → core/markdown/templates}/fieldsPartialTemplate.ts +0 -0
- /package/src/{transpiler/markdown/plain-markdown → core/markdown/templates}/grouped-members-partial-template.ts +0 -0
- /package/src/{transpiler/markdown/plain-markdown → core/markdown/templates}/interface-template.ts +0 -0
- /package/src/{transpiler/markdown/plain-markdown → core/markdown/templates}/methods-partial-template.ts +0 -0
- /package/src/core/{templates → markdown/templates}/reference-guide.ts +0 -0
- /package/src/{transpiler/markdown/plain-markdown → core/markdown/templates}/type-doc-partial.ts +0 -0
- /package/src/{service → core/openapi}/__tests__/manifest-factory.spec.ts +0 -0
- /package/src/{model → core}/openapi/__tests__/open-api.spec.ts +0 -0
- /package/src/{model → core}/openapi/apex-doc-types.ts +0 -0
- /package/src/{model → core/openapi}/apex-type-wrappers/ClassMirrorWrapper.ts +0 -0
- /package/src/{model → core/openapi}/apex-type-wrappers/MethodMirrorWrapper.ts +0 -0
- /package/src/{model → core}/openapi/open-api-types.ts +0 -0
- /package/src/{model → core}/openapi/open-api.ts +0 -0
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { generateDocs } from '../../core/generate-docs';
|
|
2
1
|
import { assertEither, extendExpect } from './expect-extensions';
|
|
3
|
-
import { apexBundleFromRawString } from './test-helpers';
|
|
2
|
+
import { apexBundleFromRawString, generateDocs } from './test-helpers';
|
|
4
3
|
|
|
5
4
|
describe('Generates enum documentation', () => {
|
|
6
5
|
beforeAll(() => {
|
|
@@ -8,7 +7,7 @@ describe('Generates enum documentation', () => {
|
|
|
8
7
|
});
|
|
9
8
|
|
|
10
9
|
describe('documentation output', () => {
|
|
11
|
-
it('
|
|
10
|
+
it('returns the name of the enum', async () => {
|
|
12
11
|
const input = `
|
|
13
12
|
public enum MyEnum {
|
|
14
13
|
VALUE1,
|
|
@@ -16,24 +15,12 @@ describe('Generates enum documentation', () => {
|
|
|
16
15
|
}
|
|
17
16
|
`;
|
|
18
17
|
|
|
19
|
-
const result = generateDocs([apexBundleFromRawString(input)]);
|
|
20
|
-
assertEither(result, (data) => expect(data.format).toBe('markdown'));
|
|
21
|
-
});
|
|
22
|
-
|
|
23
|
-
it('returns the name of the enum', () => {
|
|
24
|
-
const input = `
|
|
25
|
-
public enum MyEnum {
|
|
26
|
-
VALUE1,
|
|
27
|
-
VALUE2
|
|
28
|
-
}
|
|
29
|
-
`;
|
|
30
|
-
|
|
31
|
-
const result = generateDocs([apexBundleFromRawString(input)]);
|
|
18
|
+
const result = await generateDocs([apexBundleFromRawString(input)])();
|
|
32
19
|
expect(result).documentationBundleHasLength(1);
|
|
33
|
-
assertEither(result, (data) => expect(data.docs[0].
|
|
20
|
+
assertEither(result, (data) => expect(data.docs[0].fileName).toBe('MyEnum'));
|
|
34
21
|
});
|
|
35
22
|
|
|
36
|
-
it('returns the type as enum', () => {
|
|
23
|
+
it('returns the type as enum', async () => {
|
|
37
24
|
const input = `
|
|
38
25
|
public enum MyEnum {
|
|
39
26
|
VALUE1,
|
|
@@ -41,12 +28,12 @@ describe('Generates enum documentation', () => {
|
|
|
41
28
|
}
|
|
42
29
|
`;
|
|
43
30
|
|
|
44
|
-
const result = generateDocs([apexBundleFromRawString(input)]);
|
|
31
|
+
const result = await generateDocs([apexBundleFromRawString(input)])();
|
|
45
32
|
expect(result).documentationBundleHasLength(1);
|
|
46
|
-
assertEither(result, (data) => expect(data.docs[0].type).toBe('enum'));
|
|
33
|
+
assertEither(result, (data) => expect(data.docs[0].source.type).toBe('enum'));
|
|
47
34
|
});
|
|
48
35
|
|
|
49
|
-
it('does not return enums out of scope', () => {
|
|
36
|
+
it('does not return enums out of scope', async () => {
|
|
50
37
|
const input1 = `
|
|
51
38
|
global enum MyEnum {
|
|
52
39
|
VALUE1,
|
|
@@ -61,13 +48,13 @@ describe('Generates enum documentation', () => {
|
|
|
61
48
|
}
|
|
62
49
|
`;
|
|
63
50
|
|
|
64
|
-
const result = generateDocs([apexBundleFromRawString(input1), apexBundleFromRawString(input2)], {
|
|
51
|
+
const result = await generateDocs([apexBundleFromRawString(input1), apexBundleFromRawString(input2)], {
|
|
65
52
|
scope: ['global'],
|
|
66
|
-
});
|
|
53
|
+
})();
|
|
67
54
|
expect(result).documentationBundleHasLength(1);
|
|
68
55
|
});
|
|
69
56
|
|
|
70
|
-
it('does not return enums that have an @ignore in the docs', () => {
|
|
57
|
+
it('does not return enums that have an @ignore in the docs', async () => {
|
|
71
58
|
const input = `
|
|
72
59
|
/**
|
|
73
60
|
* @ignore
|
|
@@ -78,13 +65,13 @@ describe('Generates enum documentation', () => {
|
|
|
78
65
|
}
|
|
79
66
|
`;
|
|
80
67
|
|
|
81
|
-
const result = generateDocs([apexBundleFromRawString(input)]);
|
|
68
|
+
const result = await generateDocs([apexBundleFromRawString(input)])();
|
|
82
69
|
expect(result).documentationBundleHasLength(0);
|
|
83
70
|
});
|
|
84
71
|
});
|
|
85
72
|
|
|
86
73
|
describe('documentation content', () => {
|
|
87
|
-
it('generates a heading with the enum name', () => {
|
|
74
|
+
it('generates a heading with the enum name', async () => {
|
|
88
75
|
const input = `
|
|
89
76
|
public enum MyEnum {
|
|
90
77
|
VALUE1,
|
|
@@ -94,12 +81,12 @@ describe('Generates enum documentation', () => {
|
|
|
94
81
|
|
|
95
82
|
const output = `# MyEnum Enum`;
|
|
96
83
|
|
|
97
|
-
const result = generateDocs([apexBundleFromRawString(input)]);
|
|
84
|
+
const result = await generateDocs([apexBundleFromRawString(input)])();
|
|
98
85
|
expect(result).documentationBundleHasLength(1);
|
|
99
86
|
assertEither(result, (data) => expect(data).firstDocContains(output));
|
|
100
87
|
});
|
|
101
88
|
|
|
102
|
-
it('displays type level annotations', () => {
|
|
89
|
+
it('displays type level annotations', async () => {
|
|
103
90
|
const input = `
|
|
104
91
|
@NamespaceAccessible
|
|
105
92
|
public enum MyEnum {
|
|
@@ -108,12 +95,12 @@ describe('Generates enum documentation', () => {
|
|
|
108
95
|
}
|
|
109
96
|
`;
|
|
110
97
|
|
|
111
|
-
const result = generateDocs([apexBundleFromRawString(input)]);
|
|
98
|
+
const result = await generateDocs([apexBundleFromRawString(input)])();
|
|
112
99
|
expect(result).documentationBundleHasLength(1);
|
|
113
100
|
assertEither(result, (data) => expect(data).firstDocContains('NAMESPACEACCESSIBLE'));
|
|
114
101
|
});
|
|
115
102
|
|
|
116
|
-
it('displays the description', () => {
|
|
103
|
+
it('displays the description', async () => {
|
|
117
104
|
const input = `
|
|
118
105
|
/**
|
|
119
106
|
* This is a description
|
|
@@ -124,12 +111,12 @@ describe('Generates enum documentation', () => {
|
|
|
124
111
|
}
|
|
125
112
|
`;
|
|
126
113
|
|
|
127
|
-
const result = generateDocs([apexBundleFromRawString(input)]);
|
|
114
|
+
const result = await generateDocs([apexBundleFromRawString(input)])();
|
|
128
115
|
expect(result).documentationBundleHasLength(1);
|
|
129
116
|
assertEither(result, (data) => expect(data).firstDocContains('This is a description'));
|
|
130
117
|
});
|
|
131
118
|
|
|
132
|
-
it('display custom documentation tags', () => {
|
|
119
|
+
it('display custom documentation tags', async () => {
|
|
133
120
|
const input = `
|
|
134
121
|
/**
|
|
135
122
|
* @custom-tag My Value
|
|
@@ -140,13 +127,13 @@ describe('Generates enum documentation', () => {
|
|
|
140
127
|
}
|
|
141
128
|
`;
|
|
142
129
|
|
|
143
|
-
const result = generateDocs([apexBundleFromRawString(input)]);
|
|
130
|
+
const result = await generateDocs([apexBundleFromRawString(input)])();
|
|
144
131
|
expect(result).documentationBundleHasLength(1);
|
|
145
132
|
assertEither(result, (data) => expect(data).firstDocContains('Custom Tag'));
|
|
146
133
|
assertEither(result, (data) => expect(data).firstDocContains('My Value'));
|
|
147
134
|
});
|
|
148
135
|
|
|
149
|
-
it('displays the group', () => {
|
|
136
|
+
it('displays the group', async () => {
|
|
150
137
|
const input = `
|
|
151
138
|
/**
|
|
152
139
|
* @group MyGroup
|
|
@@ -157,13 +144,13 @@ describe('Generates enum documentation', () => {
|
|
|
157
144
|
}
|
|
158
145
|
`;
|
|
159
146
|
|
|
160
|
-
const result = generateDocs([apexBundleFromRawString(input)]);
|
|
147
|
+
const result = await generateDocs([apexBundleFromRawString(input)])();
|
|
161
148
|
expect(result).documentationBundleHasLength(1);
|
|
162
149
|
assertEither(result, (data) => expect(data).firstDocContains('Group'));
|
|
163
150
|
assertEither(result, (data) => expect(data).firstDocContains('MyGroup'));
|
|
164
151
|
});
|
|
165
152
|
|
|
166
|
-
it('displays the author', () => {
|
|
153
|
+
it('displays the author', async () => {
|
|
167
154
|
const input = `
|
|
168
155
|
/**
|
|
169
156
|
* @author John Doe
|
|
@@ -174,13 +161,13 @@ describe('Generates enum documentation', () => {
|
|
|
174
161
|
}
|
|
175
162
|
`;
|
|
176
163
|
|
|
177
|
-
const result = generateDocs([apexBundleFromRawString(input)]);
|
|
164
|
+
const result = await generateDocs([apexBundleFromRawString(input)])();
|
|
178
165
|
expect(result).documentationBundleHasLength(1);
|
|
179
166
|
assertEither(result, (data) => expect(data).firstDocContains('Author'));
|
|
180
167
|
assertEither(result, (data) => expect(data).firstDocContains('John Doe'));
|
|
181
168
|
});
|
|
182
169
|
|
|
183
|
-
it('displays the date', () => {
|
|
170
|
+
it('displays the date', async () => {
|
|
184
171
|
const input = `
|
|
185
172
|
/**
|
|
186
173
|
* @date 2021-01-01
|
|
@@ -191,13 +178,13 @@ describe('Generates enum documentation', () => {
|
|
|
191
178
|
}
|
|
192
179
|
`;
|
|
193
180
|
|
|
194
|
-
const result = generateDocs([apexBundleFromRawString(input)]);
|
|
181
|
+
const result = await generateDocs([apexBundleFromRawString(input)])();
|
|
195
182
|
expect(result).documentationBundleHasLength(1);
|
|
196
183
|
assertEither(result, (data) => expect(data).firstDocContains('Date'));
|
|
197
184
|
assertEither(result, (data) => expect(data).firstDocContains('2021-01-01'));
|
|
198
185
|
});
|
|
199
186
|
|
|
200
|
-
it('displays descriptions', () => {
|
|
187
|
+
it('displays descriptions', async () => {
|
|
201
188
|
const input = `
|
|
202
189
|
/**
|
|
203
190
|
* @description This is a description
|
|
@@ -205,12 +192,12 @@ describe('Generates enum documentation', () => {
|
|
|
205
192
|
public enum MyEnum {}
|
|
206
193
|
`;
|
|
207
194
|
|
|
208
|
-
const result = generateDocs([apexBundleFromRawString(input)]);
|
|
195
|
+
const result = await generateDocs([apexBundleFromRawString(input)])();
|
|
209
196
|
expect(result).documentationBundleHasLength(1);
|
|
210
197
|
assertEither(result, (data) => expect(data).firstDocContains('This is a description'));
|
|
211
198
|
});
|
|
212
199
|
|
|
213
|
-
it('displays descriptions with links', () => {
|
|
200
|
+
it('displays descriptions with links', async () => {
|
|
214
201
|
const input1 = `
|
|
215
202
|
/**
|
|
216
203
|
* @description This is a description with a {@link EnumRef} reference
|
|
@@ -220,7 +207,7 @@ describe('Generates enum documentation', () => {
|
|
|
220
207
|
|
|
221
208
|
const input2 = 'public enum EnumRef {}';
|
|
222
209
|
|
|
223
|
-
const result = generateDocs([apexBundleFromRawString(input1), apexBundleFromRawString(input2)]);
|
|
210
|
+
const result = await generateDocs([apexBundleFromRawString(input1), apexBundleFromRawString(input2)])();
|
|
224
211
|
expect(result).documentationBundleHasLength(2);
|
|
225
212
|
assertEither(result, (data) => expect(data).firstDocContains('Description'));
|
|
226
213
|
assertEither(result, (data) =>
|
|
@@ -228,7 +215,7 @@ describe('Generates enum documentation', () => {
|
|
|
228
215
|
);
|
|
229
216
|
});
|
|
230
217
|
|
|
231
|
-
it('displays descriptions with emails', () => {
|
|
218
|
+
it('displays descriptions with emails', async () => {
|
|
232
219
|
const input = `
|
|
233
220
|
/**
|
|
234
221
|
* @description This is a description with an {@email test@testerson.com} email
|
|
@@ -236,7 +223,7 @@ describe('Generates enum documentation', () => {
|
|
|
236
223
|
public enum MyEnum {}
|
|
237
224
|
`;
|
|
238
225
|
|
|
239
|
-
const result = generateDocs([apexBundleFromRawString(input)]);
|
|
226
|
+
const result = await generateDocs([apexBundleFromRawString(input)])();
|
|
240
227
|
expect(result).documentationBundleHasLength(1);
|
|
241
228
|
assertEither(result, (data) =>
|
|
242
229
|
expect(data).firstDocContains(
|
|
@@ -245,7 +232,7 @@ describe('Generates enum documentation', () => {
|
|
|
245
232
|
);
|
|
246
233
|
});
|
|
247
234
|
|
|
248
|
-
it('displays sees with accurately resolved links', () => {
|
|
235
|
+
it('displays sees with accurately resolved links', async () => {
|
|
249
236
|
const input1 = `
|
|
250
237
|
/**
|
|
251
238
|
* @see EnumRef
|
|
@@ -255,13 +242,13 @@ describe('Generates enum documentation', () => {
|
|
|
255
242
|
|
|
256
243
|
const input2 = 'public enum EnumRef {}';
|
|
257
244
|
|
|
258
|
-
const result = generateDocs([apexBundleFromRawString(input1), apexBundleFromRawString(input2)]);
|
|
245
|
+
const result = await generateDocs([apexBundleFromRawString(input1), apexBundleFromRawString(input2)])();
|
|
259
246
|
expect(result).documentationBundleHasLength(2);
|
|
260
247
|
assertEither(result, (data) => expect(data).firstDocContains('See'));
|
|
261
248
|
assertEither(result, (data) => expect(data).firstDocContains('[EnumRef](./EnumRef.md)'));
|
|
262
249
|
});
|
|
263
250
|
|
|
264
|
-
it('displays sees without links when the reference is not found', () => {
|
|
251
|
+
it('displays sees without links when the reference is not found', async () => {
|
|
265
252
|
const input = `
|
|
266
253
|
/**
|
|
267
254
|
* @see EnumRef
|
|
@@ -269,34 +256,34 @@ describe('Generates enum documentation', () => {
|
|
|
269
256
|
public enum MyEnum {}
|
|
270
257
|
`;
|
|
271
258
|
|
|
272
|
-
const result = generateDocs([apexBundleFromRawString(input)]);
|
|
259
|
+
const result = await generateDocs([apexBundleFromRawString(input)])();
|
|
273
260
|
expect(result).documentationBundleHasLength(1);
|
|
274
261
|
assertEither(result, (data) => expect(data).firstDocContains('See'));
|
|
275
262
|
assertEither(result, (data) => expect(data).firstDocContains('EnumRef'));
|
|
276
263
|
});
|
|
277
264
|
|
|
278
|
-
it('displays the namespace if present in the config', () => {
|
|
265
|
+
it('displays the namespace if present in the config', async () => {
|
|
279
266
|
const input = `
|
|
280
267
|
public enum MyEnum {}
|
|
281
268
|
`;
|
|
282
269
|
|
|
283
|
-
const result = generateDocs([apexBundleFromRawString(input)], { namespace: 'MyNamespace' });
|
|
270
|
+
const result = await generateDocs([apexBundleFromRawString(input)], { namespace: 'MyNamespace' })();
|
|
284
271
|
expect(result).documentationBundleHasLength(1);
|
|
285
272
|
assertEither(result, (data) => expect(data).firstDocContains('## Namespace'));
|
|
286
273
|
assertEither(result, (data) => expect(data).firstDocContains('MyNamespace'));
|
|
287
274
|
});
|
|
288
275
|
|
|
289
|
-
it('does not display the namespace if not present in the config', () => {
|
|
276
|
+
it('does not display the namespace if not present in the config', async () => {
|
|
290
277
|
const input = `
|
|
291
278
|
public enum MyEnum {}
|
|
292
279
|
`;
|
|
293
280
|
|
|
294
|
-
const result = generateDocs([apexBundleFromRawString(input)]);
|
|
281
|
+
const result = await generateDocs([apexBundleFromRawString(input)])();
|
|
295
282
|
expect(result).documentationBundleHasLength(1);
|
|
296
283
|
assertEither(result, (data) => expect(data).firstDocContainsNot('## Namespace'));
|
|
297
284
|
});
|
|
298
285
|
|
|
299
|
-
it('displays a mermaid diagram', () => {
|
|
286
|
+
it('displays a mermaid diagram', async () => {
|
|
300
287
|
const input = `
|
|
301
288
|
/**
|
|
302
289
|
* @mermaid
|
|
@@ -312,13 +299,13 @@ describe('Generates enum documentation', () => {
|
|
|
312
299
|
}
|
|
313
300
|
`;
|
|
314
301
|
|
|
315
|
-
const result = generateDocs([apexBundleFromRawString(input)]);
|
|
302
|
+
const result = await generateDocs([apexBundleFromRawString(input)])();
|
|
316
303
|
expect(result).documentationBundleHasLength(1);
|
|
317
304
|
assertEither(result, (data) => expect(data).firstDocContains('```mermaid'));
|
|
318
305
|
assertEither(result, (data) => expect(data).firstDocContains('graph TD'));
|
|
319
306
|
});
|
|
320
307
|
|
|
321
|
-
it('displays an example code block', () => {
|
|
308
|
+
it('displays an example code block', async () => {
|
|
322
309
|
const input = `
|
|
323
310
|
/**
|
|
324
311
|
* @example
|
|
@@ -334,13 +321,13 @@ describe('Generates enum documentation', () => {
|
|
|
334
321
|
}
|
|
335
322
|
`;
|
|
336
323
|
|
|
337
|
-
const result = generateDocs([apexBundleFromRawString(input)]);
|
|
324
|
+
const result = await generateDocs([apexBundleFromRawString(input)])();
|
|
338
325
|
expect(result).documentationBundleHasLength(1);
|
|
339
326
|
assertEither(result, (data) => expect(data).firstDocContains('```apex'));
|
|
340
327
|
assertEither(result, (data) => expect(data).firstDocContains('public class MyClass'));
|
|
341
328
|
});
|
|
342
329
|
|
|
343
|
-
it('displays values', () => {
|
|
330
|
+
it('displays values', async () => {
|
|
344
331
|
const input = `
|
|
345
332
|
public enum MyEnum {
|
|
346
333
|
VALUE1,
|
|
@@ -348,11 +335,47 @@ describe('Generates enum documentation', () => {
|
|
|
348
335
|
}
|
|
349
336
|
`;
|
|
350
337
|
|
|
351
|
-
const result = generateDocs([apexBundleFromRawString(input)]);
|
|
338
|
+
const result = await generateDocs([apexBundleFromRawString(input)])();
|
|
352
339
|
expect(result).documentationBundleHasLength(1);
|
|
353
340
|
assertEither(result, (data) => expect(data).firstDocContains('## Values'));
|
|
354
341
|
assertEither(result, (data) => expect(data).firstDocContains('VALUE1'));
|
|
355
342
|
assertEither(result, (data) => expect(data).firstDocContains('VALUE2'));
|
|
356
343
|
});
|
|
344
|
+
|
|
345
|
+
it('displays values sorted when sortMembersAlphabetically is true', async () => {
|
|
346
|
+
const input = `
|
|
347
|
+
public enum MyEnum {
|
|
348
|
+
VALUE2,
|
|
349
|
+
VALUE1
|
|
350
|
+
}
|
|
351
|
+
`;
|
|
352
|
+
|
|
353
|
+
const result = await generateDocs([apexBundleFromRawString(input)], { sortMembersAlphabetically: true })();
|
|
354
|
+
expect(result).documentationBundleHasLength(1);
|
|
355
|
+
assertEither(result, (data) => expect(data).firstDocContains('## Values'));
|
|
356
|
+
assertEither(result, (data) => {
|
|
357
|
+
const value1Index = data.docs[0].content.indexOf('VALUE1');
|
|
358
|
+
const value2Index = data.docs[0].content.indexOf('VALUE2');
|
|
359
|
+
expect(value1Index).toBeLessThan(value2Index);
|
|
360
|
+
});
|
|
361
|
+
});
|
|
362
|
+
|
|
363
|
+
it('does not sort values when sortMembersAlphabetically is false', async () => {
|
|
364
|
+
const input = `
|
|
365
|
+
public enum MyEnum {
|
|
366
|
+
VALUE2,
|
|
367
|
+
VALUE1
|
|
368
|
+
}
|
|
369
|
+
`;
|
|
370
|
+
|
|
371
|
+
const result = await generateDocs([apexBundleFromRawString(input)], { sortMembersAlphabetically: false })();
|
|
372
|
+
expect(result).documentationBundleHasLength(1);
|
|
373
|
+
assertEither(result, (data) => expect(data).firstDocContains('## Values'));
|
|
374
|
+
assertEither(result, (data) => {
|
|
375
|
+
const value1Index = data.docs[0].content.indexOf('VALUE1');
|
|
376
|
+
const value2Index = data.docs[0].content.indexOf('VALUE2');
|
|
377
|
+
expect(value1Index).toBeGreaterThan(value2Index);
|
|
378
|
+
});
|
|
379
|
+
});
|
|
357
380
|
});
|
|
358
381
|
});
|