aboutsummaryrefslogtreecommitdiff
path: root/test/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'test/scripts')
-rw-r--r--test/scripts/apidoc/__snapshots__/module.spec.ts.snap24
-rw-r--r--test/scripts/apidoc/module.example.ts11
-rw-r--r--test/scripts/apidoc/module.spec.ts27
-rw-r--r--test/scripts/apidoc/tsconfig.json2
-rw-r--r--test/scripts/apidoc/utils.ts20
5 files changed, 83 insertions, 1 deletions
diff --git a/test/scripts/apidoc/__snapshots__/module.spec.ts.snap b/test/scripts/apidoc/__snapshots__/module.spec.ts.snap
new file mode 100644
index 00000000..b3584e13
--- /dev/null
+++ b/test/scripts/apidoc/__snapshots__/module.spec.ts.snap
@@ -0,0 +1,24 @@
+// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
+
+exports[`module > analyzeModule() > ModuleFakerJsLinkTest 1`] = `
+{
+ "comment": "Description with a link to our [website](/)
+and [api docs](/api/).",
+ "deprecated": undefined,
+}
+`;
+
+exports[`module > analyzeModule() > ModuleNextFakerJsLinkTest 1`] = `
+{
+ "comment": "Description with a link to our [website](/)
+and [api docs](/api/).",
+ "deprecated": undefined,
+}
+`;
+
+exports[`module > analyzeModule() > expected and actual modules are equal 1`] = `
+[
+ "ModuleFakerJsLinkTest",
+ "ModuleNextFakerJsLinkTest",
+]
+`;
diff --git a/test/scripts/apidoc/module.example.ts b/test/scripts/apidoc/module.example.ts
new file mode 100644
index 00000000..ef646659
--- /dev/null
+++ b/test/scripts/apidoc/module.example.ts
@@ -0,0 +1,11 @@
+/**
+ * Description with a link to our [website](https://fakerjs.dev/)
+ * and [api docs](https://fakerjs.dev/api/).
+ */
+export class ModuleFakerJsLinkTest {}
+
+/**
+ * Description with a link to our [website](https://next.fakerjs.dev/)
+ * and [api docs](https://next.fakerjs.dev/api/).
+ */
+export class ModuleNextFakerJsLinkTest {}
diff --git a/test/scripts/apidoc/module.spec.ts b/test/scripts/apidoc/module.spec.ts
new file mode 100644
index 00000000..11a957aa
--- /dev/null
+++ b/test/scripts/apidoc/module.spec.ts
@@ -0,0 +1,27 @@
+import { beforeAll, describe, expect, it } from 'vitest';
+import { initMarkdownRenderer } from '../../../scripts/apidoc/markdown';
+import { analyzeModule } from '../../../scripts/apidoc/moduleMethods';
+import * as ModuleTests from './module.example';
+import { loadExampleModules } from './utils';
+
+describe('module', () => {
+ describe('analyzeModule()', () => {
+ const modules = loadExampleModules();
+
+ beforeAll(initMarkdownRenderer);
+
+ it('dummy dependency to rerun the test if the example changes', () => {
+ expect(Object.keys(ModuleTests)).not.toEqual([]);
+ });
+
+ it('expected and actual modules are equal', () => {
+ expect(Object.keys(modules).sort()).toMatchSnapshot();
+ });
+
+ it.each(Object.entries(modules))('%s', (_, module) => {
+ const actual = analyzeModule(module);
+
+ expect(actual).toMatchSnapshot();
+ });
+ });
+});
diff --git a/test/scripts/apidoc/tsconfig.json b/test/scripts/apidoc/tsconfig.json
index 0f7afc34..dafe3a14 100644
--- a/test/scripts/apidoc/tsconfig.json
+++ b/test/scripts/apidoc/tsconfig.json
@@ -2,5 +2,5 @@
"compilerOptions": {
"target": "ES5"
},
- "include": ["signature.example.ts"]
+ "include": ["signature.example.ts", "module.example.ts"]
}
diff --git a/test/scripts/apidoc/utils.ts b/test/scripts/apidoc/utils.ts
index 281fb2ef..2addfe65 100644
--- a/test/scripts/apidoc/utils.ts
+++ b/test/scripts/apidoc/utils.ts
@@ -39,3 +39,23 @@ export function loadExampleMethods(): Record<string, SignatureReflection> {
true
)['SignatureTest'][1];
}
+
+/**
+ * Loads the example modules using TypeDoc.
+ */
+export function loadExampleModules(): Record<string, DeclarationReflection> {
+ const modules = loadProjectModules(
+ {
+ entryPoints: ['test/scripts/apidoc/module.example.ts'],
+ tsconfig: 'test/scripts/apidoc/tsconfig.json',
+ },
+ true
+ );
+
+ const result: Record<string, DeclarationReflection> = {};
+ for (const key in modules) {
+ result[key] = modules[key][0];
+ }
+
+ return result;
+}