home · contact · privacy
Add /edit_structured tests. master
authorChristian Heller <c.heller@plomlompom.de>
Mon, 19 Jan 2026 06:33:36 +0000 (07:33 +0100)
committerChristian Heller <c.heller@plomlompom.de>
Mon, 19 Jan 2026 06:33:36 +0000 (07:33 +0100)
src/tests/full.edit_structured.1 [new file with mode: 0644]
src/tests/full.edit_structured.4 [new file with mode: 0644]

diff --git a/src/tests/full.edit_structured.1 b/src/tests/full.edit_structured.1
new file mode 100644 (file)
index 0000000..b65f398
--- /dev/null
@@ -0,0 +1,201 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="UTF-8">
+<script type="module" src="/edit_structured.js/1">
+</script>
+<style>
+html {
+    scroll-padding-top: 2em;
+}
+body {
+    background: #ffffff;
+    font-family: sans-serif;
+    text-align: left;
+    margin: 0;
+    padding: 0;
+}
+#header {
+    background: #ffffff;
+    position: sticky;
+    top: 0;
+    padding-left: 0.5em;
+    padding-bottom: 0.25em;
+    border-bottom: 1px solid black;
+}
+table.alternating > tbody > tr:nth-child(odd) {
+    background-color: #dcdcdc;
+}
+table.alternating > tbody > tr:nth-child(even) {
+    background: #ffffff;
+}
+td {
+    vertical-align: top;
+}
+.critical {
+    background: #ff6666 !important;
+}
+td.amount {
+    text-align: right;
+}
+td.amount,
+td.currency {
+    font-family: monospace;
+    font-size: 1.25em;
+}
+table.alternating.critical > tbody > tr:nth-child(even) {
+    background-color: #ff8a8a;
+}
+td.balance.amount {
+    width: 10em;
+}
+td.balance.currency {
+    width: 3em;
+}
+td.direct_target {
+    font-weight: bold;
+}
+
+input.amount {
+    text-align: right;
+    font-family: monospace;
+}
+#date_input {
+    margin-right: 0.3em;
+    font-family: monospace;
+}
+</style>
+</head>
+<body>
+<div id="header">
+    <form action="" method="POST">
+        <span class="disable_on_taint">
+            ledger <a href="/ledger_structured">structured</a>
+            / <a href="/ledger_raw">raw</a>
+            · <a href="/balance">balance</a>
+            · <input type="submit"name="file_load" value="reload" />
+        </span>
+    </form>
+</div>
+<form action="/edit_structured/1" method="POST">
+<span class="disable_on_taint">
+<a href="/blocks/0">prev</a>
+<a href="/blocks/2">next</a>
+</span>
+<input class="enable_on_taint"
+       type="submit"
+       name="apply"
+       value="apply"
+       disabled
+       />
+<input class="enable_on_taint"
+       type="submit"
+       name="revert"
+       value="revert"
+       disabled
+       />
+<span class="disable_on_taint">
+<a href="/edit_raw/1">switch to raw</a>
+<a href="/balance?up_incl=1">balance after</a>
+<a href="/ledger_structured/#block_1">in ledger</a>
+</span>
+<hr />
+
+<span class="disable_on_taint">
+<input id="btn_mirror" type="button" value="mirror">
+<input id="btn_sink" type="button" value="fill sink">
+|
+<input id="btn_replace" type="button" value="replace string">
+from
+<input id="replace_from" />
+to
+<input id="replace_to" />
+</span>
+<hr />
+<table id="booking_lines" class="alternating">
+</table>
+<div>Gap:</div>
+<textarea id="gap_lines"
+          name="raw_lines"
+          cols=100
+          rows=2
+          class="tainter"
+          >
+</textarea>
+</form>
+<datalist id="all_accounts">
+<option value="bar">bar</a>
+<option value="bar:x">bar:x</a>
+<option value="bar:x:y">bar:x:y</a>
+<option value="bar:z">bar:z</a>
+<option value="baz">baz</a>
+<option value="foo">foo</a>
+<option value="foo:x">foo:x</a>
+</datalist>
+<hr />
+<table class="alternating">
+    <tr>
+        <th>account</th>
+        <th>before</th>
+        <th>diff</th>
+        <th>after</th>
+    </tr>
+    <tr>
+        <td class="direct_target">bar</td>
+        <td>
+            <table>
+                <tr>
+                    <td class="balance amount">0</td>
+                    <td class="balance currency">€</td>
+                </tr>
+            </table>
+        </td>
+        <td>
+            <table>
+                <tr>
+                    <td class="balance amount">-10</td>
+                    <td class="balance currency">€</td>
+                </tr>
+            </table>
+        </td>
+        <td>
+            <table>
+                <tr>
+                    <td class="balance amount">-10</td>
+                    <td class="balance currency">€</td>
+                </tr>
+            </table>
+        </td>
+    </tr>
+    <tr>
+        <td class="direct_target">foo</td>
+        <td>
+            <table>
+                <tr>
+                    <td class="balance amount">0</td>
+                    <td class="balance currency">€</td>
+                </tr>
+            </table>
+        </td>
+        <td>
+            <table>
+                <tr>
+                    <td class="balance amount">10</td>
+                    <td class="balance currency">€</td>
+                </tr>
+            </table>
+        </td>
+        <td>
+            <table>
+                <tr>
+                    <td class="balance amount">10</td>
+                    <td class="balance currency">€</td>
+                </tr>
+            </table>
+        </td>
+    </tr>
+</table>
+</body>
+</html>
diff --git a/src/tests/full.edit_structured.4 b/src/tests/full.edit_structured.4
new file mode 100644 (file)
index 0000000..2f84cfa
--- /dev/null
@@ -0,0 +1,351 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta charset="UTF-8">
+<script type="module" src="/edit_structured.js/4">
+</script>
+<style>
+html {
+    scroll-padding-top: 2em;
+}
+body {
+    background: #ffffff;
+    font-family: sans-serif;
+    text-align: left;
+    margin: 0;
+    padding: 0;
+}
+#header {
+    background: #ffffff;
+    position: sticky;
+    top: 0;
+    padding-left: 0.5em;
+    padding-bottom: 0.25em;
+    border-bottom: 1px solid black;
+}
+table.alternating > tbody > tr:nth-child(odd) {
+    background-color: #dcdcdc;
+}
+table.alternating > tbody > tr:nth-child(even) {
+    background: #ffffff;
+}
+td {
+    vertical-align: top;
+}
+.critical {
+    background: #ff6666 !important;
+}
+td.amount {
+    text-align: right;
+}
+td.amount,
+td.currency {
+    font-family: monospace;
+    font-size: 1.25em;
+}
+table.alternating.critical > tbody > tr:nth-child(even) {
+    background-color: #ff8a8a;
+}
+td.balance.amount {
+    width: 10em;
+}
+td.balance.currency {
+    width: 3em;
+}
+td.direct_target {
+    font-weight: bold;
+}
+
+input.amount {
+    text-align: right;
+    font-family: monospace;
+}
+#date_input {
+    margin-right: 0.3em;
+    font-family: monospace;
+}
+</style>
+</head>
+<body>
+<div id="header">
+    <form action="" method="POST">
+        <span class="disable_on_taint">
+            ledger <a href="/ledger_structured">structured</a>
+            / <a href="/ledger_raw">raw</a>
+            · <a href="/balance">balance</a>
+            · <input type="submit"name="file_load" value="reload" />
+        </span>
+    </form>
+</div>
+<form action="/edit_structured/4" method="POST">
+<span class="disable_on_taint">
+<a href="/blocks/3">prev</a>
+<del>next</del>
+</span>
+<input class="enable_on_taint"
+       type="submit"
+       name="apply"
+       value="apply"
+       disabled
+       />
+<input class="enable_on_taint"
+       type="submit"
+       name="revert"
+       value="revert"
+       disabled
+       />
+<span class="disable_on_taint">
+<a href="/edit_raw/4">switch to raw</a>
+<a href="/balance?up_incl=4">balance after</a>
+<a href="/ledger_structured/#block_4">in ledger</a>
+</span>
+<hr />
+<div class="critical">
+    block-wide errors:
+    date &lt; previous date
+    – and:
+</div>
+<hr />
+
+<span class="disable_on_taint">
+<input id="btn_mirror" type="button" value="mirror">
+<input id="btn_sink" type="button" value="fill sink">
+|
+<input id="btn_replace" type="button" value="replace string">
+from
+<input id="replace_from" />
+to
+<input id="replace_to" />
+</span>
+<hr />
+<table id="booking_lines" class="alternating">
+</table>
+<div>Gap:</div>
+<textarea id="gap_lines"
+          name="raw_lines"
+          cols=100
+          rows=2
+          class="tainter"
+          >
+</textarea>
+</form>
+<datalist id="all_accounts">
+<option value="bar">bar</a>
+<option value="bar:x">bar:x</a>
+<option value="bar:x:y">bar:x:y</a>
+<option value="bar:z">bar:z</a>
+<option value="baz">baz</a>
+<option value="foo">foo</a>
+<option value="foo:x">foo:x</a>
+</datalist>
+<hr />
+<table class="alternating critical">
+    <tr>
+        <th>account</th>
+        <th>before</th>
+        <th>diff</th>
+        <th>after</th>
+    </tr>
+    <tr>
+        <td>bar:</td>
+        <td>
+            <table>
+                <tr>
+                    <td class="balance amount">1</td>
+                    <td class="balance currency">€</td>
+                </tr>
+                <tr>
+                    <td class="balance amount">0</td>
+                    <td class="balance currency">USD</td>
+                </tr>
+            </table>
+        </td>
+        <td>
+            <table>
+                <tr>
+                    <td class="balance amount">-10</td>
+                    <td class="balance currency">€</td>
+                </tr>
+                <tr>
+                    <td class="balance amount">-1</td>
+                    <td class="balance currency">USD</td>
+                </tr>
+            </table>
+        </td>
+        <td>
+            <table>
+                <tr>
+                    <td class="balance amount">-9</td>
+                    <td class="balance currency">€</td>
+                </tr>
+                <tr>
+                    <td class="balance amount">-1</td>
+                    <td class="balance currency">USD</td>
+                </tr>
+            </table>
+        </td>
+    </tr>
+    <tr>
+        <td>bar:x:</td>
+        <td>
+            <table>
+                <tr>
+                    <td class="balance amount">0</td>
+                    <td class="balance currency">€</td>
+                </tr>
+            </table>
+        </td>
+        <td>
+            <table>
+                <tr>
+                    <td class="balance amount">-10</td>
+                    <td class="balance currency">€</td>
+                </tr>
+            </table>
+        </td>
+        <td>
+            <table>
+                <tr>
+                    <td class="balance amount">-10</td>
+                    <td class="balance currency">€</td>
+                </tr>
+            </table>
+        </td>
+    </tr>
+    <tr>
+        <td class="direct_target">bar:x:y</td>
+        <td>
+            <table>
+                <tr>
+                    <td class="balance amount">0</td>
+                    <td class="balance currency">€</td>
+                </tr>
+            </table>
+        </td>
+        <td>
+            <table>
+                <tr>
+                    <td class="balance amount">-10</td>
+                    <td class="balance currency">€</td>
+                </tr>
+            </table>
+        </td>
+        <td>
+            <table>
+                <tr>
+                    <td class="balance amount">-10</td>
+                    <td class="balance currency">€</td>
+                </tr>
+            </table>
+        </td>
+    </tr>
+    <tr>
+        <td class="direct_target">bar:z</td>
+        <td>
+            <table>
+                <tr>
+                    <td class="balance amount">0</td>
+                    <td class="balance currency">USD</td>
+                </tr>
+            </table>
+        </td>
+        <td>
+            <table>
+                <tr>
+                    <td class="balance amount">-1</td>
+                    <td class="balance currency">USD</td>
+                </tr>
+            </table>
+        </td>
+        <td>
+            <table>
+                <tr>
+                    <td class="balance amount">-1</td>
+                    <td class="balance currency">USD</td>
+                </tr>
+            </table>
+        </td>
+    </tr>
+    <tr>
+        <td>foo:</td>
+        <td>
+            <table>
+                <tr>
+                    <td class="balance amount">10</td>
+                    <td class="balance currency">€</td>
+                </tr>
+                <tr>
+                    <td class="balance amount">0</td>
+                    <td class="balance currency">USD</td>
+                </tr>
+            </table>
+        </td>
+        <td>
+            <table>
+                <tr>
+                    <td class="balance amount">10</td>
+                    <td class="balance currency">€</td>
+                </tr>
+                <tr>
+                    <td class="balance amount">1</td>
+                    <td class="balance currency">USD</td>
+                </tr>
+            </table>
+        </td>
+        <td>
+            <table>
+                <tr>
+                    <td class="balance amount">20</td>
+                    <td class="balance currency">€</td>
+                </tr>
+                <tr>
+                    <td class="balance amount">1</td>
+                    <td class="balance currency">USD</td>
+                </tr>
+            </table>
+        </td>
+    </tr>
+    <tr>
+        <td class="direct_target">foo:x</td>
+        <td>
+            <table>
+                <tr>
+                    <td class="balance amount">0</td>
+                    <td class="balance currency">€</td>
+                </tr>
+                <tr>
+                    <td class="balance amount">0</td>
+                    <td class="balance currency">USD</td>
+                </tr>
+            </table>
+        </td>
+        <td>
+            <table>
+                <tr>
+                    <td class="balance amount">10</td>
+                    <td class="balance currency">€</td>
+                </tr>
+                <tr>
+                    <td class="balance amount">1</td>
+                    <td class="balance currency">USD</td>
+                </tr>
+            </table>
+        </td>
+        <td>
+            <table>
+                <tr>
+                    <td class="balance amount">10</td>
+                    <td class="balance currency">€</td>
+                </tr>
+                <tr>
+                    <td class="balance amount">1</td>
+                    <td class="balance currency">USD</td>
+                </tr>
+            </table>
+        </td>
+    </tr>
+</table>
+</body>
+</html>