@cparra/apexdocs 2.25.0-alpha.1 → 2.25.0-alpha.10
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/README.md +37 -0
- package/dist/cli/generate.js +2963 -0
- package/dist/defaults-DUwru49Q.js +12 -0
- package/dist/defaults-SH0Rsi5E.js +11 -0
- package/dist/defaults-jLXD2y8-.js +13 -0
- package/dist/index.d.ts +101 -0
- package/dist/index.js +36 -0
- package/examples/markdown/docs/index.md +109 -0
- package/examples/{plain-markdown/docs/Miscellaneous/ns.BaseClass.md → markdown/docs/miscellaneous/BaseClass.md} +1 -1
- package/examples/markdown/docs/miscellaneous/MultiInheritanceClass.md +72 -0
- package/examples/{plain-markdown/docs/Miscellaneous/ns.ParentInterface.md → markdown/docs/miscellaneous/ParentInterface.md} +1 -1
- package/examples/{plain-markdown/docs/Miscellaneous/ns.ReferencedEnum.md → markdown/docs/miscellaneous/ReferencedEnum.md} +1 -1
- package/examples/markdown/docs/miscellaneous/SampleException.md +24 -0
- package/examples/{plain-markdown/docs/Miscellaneous/ns.SampleInterface.md → markdown/docs/miscellaneous/SampleInterface.md} +29 -32
- package/examples/markdown/docs/miscellaneous/Url.md +309 -0
- package/examples/markdown/docs/sample-enums/SampleEnum.md +36 -0
- package/examples/{plain-markdown/docs/SampleGroup/ns.SampleClass.md → markdown/docs/samplegroup/SampleClass.md} +11 -14
- package/examples/markdown/force-app/classes/MultiInheritanceClass.cls +1 -0
- package/examples/markdown/force-app/classes/SampleException.cls +17 -0
- package/examples/markdown/force-app/classes/Url.cls +194 -0
- package/examples/{plain-markdown → markdown}/package.json +2 -2
- package/examples/vitepress/.forceignore +12 -0
- package/examples/vitepress/apexdocs.config.ts +106 -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/api-examples.md +49 -0
- package/examples/vitepress/docs/index-frontmatter.md +16 -0
- package/examples/vitepress/docs/index.md +56 -0
- package/examples/vitepress/docs/markdown-examples.md +85 -0
- package/examples/vitepress/docs/miscellaneous/BaseClass.md +20 -0
- package/examples/vitepress/docs/miscellaneous/MultiInheritanceClass.md +76 -0
- package/examples/vitepress/docs/miscellaneous/ParentInterface.md +19 -0
- package/examples/vitepress/docs/miscellaneous/ReferencedEnum.md +15 -0
- package/examples/vitepress/docs/miscellaneous/SampleException.md +28 -0
- package/examples/vitepress/docs/miscellaneous/SampleInterface.md +116 -0
- package/examples/vitepress/docs/miscellaneous/Url.md +317 -0
- package/examples/vitepress/docs/sample-enums/SampleEnum.md +40 -0
- package/examples/vitepress/docs/samplegroup/SampleClass.md +174 -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 +198 -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 +2 -1
- package/package.json +18 -19
- package/src/application/Apexdocs.ts +17 -70
- 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 +21 -0
- package/src/application/generators/markdown.ts +58 -0
- package/src/application/generators/openapi.ts +56 -0
- package/src/cli/args.ts +43 -0
- package/src/cli/commands/markdown.ts +52 -0
- package/src/cli/generate.ts +10 -134
- package/src/core/manifest.ts +90 -0
- package/src/{__spec__/core → core/markdown/__test__}/expect-extensions.ts +5 -5
- package/src/core/markdown/__test__/generating-class-docs.spec.ts +735 -0
- package/src/{__spec__/core → core/markdown/__test__}/generating-enum-docs.spec.ts +89 -59
- package/src/{__spec__/core → core/markdown/__test__}/generating-interface-docs.spec.ts +105 -75
- package/src/{__spec__/core → core/markdown/__test__}/generating-reference-guide.spec.ts +43 -26
- package/src/core/markdown/__test__/inheritance-chain.test.ts +54 -0
- package/src/core/markdown/__test__/test-helpers.ts +23 -0
- package/src/core/markdown/adapters/__tests__/documentables.spec.ts +109 -0
- package/src/core/markdown/adapters/__tests__/interface-adapter.spec.ts +148 -0
- package/src/{adapters → core/markdown/adapters}/__tests__/references.spec.ts +23 -2
- package/src/{adapters → core/markdown/adapters}/apex-types.ts +58 -44
- package/src/{adapters → core/markdown/adapters}/documentables.ts +58 -35
- package/src/{adapters → core/markdown/adapters}/fields-and-properties.ts +18 -11
- package/src/{adapters/references.ts → core/markdown/adapters/inline.ts} +43 -13
- package/src/{adapters → core/markdown/adapters}/methods-and-constructors.ts +36 -20
- package/src/core/markdown/adapters/reference-guide.ts +35 -0
- package/src/core/markdown/adapters/renderable-bundle.ts +78 -0
- package/src/core/markdown/adapters/renderable-to-page-data.ts +89 -0
- package/src/core/markdown/adapters/type-utils.ts +13 -0
- package/src/core/{renderable → markdown/adapters}/types.d.ts +57 -8
- package/src/core/markdown/generate-docs.ts +216 -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/inheritance-chain.ts +23 -0
- package/src/core/markdown/reflection/inherited-member-expansion.ts +105 -0
- package/src/core/markdown/reflection/reflect-source.ts +45 -0
- package/src/core/markdown/reflection/sort-members.ts +59 -0
- package/src/{transpiler/markdown/plain-markdown → core/markdown/templates}/class-template.ts +5 -3
- package/src/{transpiler/markdown/plain-markdown → core/markdown/templates}/constructors-partial-template.ts +2 -2
- package/src/{transpiler/markdown/plain-markdown → core/markdown/templates}/documentable-partial-template.ts +6 -4
- package/src/{transpiler/markdown/plain-markdown → core/markdown/templates}/fieldsPartialTemplate.ts +1 -1
- package/src/core/markdown/templates/hookable.ts +7 -0
- package/src/{transpiler/markdown/plain-markdown → core/markdown/templates}/methods-partial-template.ts +2 -2
- package/src/core/{templates → markdown/templates}/reference-guide.ts +1 -1
- package/src/core/{template.ts → markdown/templates/template.ts} +25 -19
- 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 +12 -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 +131 -0
- package/src/core/shared/utils.ts +5 -0
- package/src/defaults.ts +9 -0
- package/src/index.ts +40 -2
- package/src/test-helpers/ClassMirrorBuilder.ts +14 -1
- package/src/test-helpers/InterfaceMirrorBuilder.ts +0 -5
- package/src/test-helpers/SettingsBuilder.ts +1 -4
- package/src/util/fp.ts +3 -0
- package/src/util/logger.ts +3 -3
- package/src/util/string-utils.ts +0 -4
- package/tsconfig.json +6 -2
- package/apexdocs.config.ts +0 -13
- package/docs/.nojekyll +0 -0
- package/docs/__old/README.md +0 -1
- package/docs/__old/index.html +0 -22
- package/docs/__old/restapi.json +0 -589
- package/docs/__old/types/Classes/nspc.AnotherInterface.md +0 -22
- package/docs/__old/types/Classes/nspc.ChildClass.md +0 -97
- package/docs/__old/types/Main/nspc.GroupedClass.md +0 -10
- package/docs/__old/types/Main/nspc.SampleClass.md +0 -189
- package/docs/__old/types/Misc-Group/nspc.EscapedAnnotations.md +0 -4
- package/docs/__old/types/Misc-Group/nspc.GrandparentClass.md +0 -13
- package/docs/__old/types/Misc-Group/nspc.InterfaceWithInheritance.md +0 -29
- package/docs/__old/types/Misc-Group/nspc.MemberGrouping.md +0 -13
- package/docs/__old/types/Misc-Group/nspc.ParentClass.md +0 -37
- package/docs/__old/types/Misc-Group/nspc.Reference1.md +0 -18
- package/docs/__old/types/Misc-Group/nspc.Reference2.md +0 -12
- package/docs/__old/types/Misc-Group/nspc.Reference3.md +0 -7
- package/docs/__old/types/Misc-Group/nspc.Reference4.md +0 -7
- package/docs/__old/types/Misc-Group/nspc.Reference5.md +0 -7
- package/docs/__old/types/Misc-Group/nspc.Reference6.md +0 -9
- package/docs/__old/types/Misc-Group/nspc.Reference7.md +0 -7
- package/docs/__old/types/Misc-Group/nspc.SampleClassWithoutModifier.md +0 -11
- package/docs/__old/types/Misc-Group/nspc.SampleRestResource.md +0 -104
- package/docs/__old/types/Misc-Group/nspc.SampleRestResourceWithInnerClass.md +0 -33
- package/docs/__old/types/Misc-Group/nspc.SampleRestResourceWithoutApexDocs.md +0 -14
- package/docs/__old/types/README.md +0 -97
- package/docs/__old/types/Sample-Interfaces/nspc.SampleInterface.md +0 -23
- package/examples/includes/header.md +0 -3
- package/examples/plain-markdown/docs/Miscellaneous/ns.SampleException.md +0 -7
- package/examples/plain-markdown/docs/Sample-Enums/ns.SampleEnum.md +0 -36
- package/examples/plain-markdown/docs/index.md +0 -36
- package/examples/plain-markdown/force-app/classes/SampleException.cls +0 -1
- package/examples/plain-markdown/template.md +0 -3
- package/lib/__spec__/core/expect-extensions.d.ts +0 -3
- package/lib/__spec__/core/expect-extensions.js +0 -54
- package/lib/__spec__/core/expect-extensions.js.map +0 -1
- package/lib/__spec__/core/generating-class-docs.spec.d.ts +0 -1
- package/lib/__spec__/core/generating-class-docs.spec.js +0 -427
- package/lib/__spec__/core/generating-class-docs.spec.js.map +0 -1
- package/lib/__spec__/core/generating-enum-docs.spec.d.ts +0 -1
- package/lib/__spec__/core/generating-enum-docs.spec.js +0 -303
- package/lib/__spec__/core/generating-enum-docs.spec.js.map +0 -1
- package/lib/__spec__/core/generating-interface-docs.spec.d.ts +0 -1
- package/lib/__spec__/core/generating-interface-docs.spec.js +0 -361
- package/lib/__spec__/core/generating-interface-docs.spec.js.map +0 -1
- package/lib/__spec__/core/generating-reference-guide.spec.d.ts +0 -1
- package/lib/__spec__/core/generating-reference-guide.spec.js +0 -161
- package/lib/__spec__/core/generating-reference-guide.spec.js.map +0 -1
- package/lib/adapters/apex-types.d.ts +0 -7
- package/lib/adapters/apex-types.js +0 -112
- package/lib/adapters/apex-types.js.map +0 -1
- package/lib/adapters/documentables.d.ts +0 -7
- package/lib/adapters/documentables.js +0 -56
- package/lib/adapters/documentables.js.map +0 -1
- package/lib/adapters/fields-and-properties.d.ts +0 -4
- package/lib/adapters/fields-and-properties.js +0 -32
- package/lib/adapters/fields-and-properties.js.map +0 -1
- package/lib/adapters/methods-and-constructors.d.ts +0 -5
- package/lib/adapters/methods-and-constructors.js +0 -92
- package/lib/adapters/methods-and-constructors.js.map +0 -1
- package/lib/adapters/references.d.ts +0 -5
- package/lib/adapters/references.js +0 -82
- package/lib/adapters/references.js.map +0 -1
- package/lib/adapters/type-utils.d.ts +0 -2
- package/lib/adapters/type-utils.js +0 -7
- package/lib/adapters/type-utils.js.map +0 -1
- package/lib/application/Apexdocs.d.ts +0 -13
- package/lib/application/Apexdocs.js +0 -80
- package/lib/application/Apexdocs.js.map +0 -1
- package/lib/cli/generate.d.ts +0 -2
- package/lib/cli/generate.js +0 -157
- package/lib/cli/generate.js.map +0 -1
- package/lib/core/generate-docs.d.ts +0 -23
- package/lib/core/generate-docs.js +0 -241
- package/lib/core/generate-docs.js.map +0 -1
- package/lib/core/template.d.ts +0 -10
- package/lib/core/template.js +0 -92
- package/lib/core/template.js.map +0 -1
- package/lib/core/templates/reference-guide.d.ts +0 -1
- package/lib/core/templates/reference-guide.js +0 -18
- package/lib/core/templates/reference-guide.js.map +0 -1
- package/lib/index.d.ts +0 -2
- package/lib/index.js +0 -29
- package/lib/index.js.map +0 -1
- package/lib/model/apex-bundle.d.ts +0 -6
- package/lib/model/apex-bundle.js +0 -11
- package/lib/model/apex-bundle.js.map +0 -1
- package/lib/model/apex-type-wrappers/ClassMirrorWrapper.d.ts +0 -7
- package/lib/model/apex-type-wrappers/ClassMirrorWrapper.js +0 -14
- package/lib/model/apex-type-wrappers/ClassMirrorWrapper.js.map +0 -1
- package/lib/model/apex-type-wrappers/MethodMirrorWrapper.d.ts +0 -7
- package/lib/model/apex-type-wrappers/MethodMirrorWrapper.js +0 -12
- package/lib/model/apex-type-wrappers/MethodMirrorWrapper.js.map +0 -1
- package/lib/model/inheritance.d.ts +0 -8
- package/lib/model/inheritance.js +0 -3
- package/lib/model/inheritance.js.map +0 -1
- package/lib/model/manifest.d.ts +0 -22
- package/lib/model/manifest.js +0 -53
- package/lib/model/manifest.js.map +0 -1
- package/lib/model/markdown-file.d.ts +0 -16
- package/lib/model/markdown-file.js +0 -111
- package/lib/model/markdown-file.js.map +0 -1
- package/lib/model/markdown-generation-util/doc-comment-annotation-util.d.ts +0 -8
- package/lib/model/markdown-generation-util/doc-comment-annotation-util.js +0 -46
- package/lib/model/markdown-generation-util/doc-comment-annotation-util.js.map +0 -1
- package/lib/model/markdown-generation-util/field-declaration-util.d.ts +0 -3
- package/lib/model/markdown-generation-util/field-declaration-util.js +0 -54
- package/lib/model/markdown-generation-util/field-declaration-util.js.map +0 -1
- package/lib/model/markdown-generation-util/index.d.ts +0 -3
- package/lib/model/markdown-generation-util/index.js +0 -20
- package/lib/model/markdown-generation-util/index.js.map +0 -1
- package/lib/model/markdown-generation-util/method-declaration-util.d.ts +0 -4
- package/lib/model/markdown-generation-util/method-declaration-util.js +0 -114
- package/lib/model/markdown-generation-util/method-declaration-util.js.map +0 -1
- package/lib/model/markdown-generation-util/type-declaration-util.d.ts +0 -3
- package/lib/model/markdown-generation-util/type-declaration-util.js +0 -81
- package/lib/model/markdown-generation-util/type-declaration-util.js.map +0 -1
- package/lib/model/markdown-home-file.d.ts +0 -11
- package/lib/model/markdown-home-file.js +0 -57
- package/lib/model/markdown-home-file.js.map +0 -1
- package/lib/model/markdown-type-file.d.ts +0 -26
- package/lib/model/markdown-type-file.js +0 -137
- package/lib/model/markdown-type-file.js.map +0 -1
- package/lib/model/openapi/apex-doc-types.d.ts +0 -19
- package/lib/model/openapi/apex-doc-types.js +0 -5
- package/lib/model/openapi/apex-doc-types.js.map +0 -1
- package/lib/model/openapi/open-api-types.d.ts +0 -93
- package/lib/model/openapi/open-api-types.js +0 -3
- package/lib/model/openapi/open-api-types.js.map +0 -1
- package/lib/model/openapi/open-api.d.ts +0 -16
- package/lib/model/openapi/open-api.js +0 -34
- package/lib/model/openapi/open-api.js.map +0 -1
- package/lib/model/openapi/openapi-type-file.d.ts +0 -7
- package/lib/model/openapi/openapi-type-file.js +0 -17
- package/lib/model/openapi/openapi-type-file.js.map +0 -1
- package/lib/model/outputFile.d.ts +0 -10
- package/lib/model/outputFile.js +0 -22
- package/lib/model/outputFile.js.map +0 -1
- package/lib/model/types-repository.d.ts +0 -16
- package/lib/model/types-repository.js +0 -54
- package/lib/model/types-repository.js.map +0 -1
- package/lib/service/apex-file-reader.d.ts +0 -14
- package/lib/service/apex-file-reader.js +0 -49
- package/lib/service/apex-file-reader.js.map +0 -1
- package/lib/service/file-system.d.ts +0 -14
- package/lib/service/file-system.js +0 -48
- package/lib/service/file-system.js.map +0 -1
- package/lib/service/file-writer.d.ts +0 -6
- package/lib/service/file-writer.js +0 -57
- package/lib/service/file-writer.js.map +0 -1
- package/lib/service/manifest-factory.d.ts +0 -10
- package/lib/service/manifest-factory.js +0 -16
- package/lib/service/manifest-factory.js.map +0 -1
- package/lib/service/metadata-processor.d.ts +0 -3
- package/lib/service/metadata-processor.js +0 -17
- package/lib/service/metadata-processor.js.map +0 -1
- package/lib/service/parser.d.ts +0 -21
- package/lib/service/parser.js +0 -138
- package/lib/service/parser.js.map +0 -1
- package/lib/service/state.d.ts +0 -9
- package/lib/service/state.js +0 -20
- package/lib/service/state.js.map +0 -1
- package/lib/service/walkers/class-walker.d.ts +0 -4
- package/lib/service/walkers/class-walker.js +0 -33
- package/lib/service/walkers/class-walker.js.map +0 -1
- package/lib/service/walkers/enum-walker.d.ts +0 -4
- package/lib/service/walkers/enum-walker.js +0 -11
- package/lib/service/walkers/enum-walker.js.map +0 -1
- package/lib/service/walkers/interface-walker.d.ts +0 -4
- package/lib/service/walkers/interface-walker.js +0 -15
- package/lib/service/walkers/interface-walker.js.map +0 -1
- package/lib/service/walkers/walker-factory.d.ts +0 -5
- package/lib/service/walkers/walker-factory.js +0 -21
- package/lib/service/walkers/walker-factory.js.map +0 -1
- package/lib/service/walkers/walker.d.ts +0 -19
- package/lib/service/walkers/walker.js +0 -17
- package/lib/service/walkers/walker.js.map +0 -1
- package/lib/settings.d.ts +0 -64
- package/lib/settings.js +0 -89
- package/lib/settings.js.map +0 -1
- package/lib/test-helpers/AnnotationBuilder.d.ts +0 -12
- package/lib/test-helpers/AnnotationBuilder.js +0 -31
- package/lib/test-helpers/AnnotationBuilder.js.map +0 -1
- package/lib/test-helpers/ClassMirrorBuilder.d.ts +0 -18
- package/lib/test-helpers/ClassMirrorBuilder.js +0 -54
- package/lib/test-helpers/ClassMirrorBuilder.js.map +0 -1
- package/lib/test-helpers/DocCommentAnnotationBuilder.d.ts +0 -8
- package/lib/test-helpers/DocCommentAnnotationBuilder.js +0 -26
- package/lib/test-helpers/DocCommentAnnotationBuilder.js.map +0 -1
- package/lib/test-helpers/DocCommentBuilder.d.ts +0 -12
- package/lib/test-helpers/DocCommentBuilder.js +0 -38
- package/lib/test-helpers/DocCommentBuilder.js.map +0 -1
- package/lib/test-helpers/FieldMirrorBuilder.d.ts +0 -18
- package/lib/test-helpers/FieldMirrorBuilder.js +0 -54
- package/lib/test-helpers/FieldMirrorBuilder.js.map +0 -1
- package/lib/test-helpers/InterfaceMirrorBuilder.d.ts +0 -16
- package/lib/test-helpers/InterfaceMirrorBuilder.js +0 -43
- package/lib/test-helpers/InterfaceMirrorBuilder.js.map +0 -1
- package/lib/test-helpers/MethodMirrorBuilder.d.ts +0 -29
- package/lib/test-helpers/MethodMirrorBuilder.js +0 -72
- package/lib/test-helpers/MethodMirrorBuilder.js.map +0 -1
- package/lib/test-helpers/SettingsBuilder.d.ts +0 -8
- package/lib/test-helpers/SettingsBuilder.js +0 -27
- package/lib/test-helpers/SettingsBuilder.js.map +0 -1
- package/lib/transpiler/factory.d.ts +0 -6
- package/lib/transpiler/factory.js +0 -35
- package/lib/transpiler/factory.js.map +0 -1
- package/lib/transpiler/file-container.d.ts +0 -6
- package/lib/transpiler/file-container.js +0 -16
- package/lib/transpiler/file-container.js.map +0 -1
- package/lib/transpiler/generator-choices.d.ts +0 -1
- package/lib/transpiler/generator-choices.js +0 -3
- package/lib/transpiler/generator-choices.js.map +0 -1
- package/lib/transpiler/markdown/class-file-generatorHelper.d.ts +0 -11
- package/lib/transpiler/markdown/class-file-generatorHelper.js +0 -75
- package/lib/transpiler/markdown/class-file-generatorHelper.js.map +0 -1
- package/lib/transpiler/markdown/docsify/docsify-docs-processor.d.ts +0 -6
- package/lib/transpiler/markdown/docsify/docsify-docs-processor.js +0 -13
- package/lib/transpiler/markdown/docsify/docsify-docs-processor.js.map +0 -1
- package/lib/transpiler/markdown/jekyll/jekyll-docsProcessor.d.ts +0 -11
- package/lib/transpiler/markdown/jekyll/jekyll-docsProcessor.js +0 -51
- package/lib/transpiler/markdown/jekyll/jekyll-docsProcessor.js.map +0 -1
- package/lib/transpiler/markdown/markdown-transpiler-base.d.ts +0 -11
- package/lib/transpiler/markdown/markdown-transpiler-base.js +0 -27
- package/lib/transpiler/markdown/markdown-transpiler-base.js.map +0 -1
- package/lib/transpiler/markdown/plain-markdown/class-template.d.ts +0 -1
- package/lib/transpiler/markdown/plain-markdown/class-template.js +0 -77
- package/lib/transpiler/markdown/plain-markdown/class-template.js.map +0 -1
- package/lib/transpiler/markdown/plain-markdown/constructors-partial-template.d.ts +0 -1
- package/lib/transpiler/markdown/plain-markdown/constructors-partial-template.js +0 -36
- package/lib/transpiler/markdown/plain-markdown/constructors-partial-template.js.map +0 -1
- package/lib/transpiler/markdown/plain-markdown/documentable-partial-template.d.ts +0 -1
- package/lib/transpiler/markdown/plain-markdown/documentable-partial-template.js +0 -28
- package/lib/transpiler/markdown/plain-markdown/documentable-partial-template.js.map +0 -1
- package/lib/transpiler/markdown/plain-markdown/enum-template.d.ts +0 -1
- package/lib/transpiler/markdown/plain-markdown/enum-template.js +0 -16
- package/lib/transpiler/markdown/plain-markdown/enum-template.js.map +0 -1
- package/lib/transpiler/markdown/plain-markdown/fieldsPartialTemplate.d.ts +0 -1
- package/lib/transpiler/markdown/plain-markdown/fieldsPartialTemplate.js +0 -27
- package/lib/transpiler/markdown/plain-markdown/fieldsPartialTemplate.js.map +0 -1
- package/lib/transpiler/markdown/plain-markdown/grouped-members-partial-template.d.ts +0 -1
- package/lib/transpiler/markdown/plain-markdown/grouped-members-partial-template.js +0 -10
- package/lib/transpiler/markdown/plain-markdown/grouped-members-partial-template.js.map +0 -1
- package/lib/transpiler/markdown/plain-markdown/interface-template.d.ts +0 -1
- package/lib/transpiler/markdown/plain-markdown/interface-template.js +0 -20
- package/lib/transpiler/markdown/plain-markdown/interface-template.js.map +0 -1
- package/lib/transpiler/markdown/plain-markdown/methods-partial-template.d.ts +0 -1
- package/lib/transpiler/markdown/plain-markdown/methods-partial-template.js +0 -47
- package/lib/transpiler/markdown/plain-markdown/methods-partial-template.js.map +0 -1
- package/lib/transpiler/markdown/plain-markdown/plain-docsProcessor.d.ts +0 -9
- package/lib/transpiler/markdown/plain-markdown/plain-docsProcessor.js +0 -42
- package/lib/transpiler/markdown/plain-markdown/plain-docsProcessor.js.map +0 -1
- package/lib/transpiler/markdown/plain-markdown/type-doc-partial.d.ts +0 -1
- package/lib/transpiler/markdown/plain-markdown/type-doc-partial.js +0 -31
- package/lib/transpiler/markdown/plain-markdown/type-doc-partial.js.map +0 -1
- package/lib/transpiler/openapi/open-api-docs-processor.d.ts +0 -13
- package/lib/transpiler/openapi/open-api-docs-processor.js +0 -78
- package/lib/transpiler/openapi/open-api-docs-processor.js.map +0 -1
- package/lib/transpiler/openapi/parsers/Builder.d.ts +0 -16
- package/lib/transpiler/openapi/parsers/Builder.js +0 -30
- package/lib/transpiler/openapi/parsers/Builder.js.map +0 -1
- package/lib/transpiler/openapi/parsers/MethodParser.d.ts +0 -20
- package/lib/transpiler/openapi/parsers/MethodParser.js +0 -190
- package/lib/transpiler/openapi/parsers/MethodParser.js.map +0 -1
- package/lib/transpiler/openapi/parsers/ParameterObjectBuilder.d.ts +0 -7
- package/lib/transpiler/openapi/parsers/ParameterObjectBuilder.js +0 -11
- package/lib/transpiler/openapi/parsers/ParameterObjectBuilder.js.map +0 -1
- package/lib/transpiler/openapi/parsers/ReferenceBuilder.d.ts +0 -39
- package/lib/transpiler/openapi/parsers/ReferenceBuilder.js +0 -250
- package/lib/transpiler/openapi/parsers/ReferenceBuilder.js.map +0 -1
- package/lib/transpiler/openapi/parsers/RequestBodyBuilder.d.ts +0 -10
- package/lib/transpiler/openapi/parsers/RequestBodyBuilder.js +0 -20
- package/lib/transpiler/openapi/parsers/RequestBodyBuilder.js.map +0 -1
- package/lib/transpiler/openapi/parsers/ResponsesBuilder.d.ts +0 -7
- package/lib/transpiler/openapi/parsers/ResponsesBuilder.js +0 -22
- package/lib/transpiler/openapi/parsers/ResponsesBuilder.js.map +0 -1
- package/lib/transpiler/processor-type-transpiler.d.ts +0 -10
- package/lib/transpiler/processor-type-transpiler.js +0 -9
- package/lib/transpiler/processor-type-transpiler.js.map +0 -1
- package/lib/transpiler/transpiler.d.ts +0 -5
- package/lib/transpiler/transpiler.js +0 -30
- package/lib/transpiler/transpiler.js.map +0 -1
- package/lib/util/error-logger.d.ts +0 -8
- package/lib/util/error-logger.js +0 -90
- package/lib/util/error-logger.js.map +0 -1
- package/lib/util/logger.d.ts +0 -21
- package/lib/util/logger.js +0 -61
- package/lib/util/logger.js.map +0 -1
- package/lib/util/string-utils.d.ts +0 -2
- package/lib/util/string-utils.js +0 -15
- package/lib/util/string-utils.js.map +0 -1
- package/src/__spec__/core/generating-class-docs.spec.ts +0 -511
- package/src/adapters/__tests__/interface-adapter.spec.ts +0 -80
- package/src/adapters/type-utils.ts +0 -5
- package/src/adapters/types.d.ts +0 -8
- package/src/core/generate-docs.ts +0 -357
- package/src/model/apex-bundle.ts +0 -3
- package/src/model/inheritance.ts +0 -7
- package/src/model/manifest.ts +0 -84
- 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 -165
- 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 -92
- package/src/service/apex-file-reader.ts +0 -51
- 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 -147
- package/src/transpiler/factory.ts +0 -33
- 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 -78
- 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/markdown/plain-markdown/plain-docsProcessor.ts +0 -42
- package/src/transpiler/processor-type-transpiler.ts +0 -18
- /package/examples/{plain-markdown → markdown}/.forceignore +0 -0
- /package/examples/{plain-markdown → markdown}/config/project-scratch-def.json +0 -0
- /package/examples/{plain-markdown → markdown}/force-app/classes/BaseClass.cls +0 -0
- /package/examples/{plain-markdown → markdown}/force-app/classes/ParentInterface.cls +0 -0
- /package/examples/{plain-markdown → markdown}/force-app/classes/ReferencedEnum.cls +0 -0
- /package/examples/{plain-markdown → markdown}/force-app/classes/SampleClass.cls +0 -0
- /package/examples/{plain-markdown → markdown}/force-app/classes/SampleEnum.cls +0 -0
- /package/examples/{plain-markdown → markdown}/force-app/classes/SampleInterface.cls +0 -0
- /package/examples/{plain-markdown → markdown}/package-lock.json +0 -0
- /package/examples/{plain-markdown → markdown}/sfdx-project.json +0 -0
- /package/src/{service → application}/file-system.ts +0 -0
- /package/src/{model/__tests__ → core/__test__}/manifest.spec.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}/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}/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,5 +1,5 @@
|
|
|
1
1
|
import { assertEither, extendExpect } from './expect-extensions';
|
|
2
|
-
import { generateDocs } from '
|
|
2
|
+
import { apexBundleFromRawString, generateDocs } from './test-helpers';
|
|
3
3
|
|
|
4
4
|
describe('Generates interface documentation', () => {
|
|
5
5
|
beforeAll(() => {
|
|
@@ -7,39 +7,29 @@ describe('Generates interface documentation', () => {
|
|
|
7
7
|
});
|
|
8
8
|
|
|
9
9
|
describe('documentation output', () => {
|
|
10
|
-
it('
|
|
11
|
-
const input = `
|
|
12
|
-
public interface MyInterface {
|
|
13
|
-
}
|
|
14
|
-
`;
|
|
15
|
-
|
|
16
|
-
const result = generateDocs([input]);
|
|
17
|
-
assertEither(result, (data) => expect(data.format).toBe('markdown'));
|
|
18
|
-
});
|
|
19
|
-
|
|
20
|
-
it('returns the name of the interface', () => {
|
|
10
|
+
it('returns the name of the interface', async () => {
|
|
21
11
|
const input = `
|
|
22
12
|
public interface MyInterface {
|
|
23
13
|
}
|
|
24
14
|
`;
|
|
25
15
|
|
|
26
|
-
const result = generateDocs([input]);
|
|
16
|
+
const result = await generateDocs([apexBundleFromRawString(input)])();
|
|
27
17
|
expect(result).documentationBundleHasLength(1);
|
|
28
|
-
assertEither(result, (data) => expect(data.docs[0].
|
|
18
|
+
assertEither(result, (data) => expect(data.docs[0].source.name).toBe('MyInterface'));
|
|
29
19
|
});
|
|
30
20
|
|
|
31
|
-
it('returns the type as interface', () => {
|
|
21
|
+
it('returns the type as interface', async () => {
|
|
32
22
|
const input = `
|
|
33
23
|
public interface MyInterface {
|
|
34
24
|
}
|
|
35
25
|
`;
|
|
36
26
|
|
|
37
|
-
const result = generateDocs([input]);
|
|
27
|
+
const result = await generateDocs([apexBundleFromRawString(input)])();
|
|
38
28
|
expect(result).documentationBundleHasLength(1);
|
|
39
|
-
assertEither(result, (data) => expect(data.docs[0].type).toBe('interface'));
|
|
29
|
+
assertEither(result, (data) => expect(data.docs[0].source.type).toBe('interface'));
|
|
40
30
|
});
|
|
41
31
|
|
|
42
|
-
it('does not return interfaces out of scope', () => {
|
|
32
|
+
it('does not return interfaces out of scope', async () => {
|
|
43
33
|
const input1 = `
|
|
44
34
|
global interface MyInterface {}
|
|
45
35
|
`;
|
|
@@ -48,22 +38,24 @@ describe('Generates interface documentation', () => {
|
|
|
48
38
|
public interface AnotherInterface {}
|
|
49
39
|
`;
|
|
50
40
|
|
|
51
|
-
const result = generateDocs([input1, input2], {
|
|
41
|
+
const result = await generateDocs([apexBundleFromRawString(input1), apexBundleFromRawString(input2)], {
|
|
42
|
+
scope: ['global'],
|
|
43
|
+
})();
|
|
52
44
|
expect(result).documentationBundleHasLength(1);
|
|
53
45
|
});
|
|
54
46
|
|
|
55
|
-
it('does not return interfaces that have an @ignore in the docs', () => {
|
|
47
|
+
it('does not return interfaces that have an @ignore in the docs', async () => {
|
|
56
48
|
const input = `
|
|
57
49
|
/**
|
|
58
50
|
* @ignore
|
|
59
51
|
*/
|
|
60
52
|
public interface MyInterface {}`;
|
|
61
53
|
|
|
62
|
-
const result = generateDocs([input]);
|
|
54
|
+
const result = await generateDocs([apexBundleFromRawString(input)])();
|
|
63
55
|
expect(result).documentationBundleHasLength(0);
|
|
64
56
|
});
|
|
65
57
|
|
|
66
|
-
it('does not return interface methods that have @ignore in the docs', () => {
|
|
58
|
+
it('does not return interface methods that have @ignore in the docs', async () => {
|
|
67
59
|
const input = `
|
|
68
60
|
public interface MyInterface {
|
|
69
61
|
/**
|
|
@@ -72,26 +64,26 @@ describe('Generates interface documentation', () => {
|
|
|
72
64
|
void myMethod();
|
|
73
65
|
}`;
|
|
74
66
|
|
|
75
|
-
const result = generateDocs([input]);
|
|
67
|
+
const result = await generateDocs([apexBundleFromRawString(input)])();
|
|
76
68
|
expect(result).documentationBundleHasLength(1);
|
|
77
|
-
assertEither(result, (data) => expect(data.docs[0].
|
|
69
|
+
assertEither(result, (data) => expect(data.docs[0].content).not.toContain('myMethod'));
|
|
78
70
|
});
|
|
79
71
|
});
|
|
80
72
|
|
|
81
73
|
describe('documentation content', () => {
|
|
82
74
|
describe('type level information', () => {
|
|
83
|
-
it('generates a heading with the interface name', () => {
|
|
75
|
+
it('generates a heading with the interface name', async () => {
|
|
84
76
|
const input = `
|
|
85
77
|
public interface MyInterface {}
|
|
86
78
|
`;
|
|
87
79
|
|
|
88
80
|
const output = `# MyInterface Interface`;
|
|
89
|
-
const result = generateDocs([input]);
|
|
81
|
+
const result = await generateDocs([apexBundleFromRawString(input)])();
|
|
90
82
|
expect(result).documentationBundleHasLength(1);
|
|
91
83
|
assertEither(result, (data) => expect(data).firstDocContains(output));
|
|
92
84
|
});
|
|
93
85
|
|
|
94
|
-
it('displays type level annotations', () => {
|
|
86
|
+
it('displays type level annotations', async () => {
|
|
95
87
|
const input = `
|
|
96
88
|
@NamespaceAccessible
|
|
97
89
|
public interface MyInterface {
|
|
@@ -100,13 +92,13 @@ describe('Generates interface documentation', () => {
|
|
|
100
92
|
}
|
|
101
93
|
`;
|
|
102
94
|
|
|
103
|
-
const result = generateDocs([input]);
|
|
95
|
+
const result = await generateDocs([apexBundleFromRawString(input)])();
|
|
104
96
|
expect(result).documentationBundleHasLength(1);
|
|
105
97
|
assertEither(result, (data) => expect(data).firstDocContains('NAMESPACEACCESSIBLE'));
|
|
106
98
|
assertEither(result, (data) => expect(data).firstDocContains('DEPRECATED'));
|
|
107
99
|
});
|
|
108
100
|
|
|
109
|
-
it('displays the description', () => {
|
|
101
|
+
it('displays the description', async () => {
|
|
110
102
|
const input = `
|
|
111
103
|
/**
|
|
112
104
|
* This is a description
|
|
@@ -114,12 +106,12 @@ describe('Generates interface documentation', () => {
|
|
|
114
106
|
public interface MyInterface {}
|
|
115
107
|
`;
|
|
116
108
|
|
|
117
|
-
const result = generateDocs([input]);
|
|
109
|
+
const result = await generateDocs([apexBundleFromRawString(input)])();
|
|
118
110
|
expect(result).documentationBundleHasLength(1);
|
|
119
111
|
assertEither(result, (data) => expect(data).firstDocContains('This is a description'));
|
|
120
112
|
});
|
|
121
113
|
|
|
122
|
-
it('display custom documentation tags', () => {
|
|
114
|
+
it('display custom documentation tags', async () => {
|
|
123
115
|
const input = `
|
|
124
116
|
/**
|
|
125
117
|
* @custom-tag My Value
|
|
@@ -127,64 +119,64 @@ describe('Generates interface documentation', () => {
|
|
|
127
119
|
public interface MyInterface {}
|
|
128
120
|
`;
|
|
129
121
|
|
|
130
|
-
const result = generateDocs([input]);
|
|
122
|
+
const result = await generateDocs([apexBundleFromRawString(input)])();
|
|
131
123
|
expect(result).documentationBundleHasLength(1);
|
|
132
124
|
assertEither(result, (data) => expect(data).firstDocContains('Custom Tag'));
|
|
133
125
|
assertEither(result, (data) => expect(data).firstDocContains('My Value'));
|
|
134
126
|
});
|
|
135
127
|
|
|
136
|
-
it('displays the group', () => {
|
|
128
|
+
it('displays the group', async () => {
|
|
137
129
|
const input = `
|
|
138
130
|
/**
|
|
139
131
|
* @group MyGroup
|
|
140
132
|
*/
|
|
141
133
|
public interface MyInterface {}`;
|
|
142
134
|
|
|
143
|
-
const result = generateDocs([input]);
|
|
135
|
+
const result = await generateDocs([apexBundleFromRawString(input)])();
|
|
144
136
|
expect(result).documentationBundleHasLength(1);
|
|
145
137
|
assertEither(result, (data) => expect(data).firstDocContains('Group'));
|
|
146
138
|
assertEither(result, (data) => expect(data).firstDocContains('MyGroup'));
|
|
147
139
|
});
|
|
148
140
|
|
|
149
|
-
it('displays the author', () => {
|
|
141
|
+
it('displays the author', async () => {
|
|
150
142
|
const input = `
|
|
151
143
|
/**
|
|
152
144
|
* @author John Doe
|
|
153
145
|
*/
|
|
154
146
|
public interface MyInterface {}`;
|
|
155
147
|
|
|
156
|
-
const result = generateDocs([input]);
|
|
148
|
+
const result = await generateDocs([apexBundleFromRawString(input)])();
|
|
157
149
|
expect(result).documentationBundleHasLength(1);
|
|
158
150
|
assertEither(result, (data) => expect(data).firstDocContains('Author'));
|
|
159
151
|
assertEither(result, (data) => expect(data).firstDocContains('John Doe'));
|
|
160
152
|
});
|
|
161
153
|
|
|
162
|
-
it('displays the date', () => {
|
|
154
|
+
it('displays the date', async () => {
|
|
163
155
|
const input = `
|
|
164
156
|
/**
|
|
165
157
|
* @date 2021-01-01
|
|
166
158
|
*/
|
|
167
159
|
public interface MyInterface {}`;
|
|
168
160
|
|
|
169
|
-
const result = generateDocs([input]);
|
|
161
|
+
const result = await generateDocs([apexBundleFromRawString(input)])();
|
|
170
162
|
expect(result).documentationBundleHasLength(1);
|
|
171
163
|
assertEither(result, (data) => expect(data).firstDocContains('Date'));
|
|
172
164
|
assertEither(result, (data) => expect(data).firstDocContains('2021-01-01'));
|
|
173
165
|
});
|
|
174
166
|
|
|
175
|
-
it('displays descriptions', () => {
|
|
167
|
+
it('displays descriptions', async () => {
|
|
176
168
|
const input = `
|
|
177
169
|
/**
|
|
178
170
|
* @description This is a description
|
|
179
171
|
*/
|
|
180
172
|
public interface MyInterface {}`;
|
|
181
173
|
|
|
182
|
-
const result = generateDocs([input]);
|
|
174
|
+
const result = await generateDocs([apexBundleFromRawString(input)])();
|
|
183
175
|
expect(result).documentationBundleHasLength(1);
|
|
184
176
|
assertEither(result, (data) => expect(data).firstDocContains('This is a description'));
|
|
185
177
|
});
|
|
186
178
|
|
|
187
|
-
it('displays descriptions with links', () => {
|
|
179
|
+
it('displays descriptions with links', async () => {
|
|
188
180
|
const input1 = `
|
|
189
181
|
/**
|
|
190
182
|
* @description This is a description with a {@link InterfaceRef} reference
|
|
@@ -194,14 +186,16 @@ describe('Generates interface documentation', () => {
|
|
|
194
186
|
|
|
195
187
|
const input2 = 'public interface InterfaceRef {}';
|
|
196
188
|
|
|
197
|
-
const result = generateDocs([input1, input2]);
|
|
189
|
+
const result = await generateDocs([apexBundleFromRawString(input1), apexBundleFromRawString(input2)])();
|
|
198
190
|
expect(result).documentationBundleHasLength(2);
|
|
199
191
|
assertEither(result, (data) =>
|
|
200
|
-
expect(data).firstDocContains(
|
|
192
|
+
expect(data).firstDocContains(
|
|
193
|
+
'This is a description with a [InterfaceRef](/miscellaneous/InterfaceRef.md) reference',
|
|
194
|
+
),
|
|
201
195
|
);
|
|
202
196
|
});
|
|
203
197
|
|
|
204
|
-
it('displays descriptions with emails', () => {
|
|
198
|
+
it('displays descriptions with emails', async () => {
|
|
205
199
|
const input = `
|
|
206
200
|
/**
|
|
207
201
|
* @description This is a description with an {@email test@testerson.com} email
|
|
@@ -209,7 +203,7 @@ describe('Generates interface documentation', () => {
|
|
|
209
203
|
public interface MyInterface {}
|
|
210
204
|
`;
|
|
211
205
|
|
|
212
|
-
const result = generateDocs([input]);
|
|
206
|
+
const result = await generateDocs([apexBundleFromRawString(input)])();
|
|
213
207
|
expect(result).documentationBundleHasLength(1);
|
|
214
208
|
assertEither(result, (data) =>
|
|
215
209
|
expect(data).firstDocContains(
|
|
@@ -218,7 +212,7 @@ describe('Generates interface documentation', () => {
|
|
|
218
212
|
);
|
|
219
213
|
});
|
|
220
214
|
|
|
221
|
-
it('displays sees with accurately resolved links', () => {
|
|
215
|
+
it('displays sees with accurately resolved links', async () => {
|
|
222
216
|
const input1 = `
|
|
223
217
|
/**
|
|
224
218
|
* @see InterfaceRef
|
|
@@ -228,13 +222,13 @@ describe('Generates interface documentation', () => {
|
|
|
228
222
|
|
|
229
223
|
const input2 = 'public interface InterfaceRef {}';
|
|
230
224
|
|
|
231
|
-
const result = generateDocs([input1, input2]);
|
|
225
|
+
const result = await generateDocs([apexBundleFromRawString(input1), apexBundleFromRawString(input2)])();
|
|
232
226
|
expect(result).documentationBundleHasLength(2);
|
|
233
227
|
assertEither(result, (data) => expect(data).firstDocContains('See'));
|
|
234
|
-
assertEither(result, (data) => expect(data).firstDocContains('[InterfaceRef](
|
|
228
|
+
assertEither(result, (data) => expect(data).firstDocContains('[InterfaceRef](/miscellaneous/InterfaceRef.md)'));
|
|
235
229
|
});
|
|
236
230
|
|
|
237
|
-
it('displays sees without links when the reference is not found', () => {
|
|
231
|
+
it('displays sees without links when the reference is not found', async () => {
|
|
238
232
|
const input = `
|
|
239
233
|
/**
|
|
240
234
|
* @see InterfaceRef
|
|
@@ -242,61 +236,65 @@ describe('Generates interface documentation', () => {
|
|
|
242
236
|
public interface MyInterface {}
|
|
243
237
|
`;
|
|
244
238
|
|
|
245
|
-
const result = generateDocs([input]);
|
|
239
|
+
const result = await generateDocs([apexBundleFromRawString(input)])();
|
|
246
240
|
expect(result).documentationBundleHasLength(1);
|
|
247
241
|
assertEither(result, (data) => expect(data).firstDocContains('See'));
|
|
248
242
|
assertEither(result, (data) => expect(data).firstDocContains('InterfaceRef'));
|
|
249
243
|
});
|
|
250
244
|
|
|
251
|
-
it('displays the namespace if present in the config', () => {
|
|
245
|
+
it('displays the namespace if present in the config', async () => {
|
|
252
246
|
const input = 'public interface MyInterface {}';
|
|
253
247
|
|
|
254
|
-
const result = generateDocs([input], { namespace: 'MyNamespace' });
|
|
248
|
+
const result = await generateDocs([apexBundleFromRawString(input)], { namespace: 'MyNamespace' })();
|
|
255
249
|
expect(result).documentationBundleHasLength(1);
|
|
256
250
|
assertEither(result, (data) => expect(data).firstDocContains('## Namespace'));
|
|
257
251
|
assertEither(result, (data) => expect(data).firstDocContains('MyNamespace'));
|
|
258
252
|
});
|
|
259
253
|
|
|
260
|
-
it('does not display the namespace if not present in the config', () => {
|
|
254
|
+
it('does not display the namespace if not present in the config', async () => {
|
|
261
255
|
const input = 'public interface MyInterface {}';
|
|
262
256
|
|
|
263
|
-
const result = generateDocs([input]);
|
|
257
|
+
const result = await generateDocs([apexBundleFromRawString(input)])();
|
|
264
258
|
expect(result).documentationBundleHasLength(1);
|
|
265
259
|
assertEither(result, (data) => expect(data).firstDocContainsNot('## Namespace'));
|
|
266
260
|
});
|
|
267
261
|
|
|
268
|
-
it('displays a mermaid diagram', () => {
|
|
262
|
+
it('displays a mermaid diagram', async () => {
|
|
269
263
|
const input = `
|
|
270
264
|
/**
|
|
271
265
|
* @mermaid
|
|
266
|
+
* \`\`\`mermaid
|
|
272
267
|
* graph TD
|
|
273
268
|
* A[Square Rect] -- Link text --> B((Circle))
|
|
274
269
|
* A --> C(Round Rect)
|
|
275
270
|
* B --> D{Rhombus}
|
|
276
271
|
* C --> D
|
|
272
|
+
* \`\`\`
|
|
277
273
|
*/
|
|
278
274
|
public interface MyInterface {}
|
|
279
275
|
`;
|
|
280
276
|
|
|
281
|
-
const result = generateDocs([input]);
|
|
277
|
+
const result = await generateDocs([apexBundleFromRawString(input)])();
|
|
282
278
|
expect(result).documentationBundleHasLength(1);
|
|
283
279
|
assertEither(result, (data) => expect(data).firstDocContains('```mermaid'));
|
|
284
280
|
assertEither(result, (data) => expect(data).firstDocContains('graph TD'));
|
|
285
281
|
});
|
|
286
282
|
|
|
287
|
-
it('displays an example code block', () => {
|
|
283
|
+
it('displays an example code block', async () => {
|
|
288
284
|
const input = `
|
|
289
285
|
/**
|
|
290
286
|
* @example
|
|
287
|
+
* \`\`\`apex
|
|
291
288
|
* public class MyClass {
|
|
292
289
|
* public void myMethod() {
|
|
293
290
|
* System.debug('Hello, World!');
|
|
294
291
|
* }
|
|
295
292
|
* }
|
|
293
|
+
* \`\`\`
|
|
296
294
|
*/
|
|
297
295
|
public interface MyInterface {}`;
|
|
298
296
|
|
|
299
|
-
const result = generateDocs([input]);
|
|
297
|
+
const result = await generateDocs([apexBundleFromRawString(input)])();
|
|
300
298
|
expect(result).documentationBundleHasLength(1);
|
|
301
299
|
assertEither(result, (data) => expect(data).firstDocContains('```apex'));
|
|
302
300
|
assertEither(result, (data) => expect(data).firstDocContains('public class MyClass'));
|
|
@@ -304,40 +302,72 @@ describe('Generates interface documentation', () => {
|
|
|
304
302
|
});
|
|
305
303
|
|
|
306
304
|
describe('method information', () => {
|
|
307
|
-
it('displays the Method heading', () => {
|
|
305
|
+
it('displays the Method heading', async () => {
|
|
308
306
|
const input = `
|
|
309
307
|
public interface MyInterface {
|
|
310
308
|
void myMethod();
|
|
311
309
|
}
|
|
312
310
|
`;
|
|
313
311
|
|
|
314
|
-
const result = generateDocs([input]);
|
|
312
|
+
const result = await generateDocs([apexBundleFromRawString(input)])();
|
|
315
313
|
expect(result).documentationBundleHasLength(1);
|
|
316
314
|
assertEither(result, (data) => expect(data).firstDocContains('## Methods'));
|
|
317
315
|
});
|
|
318
316
|
|
|
319
|
-
it('
|
|
317
|
+
it('displays methods sorted if sortMembersAlphabetically is true', async () => {
|
|
318
|
+
const input = `
|
|
319
|
+
public interface MyInterface {
|
|
320
|
+
void myMethod();
|
|
321
|
+
void anotherMethod();
|
|
322
|
+
}
|
|
323
|
+
`;
|
|
324
|
+
|
|
325
|
+
const result = await generateDocs([apexBundleFromRawString(input)], { sortMembersAlphabetically: true })();
|
|
326
|
+
expect(result).documentationBundleHasLength(1);
|
|
327
|
+
assertEither(result, (data) => {
|
|
328
|
+
expect(data.docs[0].content.indexOf('anotherMethod')).toBeLessThan(data.docs[0].content.indexOf('myMethod'));
|
|
329
|
+
});
|
|
330
|
+
});
|
|
331
|
+
|
|
332
|
+
it('does not display methods sorted if sortMembersAlphabetically is false', async () => {
|
|
333
|
+
const input = `
|
|
334
|
+
public interface MyInterface {
|
|
335
|
+
void myMethod();
|
|
336
|
+
void anotherMethod();
|
|
337
|
+
}
|
|
338
|
+
`;
|
|
339
|
+
|
|
340
|
+
const result = await generateDocs([apexBundleFromRawString(input)], { sortMembersAlphabetically: false })();
|
|
341
|
+
expect(result).documentationBundleHasLength(1);
|
|
342
|
+
assertEither(result, (data) => {
|
|
343
|
+
expect(data.docs[0].content.indexOf('myMethod')).toBeLessThan(data.docs[0].content.indexOf('anotherMethod'));
|
|
344
|
+
});
|
|
345
|
+
});
|
|
346
|
+
|
|
347
|
+
it('supports having mermaid diagrams in method descriptions', async () => {
|
|
320
348
|
const input = `
|
|
321
349
|
public interface MyInterface {
|
|
322
350
|
/**
|
|
323
351
|
* @mermaid
|
|
352
|
+
* \`\`\`mermaid
|
|
324
353
|
* graph TD
|
|
325
354
|
* A[Square Rect] -- Link text --> B((Circle))
|
|
326
355
|
* A --> C(Round Rect)
|
|
327
356
|
* B --> D{Rhombus}
|
|
328
357
|
* C --> D
|
|
358
|
+
* \`\`\`
|
|
329
359
|
*/
|
|
330
360
|
void myMethod();
|
|
331
361
|
}
|
|
332
362
|
`;
|
|
333
363
|
|
|
334
|
-
const result = generateDocs([input]);
|
|
364
|
+
const result = await generateDocs([apexBundleFromRawString(input)])();
|
|
335
365
|
expect(result).documentationBundleHasLength(1);
|
|
336
366
|
assertEither(result, (data) => expect(data).firstDocContains('```mermaid'));
|
|
337
367
|
assertEither(result, (data) => expect(data).firstDocContains('graph TD'));
|
|
338
368
|
});
|
|
339
369
|
|
|
340
|
-
it('supports having example code blocks in method descriptions', () => {
|
|
370
|
+
it('supports having example code blocks in method descriptions', async () => {
|
|
341
371
|
const input = `
|
|
342
372
|
public interface MyInterface {
|
|
343
373
|
/**
|
|
@@ -352,49 +382,49 @@ describe('Generates interface documentation', () => {
|
|
|
352
382
|
}
|
|
353
383
|
`;
|
|
354
384
|
|
|
355
|
-
const result = generateDocs([input]);
|
|
385
|
+
const result = await generateDocs([apexBundleFromRawString(input)])();
|
|
356
386
|
expect(result).documentationBundleHasLength(1);
|
|
357
387
|
assertEither(result, (data) => expect(data).firstDocContains('```apex'));
|
|
358
388
|
assertEither(result, (data) => expect(data).firstDocContains('public class MyClass'));
|
|
359
389
|
});
|
|
360
390
|
|
|
361
|
-
it('has a signature section', () => {
|
|
391
|
+
it('has a signature section', async () => {
|
|
362
392
|
const input = `
|
|
363
393
|
public interface MyInterface {
|
|
364
394
|
void myMethod();
|
|
365
395
|
}
|
|
366
396
|
`;
|
|
367
397
|
|
|
368
|
-
const result = generateDocs([input]);
|
|
398
|
+
const result = await generateDocs([apexBundleFromRawString(input)])();
|
|
369
399
|
expect(result).documentationBundleHasLength(1);
|
|
370
400
|
assertEither(result, (data) => expect(data).firstDocContains('### Signature'));
|
|
371
401
|
});
|
|
372
402
|
|
|
373
|
-
it('has a parameters section', () => {
|
|
403
|
+
it('has a parameters section', async () => {
|
|
374
404
|
const input = `
|
|
375
405
|
public interface MyInterface {
|
|
376
406
|
void myMethod(String param1, Integer param2);
|
|
377
407
|
}
|
|
378
408
|
`;
|
|
379
409
|
|
|
380
|
-
const result = generateDocs([input]);
|
|
410
|
+
const result = await generateDocs([apexBundleFromRawString(input)])();
|
|
381
411
|
expect(result).documentationBundleHasLength(1);
|
|
382
412
|
assertEither(result, (data) => expect(data).firstDocContains('### Parameters'));
|
|
383
413
|
});
|
|
384
414
|
|
|
385
|
-
it('has a return type section', () => {
|
|
415
|
+
it('has a return type section', async () => {
|
|
386
416
|
const input = `
|
|
387
417
|
public interface MyInterface {
|
|
388
418
|
String myMethod();
|
|
389
419
|
}
|
|
390
420
|
`;
|
|
391
421
|
|
|
392
|
-
const result = generateDocs([input]);
|
|
422
|
+
const result = await generateDocs([apexBundleFromRawString(input)])();
|
|
393
423
|
expect(result).documentationBundleHasLength(1);
|
|
394
424
|
assertEither(result, (data) => expect(data).firstDocContains('### Return Type'));
|
|
395
425
|
});
|
|
396
426
|
|
|
397
|
-
it('has a throws section', () => {
|
|
427
|
+
it('has a throws section', async () => {
|
|
398
428
|
const input = `
|
|
399
429
|
public interface MyInterface {
|
|
400
430
|
/**
|
|
@@ -404,12 +434,12 @@ describe('Generates interface documentation', () => {
|
|
|
404
434
|
}
|
|
405
435
|
`;
|
|
406
436
|
|
|
407
|
-
const result = generateDocs([input]);
|
|
437
|
+
const result = await generateDocs([apexBundleFromRawString(input)])();
|
|
408
438
|
expect(result).documentationBundleHasLength(1);
|
|
409
439
|
assertEither(result, (data) => expect(data).firstDocContains('### Throws'));
|
|
410
440
|
});
|
|
411
441
|
|
|
412
|
-
it('displays an "inherited" tag if the method was inherited from a different interface', () => {
|
|
442
|
+
it('displays an "inherited" tag if the method was inherited from a different interface', async () => {
|
|
413
443
|
const input1 = `
|
|
414
444
|
public interface MyInterface {
|
|
415
445
|
void myMethod();
|
|
@@ -420,10 +450,10 @@ describe('Generates interface documentation', () => {
|
|
|
420
450
|
public interface AnotherInterface extends MyInterface {}
|
|
421
451
|
`;
|
|
422
452
|
|
|
423
|
-
const result = generateDocs([input1, input2]);
|
|
453
|
+
const result = await generateDocs([apexBundleFromRawString(input1), apexBundleFromRawString(input2)])();
|
|
424
454
|
expect(result).documentationBundleHasLength(2);
|
|
425
455
|
assertEither(result, (data) =>
|
|
426
|
-
expect(data.docs.find((doc) => doc.
|
|
456
|
+
expect(data.docs.find((doc) => doc.filePath.includes('AnotherInterface'))?.content).toContain('Inherited'),
|
|
427
457
|
);
|
|
428
458
|
});
|
|
429
459
|
});
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import { assertEither, extendExpect } from './expect-extensions';
|
|
2
|
-
import { generateDocs } from '../../core/generate-docs';
|
|
3
2
|
import { pipe } from 'fp-ts/function';
|
|
4
3
|
import * as E from 'fp-ts/Either';
|
|
4
|
+
import { apexBundleFromRawString, generateDocs } from './test-helpers';
|
|
5
|
+
import { ReferenceGuidePageData } from '../../shared/types';
|
|
5
6
|
|
|
6
7
|
describe('Generates a Reference Guide', () => {
|
|
7
8
|
beforeAll(() => {
|
|
8
9
|
extendExpect();
|
|
9
10
|
});
|
|
10
11
|
|
|
11
|
-
it('returns a reference guide with links to all other files', () => {
|
|
12
|
+
it('returns a reference guide with links to all other files', async () => {
|
|
12
13
|
const input1 = `
|
|
13
14
|
public enum MyEnum {
|
|
14
15
|
VALUE1,
|
|
@@ -20,14 +21,18 @@ describe('Generates a Reference Guide', () => {
|
|
|
20
21
|
public class MyClass {}
|
|
21
22
|
`;
|
|
22
23
|
|
|
23
|
-
const result = generateDocs([input1, input2]);
|
|
24
|
+
const result = await generateDocs([apexBundleFromRawString(input1), apexBundleFromRawString(input2)])();
|
|
24
25
|
expect(result).documentationBundleHasLength(2);
|
|
25
26
|
|
|
26
|
-
assertEither(result, (data) =>
|
|
27
|
-
|
|
27
|
+
assertEither(result, (data) =>
|
|
28
|
+
expect((data.referenceGuide as ReferenceGuidePageData).content).toContain('[MyEnum](/miscellaneous/MyEnum.md)'),
|
|
29
|
+
);
|
|
30
|
+
assertEither(result, (data) =>
|
|
31
|
+
expect((data.referenceGuide as ReferenceGuidePageData).content).toContain('[MyClass](/miscellaneous/MyClass.md)'),
|
|
32
|
+
);
|
|
28
33
|
});
|
|
29
34
|
|
|
30
|
-
it('groups things under Miscellaneous if no group is provided', () => {
|
|
35
|
+
it('groups things under Miscellaneous if no group is provided', async () => {
|
|
31
36
|
const input = `
|
|
32
37
|
public enum MyEnum {
|
|
33
38
|
VALUE1,
|
|
@@ -35,12 +40,14 @@ describe('Generates a Reference Guide', () => {
|
|
|
35
40
|
}
|
|
36
41
|
`;
|
|
37
42
|
|
|
38
|
-
const result = generateDocs([input]);
|
|
43
|
+
const result = await generateDocs([apexBundleFromRawString(input)])();
|
|
39
44
|
expect(result).documentationBundleHasLength(1);
|
|
40
|
-
assertEither(result, (data) =>
|
|
45
|
+
assertEither(result, (data) =>
|
|
46
|
+
expect((data.referenceGuide as ReferenceGuidePageData).content).toContain('## Miscellaneous'),
|
|
47
|
+
);
|
|
41
48
|
});
|
|
42
49
|
|
|
43
|
-
it('group things under the provided group', () => {
|
|
50
|
+
it('group things under the provided group', async () => {
|
|
44
51
|
const input = `
|
|
45
52
|
/**
|
|
46
53
|
* @group MyGroup
|
|
@@ -51,12 +58,14 @@ describe('Generates a Reference Guide', () => {
|
|
|
51
58
|
}
|
|
52
59
|
`;
|
|
53
60
|
|
|
54
|
-
const result = generateDocs([input]);
|
|
61
|
+
const result = await generateDocs([apexBundleFromRawString(input)])();
|
|
55
62
|
expect(result).documentationBundleHasLength(1);
|
|
56
|
-
assertEither(result, (data) =>
|
|
63
|
+
assertEither(result, (data) =>
|
|
64
|
+
expect((data.referenceGuide as ReferenceGuidePageData).content).toContain('## MyGroup'),
|
|
65
|
+
);
|
|
57
66
|
});
|
|
58
67
|
|
|
59
|
-
it('displays groups in alphabetical order', () => {
|
|
68
|
+
it('displays groups in alphabetical order', async () => {
|
|
60
69
|
const input1 = `
|
|
61
70
|
/**
|
|
62
71
|
* @group ZGroup
|
|
@@ -74,13 +83,13 @@ describe('Generates a Reference Guide', () => {
|
|
|
74
83
|
public class MyClass {}
|
|
75
84
|
`;
|
|
76
85
|
|
|
77
|
-
const result = generateDocs([input1, input2]);
|
|
86
|
+
const result = await generateDocs([apexBundleFromRawString(input1), apexBundleFromRawString(input2)])();
|
|
78
87
|
expect(result).documentationBundleHasLength(2);
|
|
79
88
|
pipe(
|
|
80
89
|
result,
|
|
81
90
|
E.map((data) => ({
|
|
82
|
-
aGroupIndex: data.referenceGuide.indexOf('## AGroup'),
|
|
83
|
-
zGroupIndex: data.referenceGuide.indexOf('## ZGroup'),
|
|
91
|
+
aGroupIndex: (data.referenceGuide as ReferenceGuidePageData).content.indexOf('## AGroup'),
|
|
92
|
+
zGroupIndex: (data.referenceGuide as ReferenceGuidePageData).content.indexOf('## ZGroup'),
|
|
84
93
|
})),
|
|
85
94
|
E.match(
|
|
86
95
|
() => fail('Expected data'),
|
|
@@ -89,7 +98,7 @@ describe('Generates a Reference Guide', () => {
|
|
|
89
98
|
);
|
|
90
99
|
});
|
|
91
100
|
|
|
92
|
-
it('displays references within groups in alphabetical order', () => {
|
|
101
|
+
it('displays references within groups in alphabetical order', async () => {
|
|
93
102
|
const input1 = `
|
|
94
103
|
/**
|
|
95
104
|
* @group Group1
|
|
@@ -107,14 +116,18 @@ describe('Generates a Reference Guide', () => {
|
|
|
107
116
|
public class MyClass {}
|
|
108
117
|
`;
|
|
109
118
|
|
|
110
|
-
const result = generateDocs([input1, input2]);
|
|
119
|
+
const result = await generateDocs([apexBundleFromRawString(input1), apexBundleFromRawString(input2)])();
|
|
111
120
|
expect(result).documentationBundleHasLength(2);
|
|
112
|
-
assertEither(result, (data) =>
|
|
113
|
-
|
|
114
|
-
|
|
121
|
+
assertEither(result, (data) =>
|
|
122
|
+
expect((data.referenceGuide as ReferenceGuidePageData).content).toContain('## Group1'),
|
|
123
|
+
);
|
|
124
|
+
assertEither(result, (data) =>
|
|
125
|
+
expect((data.referenceGuide as ReferenceGuidePageData).content).toContain('MyClass'),
|
|
126
|
+
);
|
|
127
|
+
assertEither(result, (data) => expect((data.referenceGuide as ReferenceGuidePageData).content).toContain('MyEnum'));
|
|
115
128
|
});
|
|
116
129
|
|
|
117
|
-
it('returns a reference guide with descriptions', () => {
|
|
130
|
+
it('returns a reference guide with descriptions', async () => {
|
|
118
131
|
const input1 = `
|
|
119
132
|
/**
|
|
120
133
|
* @description This is a description
|
|
@@ -132,12 +145,14 @@ describe('Generates a Reference Guide', () => {
|
|
|
132
145
|
public class MyClass {}
|
|
133
146
|
`;
|
|
134
147
|
|
|
135
|
-
const result = generateDocs([input1, input2]);
|
|
148
|
+
const result = await generateDocs([apexBundleFromRawString(input1), apexBundleFromRawString(input2)])();
|
|
136
149
|
expect(result).documentationBundleHasLength(2);
|
|
137
|
-
assertEither(result, (data) =>
|
|
150
|
+
assertEither(result, (data) =>
|
|
151
|
+
expect((data.referenceGuide as ReferenceGuidePageData).content).toContain('This is a description'),
|
|
152
|
+
);
|
|
138
153
|
});
|
|
139
154
|
|
|
140
|
-
it('returns a reference guide with descriptions with links to all other files', () => {
|
|
155
|
+
it('returns a reference guide with descriptions with links to all other files', async () => {
|
|
141
156
|
const input1 = `
|
|
142
157
|
/**
|
|
143
158
|
* @description This is a description with a {@link MyClass}
|
|
@@ -156,8 +171,10 @@ describe('Generates a Reference Guide', () => {
|
|
|
156
171
|
public class MyClass {}
|
|
157
172
|
`;
|
|
158
173
|
|
|
159
|
-
const result = generateDocs([input1, input2]);
|
|
174
|
+
const result = await generateDocs([apexBundleFromRawString(input1), apexBundleFromRawString(input2)])();
|
|
160
175
|
expect(result).documentationBundleHasLength(2);
|
|
161
|
-
assertEither(result, (data) =>
|
|
176
|
+
assertEither(result, (data) =>
|
|
177
|
+
expect((data.referenceGuide as ReferenceGuidePageData).content).toContain('with a [MyClass](/group2/MyClass.md)'),
|
|
178
|
+
);
|
|
162
179
|
});
|
|
163
180
|
});
|