mirror of
https://github.com/johndoe6345789/snippet-pastebin.git
synced 2026-04-24 13:34:55 +00:00
Error handling and recovery (ErrorFallback): - Add ErrorFallback.test.tsx: 18 comprehensive tests for error UI - Error rendering and display - Stack trace toggle/collapsible functionality - Copy button with accessibility support - Page reload functionality - Semantic alert structure and accessibility - Full layout testing (full-height centered container) - Mock AIErrorHelper and window.location.reload Overall progress: - Test suites: 50 → 54 passing - Total tests: 542 → 633 passing (+91 new tests) - Coverage remains at: 29.9% (more reliable tests, not just coverage %) - All tests passing with zero lint warnings Key testing learnings in this iteration: - Component state management with collapsibles - Clipboard API mocking challenges (use test IDs instead) - Stack trace toggling and accessibility testing - Error boundary testing with proper mocking Files tested in Phase 1-3: - App routes: 3 files - Settings: 1 file - Database layer: 1 file - Feature workflows: 2 files - Error handling: 1 file Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
176 lines
7.0 KiB
HTML
176 lines
7.0 KiB
HTML
|
|
<!doctype html>
|
|
<html lang="en">
|
|
|
|
<head>
|
|
<title>Code coverage report for src/components/demo</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><a href="../../../index.html">All files</a> src/components/demo</h1>
|
|
<div class='clearfix'>
|
|
|
|
<div class='fl pad1y space-right2'>
|
|
<span class="strong">0% </span>
|
|
<span class="quiet">Statements</span>
|
|
<span class='fraction'>0/451</span>
|
|
</div>
|
|
|
|
|
|
<div class='fl pad1y space-right2'>
|
|
<span class="strong">0% </span>
|
|
<span class="quiet">Branches</span>
|
|
<span class='fraction'>0/5</span>
|
|
</div>
|
|
|
|
|
|
<div class='fl pad1y space-right2'>
|
|
<span class="strong">0% </span>
|
|
<span class="quiet">Functions</span>
|
|
<span class='fraction'>0/5</span>
|
|
</div>
|
|
|
|
|
|
<div class='fl pad1y space-right2'>
|
|
<span class="strong">0% </span>
|
|
<span class="quiet">Lines</span>
|
|
<span class='fraction'>0/451</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 low" data-value="ComponentShowcase.tsx"><a href="ComponentShowcase.tsx.html">ComponentShowcase.tsx</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="88" class="abs low">0/88</td>
|
|
<td data-value="0" class="pct low">0%</td>
|
|
<td data-value="1" class="abs low">0/1</td>
|
|
<td data-value="0" class="pct low">0%</td>
|
|
<td data-value="1" class="abs low">0/1</td>
|
|
<td data-value="0" class="pct low">0%</td>
|
|
<td data-value="88" class="abs low">0/88</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="file low" data-value="DemoFeatureCards.tsx"><a href="DemoFeatureCards.tsx.html">DemoFeatureCards.tsx</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="41" class="abs low">0/41</td>
|
|
<td data-value="0" class="pct low">0%</td>
|
|
<td data-value="1" class="abs low">0/1</td>
|
|
<td data-value="0" class="pct low">0%</td>
|
|
<td data-value="1" class="abs low">0/1</td>
|
|
<td data-value="0" class="pct low">0%</td>
|
|
<td data-value="41" class="abs low">0/41</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="file low" data-value="PersistenceExample.tsx"><a href="PersistenceExample.tsx.html">PersistenceExample.tsx</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="89" class="abs low">0/89</td>
|
|
<td data-value="0" class="pct low">0%</td>
|
|
<td data-value="1" class="abs low">0/1</td>
|
|
<td data-value="0" class="pct low">0%</td>
|
|
<td data-value="1" class="abs low">0/1</td>
|
|
<td data-value="0" class="pct low">0%</td>
|
|
<td data-value="89" class="abs low">0/89</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="file low" data-value="PersistenceSettings.tsx"><a href="PersistenceSettings.tsx.html">PersistenceSettings.tsx</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="121" class="abs low">0/121</td>
|
|
<td data-value="0" class="pct low">0%</td>
|
|
<td data-value="1" class="abs low">0/1</td>
|
|
<td data-value="0" class="pct low">0%</td>
|
|
<td data-value="1" class="abs low">0/1</td>
|
|
<td data-value="0" class="pct low">0%</td>
|
|
<td data-value="121" class="abs low">0/121</td>
|
|
</tr>
|
|
|
|
<tr>
|
|
<td class="file low" data-value="demo-constants.ts"><a href="demo-constants.ts.html">demo-constants.ts</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="112" class="abs low">0/112</td>
|
|
<td data-value="0" class="pct low">0%</td>
|
|
<td data-value="1" class="abs low">0/1</td>
|
|
<td data-value="0" class="pct low">0%</td>
|
|
<td data-value="1" class="abs low">0/1</td>
|
|
<td data-value="0" class="pct low">0%</td>
|
|
<td data-value="112" class="abs low">0/112</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-01-20T20:54:28.242Z
|
|
</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>
|
|
|