- 新增 .gitignore、ARCHITECTURE.md 项目基础设施文件 - 新增前后端路由对接文档,完整映射前端页面到后端 API 端点 - 配置前端 Vitest 测试框架,添加 API/Store/Utils/Components 单元测试 - 添加后端 UserService 单元测试 - 新增统一测试运行脚本 scripts/run-tests.sh - 清理旧文档和过期覆盖率报告文件 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
371 lines
16 KiB
HTML
371 lines
16 KiB
HTML
|
|
<!doctype html>
|
|
<html lang="en">
|
|
|
|
<head>
|
|
<title>Code coverage report for All files</title>
|
|
<meta charset="utf-8" />
|
|
<link rel="stylesheet" href="prettify.css" />
|
|
<link rel="stylesheet" href="base.css" />
|
|
<link rel="shortcut icon" type="image/x-icon" href="favicon.png" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
<style type='text/css'>
|
|
.coverage-summary .sorter {
|
|
background-image: url(sort-arrow-sprite.png);
|
|
}
|
|
</style>
|
|
</head>
|
|
|
|
<body>
|
|
<div class='wrapper'>
|
|
<div class='pad1'>
|
|
<h1>All files</h1>
|
|
<div class='clearfix'>
|
|
|
|
<div class='fl pad1y space-right2'>
|
|
<span class="strong">39.68% </span>
|
|
<span class="quiet">Statements</span>
|
|
<span class='fraction'>404/1018</span>
|
|
</div>
|
|
|
|
|
|
<div class='fl pad1y space-right2'>
|
|
<span class="strong">20.26% </span>
|
|
<span class="quiet">Branches</span>
|
|
<span class='fraction'>106/523</span>
|
|
</div>
|
|
|
|
|
|
<div class='fl pad1y space-right2'>
|
|
<span class="strong">44.25% </span>
|
|
<span class="quiet">Functions</span>
|
|
<span class='fraction'>158/357</span>
|
|
</div>
|
|
|
|
|
|
<div class='fl pad1y space-right2'>
|
|
<span class="strong">40.28% </span>
|
|
<span class="quiet">Lines</span>
|
|
<span class='fraction'>390/968</span>
|
|
</div>
|
|
|
|
|
|
</div>
|
|
<p class="quiet">
|
|
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
|
</p>
|
|
<template id="filterTemplate">
|
|
<div class="quiet">
|
|
Filter:
|
|
<input type="search" id="fileSearch">
|
|
</div>
|
|
</template>
|
|
</div>
|
|
<div class='status-line low'></div>
|
|
<div class="pad1">
|
|
<table class="coverage-summary">
|
|
<thead>
|
|
<tr>
|
|
<th data-col="file" data-fmt="html" data-html="true" class="file">File</th>
|
|
<th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th>
|
|
<th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th>
|
|
<th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th>
|
|
<th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th>
|
|
<th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th>
|
|
<th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th>
|
|
<th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th>
|
|
<th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th>
|
|
<th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody><tr>
|
|
<td class="file high" data-value="api"><a href="api/index.html">api</a></td>
|
|
<td data-value="99.27" class="pic high">
|
|
<div class="chart"><div class="cover-fill" style="width: 99%"></div><div class="cover-empty" style="width: 1%"></div></div>
|
|
</td>
|
|
<td data-value="99.27" class="pct high">99.27%</td>
|
|
<td data-value="276" class="abs high">274/276</td>
|
|
<td data-value="93.75" class="pct high">93.75%</td>
|
|
<td data-value="16" class="abs high">15/16</td>
|
|
<td data-value="99.23" class="pct high">99.23%</td>
|
|
<td data-value="130" class="abs high">129/130</td>
|
|
<td data-value="99.26" class="pct high">99.26%</td>
|
|
<td data-value="271" class="abs high">269/271</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="file low" data-value="components/ReAuth"><a href="components/ReAuth/index.html">components/ReAuth</a></td>
|
|
<td data-value="0" class="pic low">
|
|
<div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
|
|
</td>
|
|
<td data-value="0" class="pct low">0%</td>
|
|
<td data-value="1" class="abs low">0/1</td>
|
|
<td data-value="100" class="pct high">100%</td>
|
|
<td data-value="0" class="abs high">0/0</td>
|
|
<td data-value="100" class="pct high">100%</td>
|
|
<td data-value="0" class="abs high">0/0</td>
|
|
<td data-value="0" class="pct low">0%</td>
|
|
<td data-value="1" class="abs low">0/1</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="file low" data-value="components/ReCol"><a href="components/ReCol/index.html">components/ReCol</a></td>
|
|
<td data-value="0" class="pic low">
|
|
<div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
|
|
</td>
|
|
<td data-value="0" class="pct low">0%</td>
|
|
<td data-value="4" class="abs low">0/4</td>
|
|
<td data-value="100" class="pct high">100%</td>
|
|
<td data-value="0" class="abs high">0/0</td>
|
|
<td data-value="0" class="pct low">0%</td>
|
|
<td data-value="2" class="abs low">0/2</td>
|
|
<td data-value="0" class="pct low">0%</td>
|
|
<td data-value="4" class="abs low">0/4</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="file low" data-value="components/ReDialog"><a href="components/ReDialog/index.html">components/ReDialog</a></td>
|
|
<td data-value="0" class="pic low">
|
|
<div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
|
|
</td>
|
|
<td data-value="0" class="pct low">0%</td>
|
|
<td data-value="19" class="abs low">0/19</td>
|
|
<td data-value="0" class="pct low">0%</td>
|
|
<td data-value="8" class="abs low">0/8</td>
|
|
<td data-value="0" class="pct low">0%</td>
|
|
<td data-value="7" class="abs low">0/7</td>
|
|
<td data-value="0" class="pct low">0%</td>
|
|
<td data-value="19" class="abs low">0/19</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="file low" data-value="components/ReIcon"><a href="components/ReIcon/index.html">components/ReIcon</a></td>
|
|
<td data-value="0" class="pic low">
|
|
<div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
|
|
</td>
|
|
<td data-value="0" class="pct low">0%</td>
|
|
<td data-value="3" class="abs low">0/3</td>
|
|
<td data-value="100" class="pct high">100%</td>
|
|
<td data-value="0" class="abs high">0/0</td>
|
|
<td data-value="100" class="pct high">100%</td>
|
|
<td data-value="0" class="abs high">0/0</td>
|
|
<td data-value="0" class="pct low">0%</td>
|
|
<td data-value="3" class="abs low">0/3</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="file low" data-value="components/ReIcon/src"><a href="components/ReIcon/src/index.html">components/ReIcon/src</a></td>
|
|
<td data-value="0" class="pic low">
|
|
<div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
|
|
</td>
|
|
<td data-value="0" class="pct low">0%</td>
|
|
<td data-value="35" class="abs low">0/35</td>
|
|
<td data-value="0" class="pct low">0%</td>
|
|
<td data-value="34" class="abs low">0/34</td>
|
|
<td data-value="0" class="pct low">0%</td>
|
|
<td data-value="11" class="abs low">0/11</td>
|
|
<td data-value="0" class="pct low">0%</td>
|
|
<td data-value="33" class="abs low">0/33</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="file low" data-value="components/RePerms"><a href="components/RePerms/index.html">components/RePerms</a></td>
|
|
<td data-value="0" class="pic low">
|
|
<div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
|
|
</td>
|
|
<td data-value="0" class="pct low">0%</td>
|
|
<td data-value="1" class="abs low">0/1</td>
|
|
<td data-value="100" class="pct high">100%</td>
|
|
<td data-value="0" class="abs high">0/0</td>
|
|
<td data-value="100" class="pct high">100%</td>
|
|
<td data-value="0" class="abs high">0/0</td>
|
|
<td data-value="0" class="pct low">0%</td>
|
|
<td data-value="1" class="abs low">0/1</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="file low" data-value="components/RePureTableBar"><a href="components/RePureTableBar/index.html">components/RePureTableBar</a></td>
|
|
<td data-value="0" class="pic low">
|
|
<div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
|
|
</td>
|
|
<td data-value="0" class="pct low">0%</td>
|
|
<td data-value="1" class="abs low">0/1</td>
|
|
<td data-value="100" class="pct high">100%</td>
|
|
<td data-value="0" class="abs high">0/0</td>
|
|
<td data-value="100" class="pct high">100%</td>
|
|
<td data-value="0" class="abs high">0/0</td>
|
|
<td data-value="0" class="pct low">0%</td>
|
|
<td data-value="1" class="abs low">0/1</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="file low" data-value="components/ReSegmented"><a href="components/ReSegmented/index.html">components/ReSegmented</a></td>
|
|
<td data-value="0" class="pic low">
|
|
<div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
|
|
</td>
|
|
<td data-value="0" class="pct low">0%</td>
|
|
<td data-value="1" class="abs low">0/1</td>
|
|
<td data-value="100" class="pct high">100%</td>
|
|
<td data-value="0" class="abs high">0/0</td>
|
|
<td data-value="100" class="pct high">100%</td>
|
|
<td data-value="0" class="abs high">0/0</td>
|
|
<td data-value="0" class="pct low">0%</td>
|
|
<td data-value="1" class="abs low">0/1</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="file empty" data-value="components/ReSegmented/src"><a href="components/ReSegmented/src/index.html">components/ReSegmented/src</a></td>
|
|
<td data-value="0" class="pic empty">
|
|
<div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
|
|
</td>
|
|
<td data-value="0" class="pct empty">0%</td>
|
|
<td data-value="0" class="abs empty">0/0</td>
|
|
<td data-value="0" class="pct empty">0%</td>
|
|
<td data-value="0" class="abs empty">0/0</td>
|
|
<td data-value="0" class="pct empty">0%</td>
|
|
<td data-value="0" class="abs empty">0/0</td>
|
|
<td data-value="0" class="pct empty">0%</td>
|
|
<td data-value="0" class="abs empty">0/0</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="file low" data-value="components/ReText"><a href="components/ReText/index.html">components/ReText</a></td>
|
|
<td data-value="0" class="pic low">
|
|
<div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
|
|
</td>
|
|
<td data-value="0" class="pct low">0%</td>
|
|
<td data-value="1" class="abs low">0/1</td>
|
|
<td data-value="100" class="pct high">100%</td>
|
|
<td data-value="0" class="abs high">0/0</td>
|
|
<td data-value="100" class="pct high">100%</td>
|
|
<td data-value="0" class="abs high">0/0</td>
|
|
<td data-value="0" class="pct low">0%</td>
|
|
<td data-value="1" class="abs low">0/1</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="file low" data-value="components/ReText/src"><a href="components/ReText/src/index.html">components/ReText/src</a></td>
|
|
<td data-value="0" class="pic low">
|
|
<div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
|
|
</td>
|
|
<td data-value="0" class="pct low">0%</td>
|
|
<td data-value="18" class="abs low">0/18</td>
|
|
<td data-value="0" class="pct low">0%</td>
|
|
<td data-value="6" class="abs low">0/6</td>
|
|
<td data-value="0" class="pct low">0%</td>
|
|
<td data-value="5" class="abs low">0/5</td>
|
|
<td data-value="0" class="pct low">0%</td>
|
|
<td data-value="17" class="abs low">0/17</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="file low" data-value="components/business"><a href="components/business/index.html">components/business</a></td>
|
|
<td data-value="17.85" class="pic low">
|
|
<div class="chart"><div class="cover-fill" style="width: 17%"></div><div class="cover-empty" style="width: 83%"></div></div>
|
|
</td>
|
|
<td data-value="17.85" class="pct low">17.85%</td>
|
|
<td data-value="112" class="abs low">20/112</td>
|
|
<td data-value="5.15" class="pct low">5.15%</td>
|
|
<td data-value="97" class="abs low">5/97</td>
|
|
<td data-value="21.27" class="pct low">21.27%</td>
|
|
<td data-value="47" class="abs low">10/47</td>
|
|
<td data-value="17.59" class="pct low">17.59%</td>
|
|
<td data-value="108" class="abs low">19/108</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="file low" data-value="store/modules"><a href="store/modules/index.html">store/modules</a></td>
|
|
<td data-value="9.93" class="pic low">
|
|
<div class="chart"><div class="cover-fill" style="width: 9%"></div><div class="cover-empty" style="width: 91%"></div></div>
|
|
</td>
|
|
<td data-value="9.93" class="pct low">9.93%</td>
|
|
<td data-value="161" class="abs low">16/161</td>
|
|
<td data-value="10.86" class="pct low">10.86%</td>
|
|
<td data-value="92" class="abs low">10/92</td>
|
|
<td data-value="13.43" class="pct low">13.43%</td>
|
|
<td data-value="67" class="abs low">9/67</td>
|
|
<td data-value="10.66" class="pct low">10.66%</td>
|
|
<td data-value="150" class="abs low">16/150</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="file low" data-value="utils"><a href="utils/index.html">utils</a></td>
|
|
<td data-value="32.63" class="pic low">
|
|
<div class="chart"><div class="cover-fill" style="width: 32%"></div><div class="cover-empty" style="width: 68%"></div></div>
|
|
</td>
|
|
<td data-value="32.63" class="pct low">32.63%</td>
|
|
<td data-value="288" class="abs low">94/288</td>
|
|
<td data-value="31.66" class="pct low">31.66%</td>
|
|
<td data-value="240" class="abs low">76/240</td>
|
|
<td data-value="22.72" class="pct low">22.72%</td>
|
|
<td data-value="44" class="abs low">10/44</td>
|
|
<td data-value="32.33" class="pct low">32.33%</td>
|
|
<td data-value="266" class="abs low">86/266</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="file low" data-value="utils/http"><a href="utils/http/index.html">utils/http</a></td>
|
|
<td data-value="0" class="pic low">
|
|
<div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
|
|
</td>
|
|
<td data-value="0" class="pct low">0%</td>
|
|
<td data-value="72" class="abs low">0/72</td>
|
|
<td data-value="0" class="pct low">0%</td>
|
|
<td data-value="22" class="abs low">0/22</td>
|
|
<td data-value="0" class="pct low">0%</td>
|
|
<td data-value="22" class="abs low">0/22</td>
|
|
<td data-value="0" class="pct low">0%</td>
|
|
<td data-value="68" class="abs low">0/68</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="file low" data-value="utils/localforage"><a href="utils/localforage/index.html">utils/localforage</a></td>
|
|
<td data-value="0" class="pic low">
|
|
<div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
|
|
</td>
|
|
<td data-value="0" class="pct low">0%</td>
|
|
<td data-value="24" class="abs low">0/24</td>
|
|
<td data-value="0" class="pct low">0%</td>
|
|
<td data-value="8" class="abs low">0/8</td>
|
|
<td data-value="0" class="pct low">0%</td>
|
|
<td data-value="22" class="abs low">0/22</td>
|
|
<td data-value="0" class="pct low">0%</td>
|
|
<td data-value="23" class="abs low">0/23</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="file low" data-value="utils/progress"><a href="utils/progress/index.html">utils/progress</a></td>
|
|
<td data-value="0" class="pic low">
|
|
<div class="chart"><div class="cover-fill" style="width: 0%"></div><div class="cover-empty" style="width: 100%"></div></div>
|
|
</td>
|
|
<td data-value="0" class="pct low">0%</td>
|
|
<td data-value="1" class="abs low">0/1</td>
|
|
<td data-value="100" class="pct high">100%</td>
|
|
<td data-value="0" class="abs high">0/0</td>
|
|
<td data-value="100" class="pct high">100%</td>
|
|
<td data-value="0" class="abs high">0/0</td>
|
|
<td data-value="0" class="pct low">0%</td>
|
|
<td data-value="1" class="abs low">0/1</td>
|
|
</tr>
|
|
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
<div class='push'></div><!-- for sticky footer -->
|
|
</div><!-- /wrapper -->
|
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
Code coverage generated by
|
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
at 2026-06-03T13:52:15.435Z
|
|
</div>
|
|
<script src="prettify.js"></script>
|
|
<script>
|
|
window.onload = function () {
|
|
prettyPrint();
|
|
};
|
|
</script>
|
|
<script src="sorter.js"></script>
|
|
<script src="block-navigation.js"></script>
|
|
</body>
|
|
</html>
|
|
|