aboutsummaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
Diffstat (limited to 'test')
-rw-r--r--test/scripts/apidoc/.gitignore1
-rw-r--r--test/scripts/apidoc/__snapshots__/signature.spec.ts.snap506
-rw-r--r--test/scripts/apidoc/signature.expected.json331
-rw-r--r--test/scripts/apidoc/signature.spec.ts28
4 files changed, 510 insertions, 356 deletions
diff --git a/test/scripts/apidoc/.gitignore b/test/scripts/apidoc/.gitignore
index 4d07e30e..a6d7ecd9 100644
--- a/test/scripts/apidoc/.gitignore
+++ b/test/scripts/apidoc/.gitignore
@@ -1,2 +1 @@
-*.actuals.json
temp/
diff --git a/test/scripts/apidoc/__snapshots__/signature.spec.ts.snap b/test/scripts/apidoc/__snapshots__/signature.spec.ts.snap
new file mode 100644
index 00000000..096e4b72
--- /dev/null
+++ b/test/scripts/apidoc/__snapshots__/signature.spec.ts.snap
@@ -0,0 +1,506 @@
+// Vitest Snapshot v1
+
+exports[`signature > analyzeSignature() > defaultBooleanParamMethod 1`] = `
+{
+ "deprecated": false,
+ "description": "<p>Test with a default parameter.</p>
+",
+ "examples": "<div class=\\"language-ts\\"><button title=\\"Copy Code\\" class=\\"copy\\"></button><span class=\\"lang\\">ts</span><pre v-pre class=\\"shiki\\" ><code><span class=\\"line\\"><span style=\\"color: #A6ACCD\\">faker</span><span style=\\"color: #89DDFF\\">.</span><span style=\\"color: #82AAFF\\">defaultBooleanParamMethod</span><span style=\\"color: #A6ACCD\\">(c: boolean </span><span style=\\"color: #89DDFF\\">=</span><span style=\\"color: #A6ACCD\\"> </span><span style=\\"color: #FF9CAC\\">true</span><span style=\\"color: #A6ACCD\\">): number</span></span>
+<span class=\\"line\\"></span></code></pre>
+</div>",
+ "name": "defaultBooleanParamMethod",
+ "parameters": [
+ {
+ "default": "true",
+ "description": "<p>The boolean parameter.</p>
+",
+ "name": "c",
+ "type": "boolean",
+ },
+ ],
+ "returns": "number",
+ "seeAlsos": [],
+ "since": "",
+ "title": "Default Boolean Param Method",
+}
+`;
+
+exports[`signature > analyzeSignature() > expected and actual methods are equal 1`] = `
+[
+ "defaultBooleanParamMethod",
+ "functionParamMethod",
+ "literalUnionParamMethod",
+ "methodWithDeprecated",
+ "methodWithExample",
+ "methodWithMultipleSeeMarkers",
+ "methodWithSinceMarker",
+ "multiParamMethod",
+ "noParamMethod",
+ "optionalStringParamMethod",
+ "optionsInlineParamMethodWithDefaults",
+ "optionsInterfaceParamMethodWithDefaults",
+ "optionsParamMethod",
+ "optionsTypeParamMethodWithDefaults",
+ "requiredNumberParamMethod",
+ "stringUnionParamMethod",
+]
+`;
+
+exports[`signature > analyzeSignature() > functionParamMethod 1`] = `
+{
+ "deprecated": false,
+ "description": "<p>Test with a function parameters.</p>
+",
+ "examples": "<div class=\\"language-ts\\"><button title=\\"Copy Code\\" class=\\"copy\\"></button><span class=\\"lang\\">ts</span><pre v-pre class=\\"shiki\\" ><code><span class=\\"line\\"><span style=\\"color: #A6ACCD\\">faker</span><span style=\\"color: #89DDFF\\">.</span><span style=\\"color: #82AAFF\\">functionParamMethod</span><span style=\\"color: #A6ACCD\\">(fn: </span><span style=\\"color: #89DDFF\\">(</span><span style=\\"color: #A6ACCD\\">a</span><span style=\\"color: #89DDFF\\">:</span><span style=\\"color: #A6ACCD\\"> </span><span style=\\"color: #FFCB6B\\">string</span><span style=\\"color: #89DDFF\\">)</span><span style=\\"color: #A6ACCD\\"> </span><span style=\\"color: #C792EA\\">=&gt;</span><span style=\\"color: #A6ACCD\\"> number): number</span></span>
+<span class=\\"line\\"></span></code></pre>
+</div>",
+ "name": "functionParamMethod",
+ "parameters": [
+ {
+ "default": undefined,
+ "description": "<p>The function parameter.</p>
+",
+ "name": "fn",
+ "type": "(a: string) => number",
+ },
+ ],
+ "returns": "number",
+ "seeAlsos": [],
+ "since": "",
+ "title": "Function Param Method",
+}
+`;
+
+exports[`signature > analyzeSignature() > literalUnionParamMethod 1`] = `
+{
+ "deprecated": false,
+ "description": "<p>Test with LiteralUnion.</p>
+",
+ "examples": "<div class=\\"language-ts\\"><button title=\\"Copy Code\\" class=\\"copy\\"></button><span class=\\"lang\\">ts</span><pre v-pre class=\\"shiki\\" ><code><span class=\\"line\\"><span style=\\"color: #A6ACCD\\">faker</span><span style=\\"color: #89DDFF\\">.</span><span style=\\"color: #82AAFF\\">literalUnionParamMethod</span><span style=\\"color: #A6ACCD\\">(value: </span><span style=\\"color: #89DDFF\\">&#39;</span><span style=\\"color: #C3E88D\\">a</span><span style=\\"color: #89DDFF\\">&#39;</span><span style=\\"color: #A6ACCD\\"> </span><span style=\\"color: #89DDFF\\">|</span><span style=\\"color: #A6ACCD\\"> </span><span style=\\"color: #89DDFF\\">&#39;</span><span style=\\"color: #C3E88D\\">b</span><span style=\\"color: #89DDFF\\">&#39;</span><span style=\\"color: #A6ACCD\\"> </span><span style=\\"color: #89DDFF\\">|</span><span style=\\"color: #A6ACCD\\"> string): string</span></span>
+<span class=\\"line\\"></span></code></pre>
+</div>",
+ "name": "literalUnionParamMethod",
+ "parameters": [
+ {
+ "default": undefined,
+ "description": "<p><code>'a'</code> or <code>'b'</code>.</p>
+",
+ "name": "value",
+ "type": "'a' | 'b' | string",
+ },
+ ],
+ "returns": "string",
+ "seeAlsos": [],
+ "since": "",
+ "title": "Literal Union Param Method",
+}
+`;
+
+exports[`signature > analyzeSignature() > methodWithDeprecated 1`] = `
+{
+ "deprecated": true,
+ "description": "<p>Test with deprecated and see marker.</p>
+",
+ "examples": "<div class=\\"language-ts\\"><button title=\\"Copy Code\\" class=\\"copy\\"></button><span class=\\"lang\\">ts</span><pre v-pre class=\\"shiki\\" ><code><span class=\\"line\\"><span style=\\"color: #A6ACCD\\">faker</span><span style=\\"color: #89DDFF\\">.</span><span style=\\"color: #82AAFF\\">methodWithDeprecated</span><span style=\\"color: #A6ACCD\\">(): number</span></span>
+<span class=\\"line\\"></span></code></pre>
+</div>",
+ "name": "methodWithDeprecated",
+ "parameters": [],
+ "returns": "number",
+ "seeAlsos": [
+ "test.apidoc.methodWithExample()",
+ ],
+ "since": "",
+ "title": "Method With Deprecated",
+}
+`;
+
+exports[`signature > analyzeSignature() > methodWithExample 1`] = `
+{
+ "deprecated": false,
+ "description": "<p>Test with example marker.</p>
+",
+ "examples": "<div class=\\"language-ts\\"><button title=\\"Copy Code\\" class=\\"copy\\"></button><span class=\\"lang\\">ts</span><pre v-pre class=\\"shiki\\" ><code><span class=\\"line\\"><span style=\\"color: #A6ACCD\\">faker</span><span style=\\"color: #89DDFF\\">.</span><span style=\\"color: #82AAFF\\">methodWithExample</span><span style=\\"color: #A6ACCD\\">(): number</span></span>
+<span class=\\"line\\"><span style=\\"color: #A6ACCD\\">test</span><span style=\\"color: #89DDFF\\">.</span><span style=\\"color: #A6ACCD\\">apidoc</span><span style=\\"color: #89DDFF\\">.</span><span style=\\"color: #82AAFF\\">methodWithExample</span><span style=\\"color: #A6ACCD\\">() </span><span style=\\"color: #676E95\\">// 0</span></span>
+<span class=\\"line\\"></span></code></pre>
+</div>",
+ "name": "methodWithExample",
+ "parameters": [],
+ "returns": "number",
+ "seeAlsos": [],
+ "since": "",
+ "title": "Method With Example",
+}
+`;
+
+exports[`signature > analyzeSignature() > methodWithMultipleSeeMarkers 1`] = `
+{
+ "deprecated": false,
+ "description": "<p>Test with multiple see markers.</p>
+",
+ "examples": "<div class=\\"language-ts\\"><button title=\\"Copy Code\\" class=\\"copy\\"></button><span class=\\"lang\\">ts</span><pre v-pre class=\\"shiki\\" ><code><span class=\\"line\\"><span style=\\"color: #A6ACCD\\">faker</span><span style=\\"color: #89DDFF\\">.</span><span style=\\"color: #82AAFF\\">methodWithMultipleSeeMarkers</span><span style=\\"color: #A6ACCD\\">(): number</span></span>
+<span class=\\"line\\"></span></code></pre>
+</div>",
+ "name": "methodWithMultipleSeeMarkers",
+ "parameters": [],
+ "returns": "number",
+ "seeAlsos": [
+ "test.apidoc.methodWithExample()",
+ "test.apidoc.methodWithDeprecated()",
+ ],
+ "since": "",
+ "title": "Method With Multiple See Markers",
+}
+`;
+
+exports[`signature > analyzeSignature() > methodWithSinceMarker 1`] = `
+{
+ "deprecated": false,
+ "description": "<p>Test with since marker.</p>
+",
+ "examples": "<div class=\\"language-ts\\"><button title=\\"Copy Code\\" class=\\"copy\\"></button><span class=\\"lang\\">ts</span><pre v-pre class=\\"shiki\\" ><code><span class=\\"line\\"><span style=\\"color: #A6ACCD\\">faker</span><span style=\\"color: #89DDFF\\">.</span><span style=\\"color: #82AAFF\\">methodWithSinceMarker</span><span style=\\"color: #A6ACCD\\">(): number</span></span>
+<span class=\\"line\\"></span></code></pre>
+</div>",
+ "name": "methodWithSinceMarker",
+ "parameters": [],
+ "returns": "number",
+ "seeAlsos": [],
+ "since": "1.0.0",
+ "title": "Method With Since Marker",
+}
+`;
+
+exports[`signature > analyzeSignature() > multiParamMethod 1`] = `
+{
+ "deprecated": false,
+ "description": "<p>Test with multiple parameters.</p>
+",
+ "examples": "<div class=\\"language-ts\\"><button title=\\"Copy Code\\" class=\\"copy\\"></button><span class=\\"lang\\">ts</span><pre v-pre class=\\"shiki\\" ><code><span class=\\"line\\"><span style=\\"color: #A6ACCD\\">faker</span><span style=\\"color: #89DDFF\\">.</span><span style=\\"color: #82AAFF\\">multiParamMethod</span><span style=\\"color: #A6ACCD\\">(a: number</span><span style=\\"color: #89DDFF\\">,</span><span style=\\"color: #A6ACCD\\"> b</span><span style=\\"color: #89DDFF\\">?:</span><span style=\\"color: #A6ACCD\\"> string</span><span style=\\"color: #89DDFF\\">,</span><span style=\\"color: #A6ACCD\\"> c: boolean </span><span style=\\"color: #89DDFF\\">=</span><span style=\\"color: #A6ACCD\\"> </span><span style=\\"color: #FF9CAC\\">true</span><span style=\\"color: #A6ACCD\\">): number</span></span>
+<span class=\\"line\\"></span></code></pre>
+</div>",
+ "name": "multiParamMethod",
+ "parameters": [
+ {
+ "default": undefined,
+ "description": "<p>The number parameter.</p>
+",
+ "name": "a",
+ "type": "number",
+ },
+ {
+ "default": undefined,
+ "description": "<p>The string parameter.</p>
+",
+ "name": "b?",
+ "type": "string",
+ },
+ {
+ "default": "true",
+ "description": "<p>The boolean parameter.</p>
+",
+ "name": "c",
+ "type": "boolean",
+ },
+ ],
+ "returns": "number",
+ "seeAlsos": [],
+ "since": "",
+ "title": "Multi Param Method",
+}
+`;
+
+exports[`signature > analyzeSignature() > noParamMethod 1`] = `
+{
+ "deprecated": false,
+ "description": "<p>Test with no parameters.</p>
+",
+ "examples": "<div class=\\"language-ts\\"><button title=\\"Copy Code\\" class=\\"copy\\"></button><span class=\\"lang\\">ts</span><pre v-pre class=\\"shiki\\" ><code><span class=\\"line\\"><span style=\\"color: #A6ACCD\\">faker</span><span style=\\"color: #89DDFF\\">.</span><span style=\\"color: #82AAFF\\">noParamMethod</span><span style=\\"color: #A6ACCD\\">(): number</span></span>
+<span class=\\"line\\"></span></code></pre>
+</div>",
+ "name": "noParamMethod",
+ "parameters": [],
+ "returns": "number",
+ "seeAlsos": [],
+ "since": "",
+ "title": "No Param Method",
+}
+`;
+
+exports[`signature > analyzeSignature() > optionalStringParamMethod 1`] = `
+{
+ "deprecated": false,
+ "description": "<p>Test with an optional parameter.</p>
+",
+ "examples": "<div class=\\"language-ts\\"><button title=\\"Copy Code\\" class=\\"copy\\"></button><span class=\\"lang\\">ts</span><pre v-pre class=\\"shiki\\" ><code><span class=\\"line\\"><span style=\\"color: #A6ACCD\\">faker</span><span style=\\"color: #89DDFF\\">.</span><span style=\\"color: #82AAFF\\">optionalStringParamMethod</span><span style=\\"color: #A6ACCD\\">(b</span><span style=\\"color: #89DDFF\\">?:</span><span style=\\"color: #A6ACCD\\"> string): number</span></span>
+<span class=\\"line\\"></span></code></pre>
+</div>",
+ "name": "optionalStringParamMethod",
+ "parameters": [
+ {
+ "default": undefined,
+ "description": "<p>The string parameter.</p>
+",
+ "name": "b?",
+ "type": "string",
+ },
+ ],
+ "returns": "number",
+ "seeAlsos": [],
+ "since": "",
+ "title": "Optional String Param Method",
+}
+`;
+
+exports[`signature > analyzeSignature() > optionsInlineParamMethodWithDefaults 1`] = `
+{
+ "deprecated": false,
+ "description": "<p>Test with a function parameters (inline types) with defaults.</p>
+",
+ "examples": "<div class=\\"language-ts\\"><button title=\\"Copy Code\\" class=\\"copy\\"></button><span class=\\"lang\\">ts</span><pre v-pre class=\\"shiki\\" ><code><span class=\\"line\\"><span style=\\"color: #A6ACCD\\">faker</span><span style=\\"color: #89DDFF\\">.</span><span style=\\"color: #82AAFF\\">optionsInlineParamMethodWithDefaults</span><span style=\\"color: #A6ACCD\\">(a: </span><span style=\\"color: #89DDFF\\">{</span></span>
+<span class=\\"line\\"><span style=\\"color: #A6ACCD\\"> </span><span style=\\"color: #F07178\\">value</span><span style=\\"color: #89DDFF\\">:</span><span style=\\"color: #A6ACCD\\"> number</span></span>
+<span class=\\"line\\"><span style=\\"color: #89DDFF\\">}</span><span style=\\"color: #A6ACCD\\"> </span><span style=\\"color: #89DDFF\\">=</span><span style=\\"color: #A6ACCD\\"> </span><span style=\\"color: #89DDFF\\">{</span><span style=\\"color: #A6ACCD\\"> </span><span style=\\"color: #F07178\\">value</span><span style=\\"color: #89DDFF\\">:</span><span style=\\"color: #A6ACCD\\"> </span><span style=\\"color: #F78C6C\\">1</span><span style=\\"color: #A6ACCD\\"> </span><span style=\\"color: #89DDFF\\">},</span><span style=\\"color: #A6ACCD\\"> b: </span><span style=\\"color: #89DDFF\\">{</span></span>
+<span class=\\"line\\"><span style=\\"color: #A6ACCD\\"> </span><span style=\\"color: #F07178\\">value</span><span style=\\"color: #89DDFF\\">:</span><span style=\\"color: #A6ACCD\\"> number</span></span>
+<span class=\\"line\\"><span style=\\"color: #89DDFF\\">}</span><span style=\\"color: #A6ACCD\\"> </span><span style=\\"color: #89DDFF\\">=</span><span style=\\"color: #A6ACCD\\"> </span><span style=\\"color: #89DDFF\\">{</span><span style=\\"color: #A6ACCD\\"> </span><span style=\\"color: #F07178\\">value</span><span style=\\"color: #89DDFF\\">:</span><span style=\\"color: #A6ACCD\\"> </span><span style=\\"color: #F78C6C\\">1</span><span style=\\"color: #A6ACCD\\"> </span><span style=\\"color: #89DDFF\\">},</span><span style=\\"color: #A6ACCD\\"> c: </span><span style=\\"color: #89DDFF\\">{</span></span>
+<span class=\\"line\\"><span style=\\"color: #A6ACCD\\"> </span><span style=\\"color: #F07178\\">value</span><span style=\\"color: #89DDFF\\">:</span><span style=\\"color: #A6ACCD\\"> number</span></span>
+<span class=\\"line\\"><span style=\\"color: #89DDFF\\">}</span><span style=\\"color: #A6ACCD\\">): number</span></span>
+<span class=\\"line\\"></span></code></pre>
+</div>",
+ "name": "optionsInlineParamMethodWithDefaults",
+ "parameters": [
+ {
+ "default": "{ value: 1 }",
+ "description": "<p>Parameter with signature default.
+It also has a more complex description.</p>
+",
+ "name": "a",
+ "type": "{ ... }",
+ },
+ {
+ "default": undefined,
+ "description": "<p>The number parameter.</p>
+",
+ "name": "a.value?",
+ "type": "number",
+ },
+ {
+ "default": "{ value: 1 }",
+ "description": "<p>Parameter with jsdocs default.</p>
+<p>It also has a more complex description.</p>
+",
+ "name": "b",
+ "type": "{ ... }",
+ },
+ {
+ "default": undefined,
+ "description": "<p>The number parameter.</p>
+",
+ "name": "b.value?",
+ "type": "number",
+ },
+ {
+ "default": undefined,
+ "description": "<p>Parameter with inner jsdocs default.</p>
+",
+ "name": "c",
+ "type": "{ ... }",
+ },
+ {
+ "default": "2",
+ "description": "<p>The number parameter. It also has a more complex description.</p>
+",
+ "name": "c.value?",
+ "type": "number",
+ },
+ ],
+ "returns": "number",
+ "seeAlsos": [],
+ "since": "",
+ "title": "Options Inline Param Method With Defaults",
+}
+`;
+
+exports[`signature > analyzeSignature() > optionsInterfaceParamMethodWithDefaults 1`] = `
+{
+ "deprecated": false,
+ "description": "<p>Test with a function parameters with defaults.</p>
+",
+ "examples": "<div class=\\"language-ts\\"><button title=\\"Copy Code\\" class=\\"copy\\"></button><span class=\\"lang\\">ts</span><pre v-pre class=\\"shiki\\" ><code><span class=\\"line\\"><span style=\\"color: #A6ACCD\\">faker</span><span style=\\"color: #89DDFF\\">.</span><span style=\\"color: #82AAFF\\">optionsInterfaceParamMethodWithDefaults</span><span style=\\"color: #A6ACCD\\">(a: ParameterOptionsInterfaceA </span><span style=\\"color: #89DDFF\\">=</span><span style=\\"color: #A6ACCD\\"> </span><span style=\\"color: #89DDFF\\">{</span><span style=\\"color: #A6ACCD\\"> </span><span style=\\"color: #F07178\\">value</span><span style=\\"color: #89DDFF\\">:</span><span style=\\"color: #A6ACCD\\"> </span><span style=\\"color: #F78C6C\\">1</span><span style=\\"color: #A6ACCD\\"> </span><span style=\\"color: #89DDFF\\">},</span><span style=\\"color: #A6ACCD\\"> b: ParameterOptionsInterfaceB </span><span style=\\"color: #89DDFF\\">=</span><span style=\\"color: #A6ACCD\\"> </span><span style=\\"color: #89DDFF\\">{</span><span style=\\"color: #A6ACCD\\"> </span><span style=\\"color: #F07178\\">value</span><span style=\\"color: #89DDFF\\">:</span><span style=\\"color: #A6ACCD\\"> </span><span style=\\"color: #F78C6C\\">1</span><span style=\\"color: #A6ACCD\\"> </span><span style=\\"color: #89DDFF\\">},</span><span style=\\"color: #A6ACCD\\"> c: ParameterOptionsInterfaceC): number</span></span>
+<span class=\\"line\\"></span></code></pre>
+</div>",
+ "name": "optionsInterfaceParamMethodWithDefaults",
+ "parameters": [
+ {
+ "default": "{ value: 1 }",
+ "description": "<p>Parameter with signature default.</p>
+",
+ "name": "a",
+ "type": "ParameterOptionsInterfaceA",
+ },
+ {
+ "default": "{ value: 1 }",
+ "description": "<p>Parameter with jsdocs default.</p>
+",
+ "name": "b",
+ "type": "ParameterOptionsInterfaceB",
+ },
+ {
+ "default": undefined,
+ "description": "<p>Parameter with inner jsdocs default.</p>
+",
+ "name": "c",
+ "type": "ParameterOptionsInterfaceC",
+ },
+ ],
+ "returns": "number",
+ "seeAlsos": [],
+ "since": "",
+ "title": "Options Interface Param Method With Defaults",
+}
+`;
+
+exports[`signature > analyzeSignature() > optionsParamMethod 1`] = `
+{
+ "deprecated": false,
+ "description": "<p>Test with a function parameters.</p>
+",
+ "examples": "<div class=\\"language-ts\\"><button title=\\"Copy Code\\" class=\\"copy\\"></button><span class=\\"lang\\">ts</span><pre v-pre class=\\"shiki\\" ><code><span class=\\"line\\"><span style=\\"color: #A6ACCD\\">faker</span><span style=\\"color: #89DDFF\\">.</span><span style=\\"color: #82AAFF\\">optionsParamMethod</span><span style=\\"color: #A6ACCD\\">(options: </span><span style=\\"color: #89DDFF\\">{</span></span>
+<span class=\\"line\\"><span style=\\"color: #A6ACCD\\"> </span><span style=\\"color: #F07178\\">a</span><span style=\\"color: #89DDFF\\">:</span><span style=\\"color: #A6ACCD\\"> number</span><span style=\\"color: #89DDFF\\">,</span></span>
+<span class=\\"line\\"><span style=\\"color: #A6ACCD\\"> </span><span style=\\"color: #F07178\\">b</span><span style=\\"color: #89DDFF\\">:</span><span style=\\"color: #A6ACCD\\"> string</span><span style=\\"color: #89DDFF\\">,</span></span>
+<span class=\\"line\\"><span style=\\"color: #A6ACCD\\"> </span><span style=\\"color: #F07178\\">c</span><span style=\\"color: #89DDFF\\">:</span><span style=\\"color: #A6ACCD\\"> boolean</span><span style=\\"color: #89DDFF\\">,</span></span>
+<span class=\\"line\\"><span style=\\"color: #A6ACCD\\"> </span><span style=\\"color: #82AAFF\\">d</span><span style=\\"color: #89DDFF\\">:</span><span style=\\"color: #A6ACCD\\"> </span><span style=\\"color: #89DDFF\\">()</span><span style=\\"color: #A6ACCD\\"> </span><span style=\\"color: #C792EA\\">=&gt;</span><span style=\\"color: #A6ACCD\\"> string</span></span>
+<span class=\\"line\\"><span style=\\"color: #89DDFF\\">}</span><span style=\\"color: #A6ACCD\\">): number</span></span>
+<span class=\\"line\\"></span></code></pre>
+</div>",
+ "name": "optionsParamMethod",
+ "parameters": [
+ {
+ "default": undefined,
+ "description": "<p>The function parameter.</p>
+",
+ "name": "options",
+ "type": "{ ... }",
+ },
+ {
+ "default": undefined,
+ "description": "<p>The number parameter.</p>
+",
+ "name": "options.a",
+ "type": "number",
+ },
+ {
+ "default": undefined,
+ "description": "<p>The string parameter.</p>
+",
+ "name": "options.b?",
+ "type": "string",
+ },
+ {
+ "default": undefined,
+ "description": "<p>The boolean parameter.</p>
+",
+ "name": "options.c",
+ "type": "boolean",
+ },
+ {
+ "default": undefined,
+ "description": "<p>The method parameter.</p>
+",
+ "name": "options.d",
+ "type": "() => string",
+ },
+ ],
+ "returns": "number",
+ "seeAlsos": [],
+ "since": "",
+ "title": "Options Param Method",
+}
+`;
+
+exports[`signature > analyzeSignature() > optionsTypeParamMethodWithDefaults 1`] = `
+{
+ "deprecated": false,
+ "description": "<p>Test with a function parameters with defaults.</p>
+",
+ "examples": "<div class=\\"language-ts\\"><button title=\\"Copy Code\\" class=\\"copy\\"></button><span class=\\"lang\\">ts</span><pre v-pre class=\\"shiki\\" ><code><span class=\\"line\\"><span style=\\"color: #A6ACCD\\">faker</span><span style=\\"color: #89DDFF\\">.</span><span style=\\"color: #82AAFF\\">optionsTypeParamMethodWithDefaults</span><span style=\\"color: #A6ACCD\\">(a: ParameterOptionsTypeA </span><span style=\\"color: #89DDFF\\">=</span><span style=\\"color: #A6ACCD\\"> </span><span style=\\"color: #89DDFF\\">{</span><span style=\\"color: #A6ACCD\\"> </span><span style=\\"color: #F07178\\">value</span><span style=\\"color: #89DDFF\\">:</span><span style=\\"color: #A6ACCD\\"> </span><span style=\\"color: #F78C6C\\">1</span><span style=\\"color: #A6ACCD\\"> </span><span style=\\"color: #89DDFF\\">},</span><span style=\\"color: #A6ACCD\\"> b: ParameterOptionsTypeB </span><span style=\\"color: #89DDFF\\">=</span><span style=\\"color: #A6ACCD\\"> </span><span style=\\"color: #89DDFF\\">{</span><span style=\\"color: #A6ACCD\\"> </span><span style=\\"color: #F07178\\">value</span><span style=\\"color: #89DDFF\\">:</span><span style=\\"color: #A6ACCD\\"> </span><span style=\\"color: #F78C6C\\">1</span><span style=\\"color: #A6ACCD\\"> </span><span style=\\"color: #89DDFF\\">},</span><span style=\\"color: #A6ACCD\\"> c: ParameterOptionsTypeC): number</span></span>
+<span class=\\"line\\"></span></code></pre>
+</div>",
+ "name": "optionsTypeParamMethodWithDefaults",
+ "parameters": [
+ {
+ "default": "{ value: 1 }",
+ "description": "<p>Parameter with signature default.</p>
+",
+ "name": "a",
+ "type": "ParameterOptionsTypeA",
+ },
+ {
+ "default": "{ value: 1 }",
+ "description": "<p>Parameter with jsdocs default.</p>
+",
+ "name": "b",
+ "type": "ParameterOptionsTypeB",
+ },
+ {
+ "default": undefined,
+ "description": "<p>Parameter with inner jsdocs default.</p>
+",
+ "name": "c",
+ "type": "ParameterOptionsTypeC",
+ },
+ ],
+ "returns": "number",
+ "seeAlsos": [],
+ "since": "",
+ "title": "Options Type Param Method With Defaults",
+}
+`;
+
+exports[`signature > analyzeSignature() > requiredNumberParamMethod 1`] = `
+{
+ "deprecated": false,
+ "description": "<p>Test with a required parameter.</p>
+",
+ "examples": "<div class=\\"language-ts\\"><button title=\\"Copy Code\\" class=\\"copy\\"></button><span class=\\"lang\\">ts</span><pre v-pre class=\\"shiki\\" ><code><span class=\\"line\\"><span style=\\"color: #A6ACCD\\">faker</span><span style=\\"color: #89DDFF\\">.</span><span style=\\"color: #82AAFF\\">requiredNumberParamMethod</span><span style=\\"color: #A6ACCD\\">(a: number): number</span></span>
+<span class=\\"line\\"></span></code></pre>
+</div>",
+ "name": "requiredNumberParamMethod",
+ "parameters": [
+ {
+ "default": undefined,
+ "description": "<p>The number parameter.</p>
+",
+ "name": "a",
+ "type": "number",
+ },
+ ],
+ "returns": "number",
+ "seeAlsos": [],
+ "since": "",
+ "title": "Required Number Param Method",
+}
+`;
+
+exports[`signature > analyzeSignature() > stringUnionParamMethod 1`] = `
+{
+ "deprecated": false,
+ "description": "<p>Test with string union.</p>
+",
+ "examples": "<div class=\\"language-ts\\"><button title=\\"Copy Code\\" class=\\"copy\\"></button><span class=\\"lang\\">ts</span><pre v-pre class=\\"shiki\\" ><code><span class=\\"line\\"><span style=\\"color: #A6ACCD\\">faker</span><span style=\\"color: #89DDFF\\">.</span><span style=\\"color: #82AAFF\\">stringUnionParamMethod</span><span style=\\"color: #A6ACCD\\">(value: </span><span style=\\"color: #89DDFF\\">&#39;</span><span style=\\"color: #C3E88D\\">a</span><span style=\\"color: #89DDFF\\">&#39;</span><span style=\\"color: #A6ACCD\\"> </span><span style=\\"color: #89DDFF\\">|</span><span style=\\"color: #A6ACCD\\"> </span><span style=\\"color: #89DDFF\\">&#39;</span><span style=\\"color: #C3E88D\\">b</span><span style=\\"color: #89DDFF\\">&#39;</span><span style=\\"color: #A6ACCD\\">): string</span></span>
+<span class=\\"line\\"></span></code></pre>
+</div>",
+ "name": "stringUnionParamMethod",
+ "parameters": [
+ {
+ "default": undefined,
+ "description": "<p><code>'a'</code> or <code>'b'</code>.</p>
+",
+ "name": "value",
+ "type": "'a' | 'b'",
+ },
+ ],
+ "returns": "string",
+ "seeAlsos": [],
+ "since": "",
+ "title": "String Union Param Method",
+}
+`;
diff --git a/test/scripts/apidoc/signature.expected.json b/test/scripts/apidoc/signature.expected.json
deleted file mode 100644
index 05809105..00000000
--- a/test/scripts/apidoc/signature.expected.json
+++ /dev/null
@@ -1,331 +0,0 @@
-{
- "defaultBooleanParamMethod": {
- "name": "defaultBooleanParamMethod",
- "title": "Default Boolean Param Method",
- "description": "<p>Test with a default parameter.</p>\n",
- "parameters": [
- {
- "name": "c",
- "type": "boolean",
- "default": "true",
- "description": "<p>The boolean parameter.</p>\n"
- }
- ],
- "since": "",
- "returns": "number",
- "examples": "<div class=\"language-ts\"><button title=\"Copy Code\" class=\"copy\"></button><span class=\"lang\">ts</span><pre v-pre class=\"shiki\" ><code><span class=\"line\"><span style=\"color: #A6ACCD\">faker</span><span style=\"color: #89DDFF\">.</span><span style=\"color: #82AAFF\">defaultBooleanParamMethod</span><span style=\"color: #A6ACCD\">(c: boolean </span><span style=\"color: #89DDFF\">=</span><span style=\"color: #A6ACCD\"> </span><span style=\"color: #FF9CAC\">true</span><span style=\"color: #A6ACCD\">): number</span></span>\n<span class=\"line\"></span></code></pre>\n</div>",
- "deprecated": false,
- "seeAlsos": []
- },
- "functionParamMethod": {
- "name": "functionParamMethod",
- "title": "Function Param Method",
- "description": "<p>Test with a function parameters.</p>\n",
- "parameters": [
- {
- "name": "fn",
- "type": "(a: string) => number",
- "description": "<p>The function parameter.</p>\n"
- }
- ],
- "since": "",
- "returns": "number",
- "examples": "<div class=\"language-ts\"><button title=\"Copy Code\" class=\"copy\"></button><span class=\"lang\">ts</span><pre v-pre class=\"shiki\" ><code><span class=\"line\"><span style=\"color: #A6ACCD\">faker</span><span style=\"color: #89DDFF\">.</span><span style=\"color: #82AAFF\">functionParamMethod</span><span style=\"color: #A6ACCD\">(fn: </span><span style=\"color: #89DDFF\">(</span><span style=\"color: #A6ACCD\">a</span><span style=\"color: #89DDFF\">:</span><span style=\"color: #A6ACCD\"> </span><span style=\"color: #FFCB6B\">string</span><span style=\"color: #89DDFF\">)</span><span style=\"color: #A6ACCD\"> </span><span style=\"color: #C792EA\">=&gt;</span><span style=\"color: #A6ACCD\"> number): number</span></span>\n<span class=\"line\"></span></code></pre>\n</div>",
- "deprecated": false,
- "seeAlsos": []
- },
- "literalUnionParamMethod": {
- "name": "literalUnionParamMethod",
- "title": "Literal Union Param Method",
- "description": "<p>Test with LiteralUnion.</p>\n",
- "parameters": [
- {
- "name": "value",
- "type": "'a' | 'b' | string",
- "description": "<p><code>'a'</code> or <code>'b'</code>.</p>\n"
- }
- ],
- "since": "",
- "returns": "string",
- "examples": "<div class=\"language-ts\"><button title=\"Copy Code\" class=\"copy\"></button><span class=\"lang\">ts</span><pre v-pre class=\"shiki\" ><code><span class=\"line\"><span style=\"color: #A6ACCD\">faker</span><span style=\"color: #89DDFF\">.</span><span style=\"color: #82AAFF\">literalUnionParamMethod</span><span style=\"color: #A6ACCD\">(value: </span><span style=\"color: #89DDFF\">&#39;</span><span style=\"color: #C3E88D\">a</span><span style=\"color: #89DDFF\">&#39;</span><span style=\"color: #A6ACCD\"> </span><span style=\"color: #89DDFF\">|</span><span style=\"color: #A6ACCD\"> </span><span style=\"color: #89DDFF\">&#39;</span><span style=\"color: #C3E88D\">b</span><span style=\"color: #89DDFF\">&#39;</span><span style=\"color: #A6ACCD\"> </span><span style=\"color: #89DDFF\">|</span><span style=\"color: #A6ACCD\"> string): string</span></span>\n<span class=\"line\"></span></code></pre>\n</div>",
- "deprecated": false,
- "seeAlsos": []
- },
- "methodWithDeprecated": {
- "name": "methodWithDeprecated",
- "title": "Method With Deprecated",
- "description": "<p>Test with deprecated and see marker.</p>\n",
- "parameters": [],
- "since": "",
- "returns": "number",
- "examples": "<div class=\"language-ts\"><button title=\"Copy Code\" class=\"copy\"></button><span class=\"lang\">ts</span><pre v-pre class=\"shiki\" ><code><span class=\"line\"><span style=\"color: #A6ACCD\">faker</span><span style=\"color: #89DDFF\">.</span><span style=\"color: #82AAFF\">methodWithDeprecated</span><span style=\"color: #A6ACCD\">(): number</span></span>\n<span class=\"line\"></span></code></pre>\n</div>",
- "deprecated": true,
- "seeAlsos": ["test.apidoc.methodWithExample()"]
- },
- "methodWithExample": {
- "name": "methodWithExample",
- "title": "Method With Example",
- "description": "<p>Test with example marker.</p>\n",
- "parameters": [],
- "since": "",
- "returns": "number",
- "examples": "<div class=\"language-ts\"><button title=\"Copy Code\" class=\"copy\"></button><span class=\"lang\">ts</span><pre v-pre class=\"shiki\" ><code><span class=\"line\"><span style=\"color: #A6ACCD\">faker</span><span style=\"color: #89DDFF\">.</span><span style=\"color: #82AAFF\">methodWithExample</span><span style=\"color: #A6ACCD\">(): number</span></span>\n<span class=\"line\"><span style=\"color: #A6ACCD\">test</span><span style=\"color: #89DDFF\">.</span><span style=\"color: #A6ACCD\">apidoc</span><span style=\"color: #89DDFF\">.</span><span style=\"color: #82AAFF\">methodWithExample</span><span style=\"color: #A6ACCD\">() </span><span style=\"color: #676E95\">// 0</span></span>\n<span class=\"line\"></span></code></pre>\n</div>",
- "deprecated": false,
- "seeAlsos": []
- },
- "methodWithMultipleSeeMarkers": {
- "name": "methodWithMultipleSeeMarkers",
- "title": "Method With Multiple See Markers",
- "description": "<p>Test with multiple see markers.</p>\n",
- "parameters": [],
- "since": "",
- "returns": "number",
- "examples": "<div class=\"language-ts\"><button title=\"Copy Code\" class=\"copy\"></button><span class=\"lang\">ts</span><pre v-pre class=\"shiki\" ><code><span class=\"line\"><span style=\"color: #A6ACCD\">faker</span><span style=\"color: #89DDFF\">.</span><span style=\"color: #82AAFF\">methodWithMultipleSeeMarkers</span><span style=\"color: #A6ACCD\">(): number</span></span>\n<span class=\"line\"></span></code></pre>\n</div>",
- "deprecated": false,
- "seeAlsos": [
- "test.apidoc.methodWithExample()",
- "test.apidoc.methodWithDeprecated()"
- ]
- },
- "methodWithSinceMarker": {
- "name": "methodWithSinceMarker",
- "title": "Method With Since Marker",
- "description": "<p>Test with since marker.</p>\n",
- "parameters": [],
- "since": "1.0.0",
- "returns": "number",
- "examples": "<div class=\"language-ts\"><button title=\"Copy Code\" class=\"copy\"></button><span class=\"lang\">ts</span><pre v-pre class=\"shiki\" ><code><span class=\"line\"><span style=\"color: #A6ACCD\">faker</span><span style=\"color: #89DDFF\">.</span><span style=\"color: #82AAFF\">methodWithSinceMarker</span><span style=\"color: #A6ACCD\">(): number</span></span>\n<span class=\"line\"></span></code></pre>\n</div>",
- "deprecated": false,
- "seeAlsos": []
- },
- "multiParamMethod": {
- "name": "multiParamMethod",
- "title": "Multi Param Method",
- "description": "<p>Test with multiple parameters.</p>\n",
- "parameters": [
- {
- "name": "a",
- "type": "number",
- "description": "<p>The number parameter.</p>\n"
- },
- {
- "name": "b?",
- "type": "string",
- "description": "<p>The string parameter.</p>\n"
- },
- {
- "name": "c",
- "type": "boolean",
- "default": "true",
- "description": "<p>The boolean parameter.</p>\n"
- }
- ],
- "since": "",
- "returns": "number",
- "examples": "<div class=\"language-ts\"><button title=\"Copy Code\" class=\"copy\"></button><span class=\"lang\">ts</span><pre v-pre class=\"shiki\" ><code><span class=\"line\"><span style=\"color: #A6ACCD\">faker</span><span style=\"color: #89DDFF\">.</span><span style=\"color: #82AAFF\">multiParamMethod</span><span style=\"color: #A6ACCD\">(a: number</span><span style=\"color: #89DDFF\">,</span><span style=\"color: #A6ACCD\"> b</span><span style=\"color: #89DDFF\">?:</span><span style=\"color: #A6ACCD\"> string</span><span style=\"color: #89DDFF\">,</span><span style=\"color: #A6ACCD\"> c: boolean </span><span style=\"color: #89DDFF\">=</span><span style=\"color: #A6ACCD\"> </span><span style=\"color: #FF9CAC\">true</span><span style=\"color: #A6ACCD\">): number</span></span>\n<span class=\"line\"></span></code></pre>\n</div>",
- "deprecated": false,
- "seeAlsos": []
- },
- "noParamMethod": {
- "name": "noParamMethod",
- "title": "No Param Method",
- "description": "<p>Test with no parameters.</p>\n",
- "parameters": [],
- "since": "",
- "returns": "number",
- "examples": "<div class=\"language-ts\"><button title=\"Copy Code\" class=\"copy\"></button><span class=\"lang\">ts</span><pre v-pre class=\"shiki\" ><code><span class=\"line\"><span style=\"color: #A6ACCD\">faker</span><span style=\"color: #89DDFF\">.</span><span style=\"color: #82AAFF\">noParamMethod</span><span style=\"color: #A6ACCD\">(): number</span></span>\n<span class=\"line\"></span></code></pre>\n</div>",
- "deprecated": false,
- "seeAlsos": []
- },
- "optionalStringParamMethod": {
- "name": "optionalStringParamMethod",
- "title": "Optional String Param Method",
- "description": "<p>Test with an optional parameter.</p>\n",
- "parameters": [
- {
- "name": "b?",
- "type": "string",
- "description": "<p>The string parameter.</p>\n"
- }
- ],
- "since": "",
- "returns": "number",
- "examples": "<div class=\"language-ts\"><button title=\"Copy Code\" class=\"copy\"></button><span class=\"lang\">ts</span><pre v-pre class=\"shiki\" ><code><span class=\"line\"><span style=\"color: #A6ACCD\">faker</span><span style=\"color: #89DDFF\">.</span><span style=\"color: #82AAFF\">optionalStringParamMethod</span><span style=\"color: #A6ACCD\">(b</span><span style=\"color: #89DDFF\">?:</span><span style=\"color: #A6ACCD\"> string): number</span></span>\n<span class=\"line\"></span></code></pre>\n</div>",
- "deprecated": false,
- "seeAlsos": []
- },
- "optionsInlineParamMethodWithDefaults": {
- "name": "optionsInlineParamMethodWithDefaults",
- "title": "Options Inline Param Method With Defaults",
- "description": "<p>Test with a function parameters (inline types) with defaults.</p>\n",
- "parameters": [
- {
- "name": "a",
- "type": "{ ... }",
- "default": "{ value: 1 }",
- "description": "<p>Parameter with signature default.\nIt also has a more complex description.</p>\n"
- },
- {
- "name": "a.value?",
- "type": "number",
- "description": "<p>The number parameter.</p>\n"
- },
- {
- "name": "b",
- "type": "{ ... }",
- "default": "{ value: 1 }",
- "description": "<p>Parameter with jsdocs default.</p>\n<p>It also has a more complex description.</p>\n"
- },
- {
- "name": "b.value?",
- "type": "number",
- "description": "<p>The number parameter.</p>\n"
- },
- {
- "name": "c",
- "type": "{ ... }",
- "description": "<p>Parameter with inner jsdocs default.</p>\n"
- },
- {
- "name": "c.value?",
- "type": "number",
- "default": "2",
- "description": "<p>The number parameter. It also has a more complex description.</p>\n"
- }
- ],
- "since": "",
- "returns": "number",
- "examples": "<div class=\"language-ts\"><button title=\"Copy Code\" class=\"copy\"></button><span class=\"lang\">ts</span><pre v-pre class=\"shiki\" ><code><span class=\"line\"><span style=\"color: #A6ACCD\">faker</span><span style=\"color: #89DDFF\">.</span><span style=\"color: #82AAFF\">optionsInlineParamMethodWithDefaults</span><span style=\"color: #A6ACCD\">(a: </span><span style=\"color: #89DDFF\">{</span></span>\n<span class=\"line\"><span style=\"color: #A6ACCD\"> </span><span style=\"color: #F07178\">value</span><span style=\"color: #89DDFF\">:</span><span style=\"color: #A6ACCD\"> number</span></span>\n<span class=\"line\"><span style=\"color: #89DDFF\">}</span><span style=\"color: #A6ACCD\"> </span><span style=\"color: #89DDFF\">=</span><span style=\"color: #A6ACCD\"> </span><span style=\"color: #89DDFF\">{</span><span style=\"color: #A6ACCD\"> </span><span style=\"color: #F07178\">value</span><span style=\"color: #89DDFF\">:</span><span style=\"color: #A6ACCD\"> </span><span style=\"color: #F78C6C\">1</span><span style=\"color: #A6ACCD\"> </span><span style=\"color: #89DDFF\">},</span><span style=\"color: #A6ACCD\"> b: </span><span style=\"color: #89DDFF\">{</span></span>\n<span class=\"line\"><span style=\"color: #A6ACCD\"> </span><span style=\"color: #F07178\">value</span><span style=\"color: #89DDFF\">:</span><span style=\"color: #A6ACCD\"> number</span></span>\n<span class=\"line\"><span style=\"color: #89DDFF\">}</span><span style=\"color: #A6ACCD\"> </span><span style=\"color: #89DDFF\">=</span><span style=\"color: #A6ACCD\"> </span><span style=\"color: #89DDFF\">{</span><span style=\"color: #A6ACCD\"> </span><span style=\"color: #F07178\">value</span><span style=\"color: #89DDFF\">:</span><span style=\"color: #A6ACCD\"> </span><span style=\"color: #F78C6C\">1</span><span style=\"color: #A6ACCD\"> </span><span style=\"color: #89DDFF\">},</span><span style=\"color: #A6ACCD\"> c: </span><span style=\"color: #89DDFF\">{</span></span>\n<span class=\"line\"><span style=\"color: #A6ACCD\"> </span><span style=\"color: #F07178\">value</span><span style=\"color: #89DDFF\">:</span><span style=\"color: #A6ACCD\"> number</span></span>\n<span class=\"line\"><span style=\"color: #89DDFF\">}</span><span style=\"color: #A6ACCD\">): number</span></span>\n<span class=\"line\"></span></code></pre>\n</div>",
- "deprecated": false,
- "seeAlsos": []
- },
- "optionsInterfaceParamMethodWithDefaults": {
- "name": "optionsInterfaceParamMethodWithDefaults",
- "title": "Options Interface Param Method With Defaults",
- "description": "<p>Test with a function parameters with defaults.</p>\n",
- "parameters": [
- {
- "name": "a",
- "type": "ParameterOptionsInterfaceA",
- "default": "{ value: 1 }",
- "description": "<p>Parameter with signature default.</p>\n"
- },
- {
- "name": "b",
- "type": "ParameterOptionsInterfaceB",
- "default": "{ value: 1 }",
- "description": "<p>Parameter with jsdocs default.</p>\n"
- },
- {
- "name": "c",
- "type": "ParameterOptionsInterfaceC",
- "description": "<p>Parameter with inner jsdocs default.</p>\n"
- }
- ],
- "since": "",
- "returns": "number",
- "examples": "<div class=\"language-ts\"><button title=\"Copy Code\" class=\"copy\"></button><span class=\"lang\">ts</span><pre v-pre class=\"shiki\" ><code><span class=\"line\"><span style=\"color: #A6ACCD\">faker</span><span style=\"color: #89DDFF\">.</span><span style=\"color: #82AAFF\">optionsInterfaceParamMethodWithDefaults</span><span style=\"color: #A6ACCD\">(a: ParameterOptionsInterfaceA </span><span style=\"color: #89DDFF\">=</span><span style=\"color: #A6ACCD\"> </span><span style=\"color: #89DDFF\">{</span><span style=\"color: #A6ACCD\"> </span><span style=\"color: #F07178\">value</span><span style=\"color: #89DDFF\">:</span><span style=\"color: #A6ACCD\"> </span><span style=\"color: #F78C6C\">1</span><span style=\"color: #A6ACCD\"> </span><span style=\"color: #89DDFF\">},</span><span style=\"color: #A6ACCD\"> b: ParameterOptionsInterfaceB </span><span style=\"color: #89DDFF\">=</span><span style=\"color: #A6ACCD\"> </span><span style=\"color: #89DDFF\">{</span><span style=\"color: #A6ACCD\"> </span><span style=\"color: #F07178\">value</span><span style=\"color: #89DDFF\">:</span><span style=\"color: #A6ACCD\"> </span><span style=\"color: #F78C6C\">1</span><span style=\"color: #A6ACCD\"> </span><span style=\"color: #89DDFF\">},</span><span style=\"color: #A6ACCD\"> c: ParameterOptionsInterfaceC): number</span></span>\n<span class=\"line\"></span></code></pre>\n</div>",
- "deprecated": false,
- "seeAlsos": []
- },
- "optionsParamMethod": {
- "name": "optionsParamMethod",
- "title": "Options Param Method",
- "description": "<p>Test with a function parameters.</p>\n",
- "parameters": [
- {
- "name": "options",
- "type": "{ ... }",
- "description": "<p>The function parameter.</p>\n"
- },
- {
- "name": "options.a",
- "type": "number",
- "description": "<p>The number parameter.</p>\n"
- },
- {
- "name": "options.b?",
- "type": "string",
- "description": "<p>The string parameter.</p>\n"
- },
- {
- "name": "options.c",
- "type": "boolean",
- "description": "<p>The boolean parameter.</p>\n"
- },
- {
- "name": "options.d",
- "type": "() => string",
- "description": "<p>The method parameter.</p>\n"
- }
- ],
- "since": "",
- "returns": "number",
- "examples": "<div class=\"language-ts\"><button title=\"Copy Code\" class=\"copy\"></button><span class=\"lang\">ts</span><pre v-pre class=\"shiki\" ><code><span class=\"line\"><span style=\"color: #A6ACCD\">faker</span><span style=\"color: #89DDFF\">.</span><span style=\"color: #82AAFF\">optionsParamMethod</span><span style=\"color: #A6ACCD\">(options: </span><span style=\"color: #89DDFF\">{</span></span>\n<span class=\"line\"><span style=\"color: #A6ACCD\"> </span><span style=\"color: #F07178\">a</span><span style=\"color: #89DDFF\">:</span><span style=\"color: #A6ACCD\"> number</span><span style=\"color: #89DDFF\">,</span></span>\n<span class=\"line\"><span style=\"color: #A6ACCD\"> </span><span style=\"color: #F07178\">b</span><span style=\"color: #89DDFF\">:</span><span style=\"color: #A6ACCD\"> string</span><span style=\"color: #89DDFF\">,</span></span>\n<span class=\"line\"><span style=\"color: #A6ACCD\"> </span><span style=\"color: #F07178\">c</span><span style=\"color: #89DDFF\">:</span><span style=\"color: #A6ACCD\"> boolean</span><span style=\"color: #89DDFF\">,</span></span>\n<span class=\"line\"><span style=\"color: #A6ACCD\"> </span><span style=\"color: #82AAFF\">d</span><span style=\"color: #89DDFF\">:</span><span style=\"color: #A6ACCD\"> </span><span style=\"color: #89DDFF\">()</span><span style=\"color: #A6ACCD\"> </span><span style=\"color: #C792EA\">=&gt;</span><span style=\"color: #A6ACCD\"> string</span></span>\n<span class=\"line\"><span style=\"color: #89DDFF\">}</span><span style=\"color: #A6ACCD\">): number</span></span>\n<span class=\"line\"></span></code></pre>\n</div>",
- "deprecated": false,
- "seeAlsos": []
- },
- "optionsTypeParamMethodWithDefaults": {
- "name": "optionsTypeParamMethodWithDefaults",
- "title": "Options Type Param Method With Defaults",
- "description": "<p>Test with a function parameters with defaults.</p>\n",
- "parameters": [
- {
- "name": "a",
- "type": "ParameterOptionsTypeA",
- "default": "{ value: 1 }",
- "description": "<p>Parameter with signature default.</p>\n"
- },
- {
- "name": "b",
- "type": "ParameterOptionsTypeB",
- "default": "{ value: 1 }",
- "description": "<p>Parameter with jsdocs default.</p>\n"
- },
- {
- "name": "c",
- "type": "ParameterOptionsTypeC",
- "description": "<p>Parameter with inner jsdocs default.</p>\n"
- }
- ],
- "since": "",
- "returns": "number",
- "examples": "<div class=\"language-ts\"><button title=\"Copy Code\" class=\"copy\"></button><span class=\"lang\">ts</span><pre v-pre class=\"shiki\" ><code><span class=\"line\"><span style=\"color: #A6ACCD\">faker</span><span style=\"color: #89DDFF\">.</span><span style=\"color: #82AAFF\">optionsTypeParamMethodWithDefaults</span><span style=\"color: #A6ACCD\">(a: ParameterOptionsTypeA </span><span style=\"color: #89DDFF\">=</span><span style=\"color: #A6ACCD\"> </span><span style=\"color: #89DDFF\">{</span><span style=\"color: #A6ACCD\"> </span><span style=\"color: #F07178\">value</span><span style=\"color: #89DDFF\">:</span><span style=\"color: #A6ACCD\"> </span><span style=\"color: #F78C6C\">1</span><span style=\"color: #A6ACCD\"> </span><span style=\"color: #89DDFF\">},</span><span style=\"color: #A6ACCD\"> b: ParameterOptionsTypeB </span><span style=\"color: #89DDFF\">=</span><span style=\"color: #A6ACCD\"> </span><span style=\"color: #89DDFF\">{</span><span style=\"color: #A6ACCD\"> </span><span style=\"color: #F07178\">value</span><span style=\"color: #89DDFF\">:</span><span style=\"color: #A6ACCD\"> </span><span style=\"color: #F78C6C\">1</span><span style=\"color: #A6ACCD\"> </span><span style=\"color: #89DDFF\">},</span><span style=\"color: #A6ACCD\"> c: ParameterOptionsTypeC): number</span></span>\n<span class=\"line\"></span></code></pre>\n</div>",
- "deprecated": false,
- "seeAlsos": []
- },
- "requiredNumberParamMethod": {
- "name": "requiredNumberParamMethod",
- "title": "Required Number Param Method",
- "description": "<p>Test with a required parameter.</p>\n",
- "parameters": [
- {
- "name": "a",
- "type": "number",
- "description": "<p>The number parameter.</p>\n"
- }
- ],
- "since": "",
- "returns": "number",
- "examples": "<div class=\"language-ts\"><button title=\"Copy Code\" class=\"copy\"></button><span class=\"lang\">ts</span><pre v-pre class=\"shiki\" ><code><span class=\"line\"><span style=\"color: #A6ACCD\">faker</span><span style=\"color: #89DDFF\">.</span><span style=\"color: #82AAFF\">requiredNumberParamMethod</span><span style=\"color: #A6ACCD\">(a: number): number</span></span>\n<span class=\"line\"></span></code></pre>\n</div>",
- "deprecated": false,
- "seeAlsos": []
- },
- "stringUnionParamMethod": {
- "name": "stringUnionParamMethod",
- "title": "String Union Param Method",
- "description": "<p>Test with string union.</p>\n",
- "parameters": [
- {
- "name": "value",
- "type": "'a' | 'b'",
- "description": "<p><code>'a'</code> or <code>'b'</code>.</p>\n"
- }
- ],
- "since": "",
- "returns": "string",
- "examples": "<div class=\"language-ts\"><button title=\"Copy Code\" class=\"copy\"></button><span class=\"lang\">ts</span><pre v-pre class=\"shiki\" ><code><span class=\"line\"><span style=\"color: #A6ACCD\">faker</span><span style=\"color: #89DDFF\">.</span><span style=\"color: #82AAFF\">stringUnionParamMethod</span><span style=\"color: #A6ACCD\">(value: </span><span style=\"color: #89DDFF\">&#39;</span><span style=\"color: #C3E88D\">a</span><span style=\"color: #89DDFF\">&#39;</span><span style=\"color: #A6ACCD\"> </span><span style=\"color: #89DDFF\">|</span><span style=\"color: #A6ACCD\"> </span><span style=\"color: #89DDFF\">&#39;</span><span style=\"color: #C3E88D\">b</span><span style=\"color: #89DDFF\">&#39;</span><span style=\"color: #A6ACCD\">): string</span></span>\n<span class=\"line\"></span></code></pre>\n</div>",
- "deprecated": false,
- "seeAlsos": []
- }
-}
diff --git a/test/scripts/apidoc/signature.spec.ts b/test/scripts/apidoc/signature.spec.ts
index f55c10f8..43ab00e7 100644
--- a/test/scripts/apidoc/signature.spec.ts
+++ b/test/scripts/apidoc/signature.spec.ts
@@ -1,24 +1,13 @@
-import { writeFileSync } from 'fs';
-import { resolve } from 'path';
-import { afterAll, beforeAll, describe, expect, it } from 'vitest';
-import type { Method } from '../../../docs/.vitepress/components/api-docs/method';
+import { beforeAll, describe, expect, it } from 'vitest';
import {
analyzeSignature,
initMarkdownRenderer,
} from '../../../scripts/apidoc/signature';
import { SignatureTest } from './signature.example';
-import expected_ from './signature.expected.json';
import { loadExampleMethods } from './utils';
-const expected: Record<string, Method> = expected_;
-
-function prettyJson(object): string {
- return JSON.stringify(object, null, 2);
-}
-
describe('signature', () => {
describe('analyzeSignature()', () => {
- const actuals = {};
const methods = loadExampleMethods();
beforeAll(async () => {
@@ -30,24 +19,15 @@ describe('signature', () => {
});
it('expected and actual methods are equal', () => {
- expect(Object.keys(methods).sort()).toEqual(Object.keys(expected).sort());
+ expect(Object.keys(methods).sort()).toMatchSnapshot();
});
- it.each(Object.keys(expected).sort())('%s', (name) => {
+ it.each(Object.keys(methods).sort())('%s', (name) => {
const method = methods[name];
expect(method, `Method ${name} to be defined`).toBeDefined();
const actual = analyzeSignature(method.signatures[0], null, method.name);
- actuals[name] = actual;
-
- expect(prettyJson(actual)).toBe(prettyJson(expected[name]));
- });
- afterAll(() => {
- // Write to file for easier comparison
- writeFileSync(
- resolve('test', 'scripts', 'apidoc', 'signature.actuals.json'),
- prettyJson(actuals)
- );
+ expect(actual).toMatchSnapshot();
});
});
});