diff options
| author | ST-DDT <[email protected]> | 2022-11-09 23:56:56 +0100 |
|---|---|---|
| committer | GitHub <[email protected]> | 2022-11-09 22:56:56 +0000 |
| commit | 666ff02cd8b446fdae845d4e3550a85e748b3dbd (patch) | |
| tree | ff51b90ffcf4e1e360a0e88e290de6d17c6b549a /test/scripts | |
| parent | dd58148a2d47de9942c3266a8cdfd8dead32c528 (diff) | |
| download | faker-666ff02cd8b446fdae845d4e3550a85e748b3dbd.tar.xz faker-666ff02cd8b446fdae845d4e3550a85e748b3dbd.zip | |
test: use test snapshots for scripts/apidoc/signature.spec.ts (#1488)
Diffstat (limited to 'test/scripts')
| -rw-r--r-- | test/scripts/apidoc/.gitignore | 1 | ||||
| -rw-r--r-- | test/scripts/apidoc/__snapshots__/signature.spec.ts.snap | 506 | ||||
| -rw-r--r-- | test/scripts/apidoc/signature.expected.json | 331 | ||||
| -rw-r--r-- | test/scripts/apidoc/signature.spec.ts | 28 |
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\\">=></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\\">'</span><span style=\\"color: #C3E88D\\">a</span><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: #C3E88D\\">b</span><span style=\\"color: #89DDFF\\">'</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\\">=></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\\">'</span><span style=\\"color: #C3E88D\\">a</span><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: #C3E88D\\">b</span><span style=\\"color: #89DDFF\\">'</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\">=></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\">'</span><span style=\"color: #C3E88D\">a</span><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: #C3E88D\">b</span><span style=\"color: #89DDFF\">'</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\">=></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\">'</span><span style=\"color: #C3E88D\">a</span><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: #C3E88D\">b</span><span style=\"color: #89DDFF\">'</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(); }); }); }); |
