fix(tags): transaction on sync, scroll indicator, backend tests (37 tests)

- Wrap TagLinksService.sync() in db.transaction() to prevent race conditions
- Add CSS mask-image fade edges on TagStrip for scroll affordance
- Add 37 unit tests for tag controllers:
  - TagsController: 12 tests (CRUD, defaults, conflict, not-found)
  - TagGroupsController: 10 tests (CRUD, reorder, cascading)
  - TagLinksController: 15 tests (link/unlink, bulk, sync, query)

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Till JS 2026-03-26 22:00:12 +01:00
parent 0dfd603892
commit 4ddff8485b
5 changed files with 768 additions and 35 deletions

View file

@ -147,6 +147,21 @@
overflow-x: auto;
scrollbar-width: none;
-ms-overflow-style: none;
/* Fade edges to indicate scrollable content */
mask-image: linear-gradient(
to right,
transparent 0%,
black 2rem,
black calc(100% - 2rem),
transparent 100%
);
-webkit-mask-image: linear-gradient(
to right,
transparent 0%,
black 2rem,
black calc(100% - 2rem),
transparent 100%
);
}
.tag-strip-container::-webkit-scrollbar {