ckelsoe_obsidian-rss-importer/__tests__
Charles Kelsoe e83caf2a3d Add endless scroll, select-all, item counts, and custom-domain Substack detection
Import window:
- Endless scroll: an IntersectionObserver auto-loads older Substack archive
  pages as a bottom sentinel scrolls into view. The "Load older" button stays
  as a fallback and end-of-archive indicator.
- Select-all toggle that checks every available (not imported, not dismissed)
  loaded item and flips to "Deselect all" once all are selected.
- Toolbar counts: a running loaded count that reads "All N items" once the
  archive is exhausted, and an "x of y selected" count beside the toggle.

Resolver:
- Detect a custom-domain Substack by its <generator>Substack</generator> feed
  marker, so it classifies as substack (and gains archive backfill) instead of
  falling back to generic. Backward compatible: feeds without the marker stay
  generic.

Settings:
- A "Re-detect" button on each feed editor page re-resolves the feed and
  updates its source type in place, upgrading a feed saved as generic without
  removing and re-adding it. feedId is left untouched so dedup and dismissals
  stay valid.

Adds unit coverage for selectableItemIds, selectAllControlState, and the
generator-marker detection on both the probe and explicit-feed-url paths.
2026-06-15 17:34:02 -04:00
..
__mocks__ Wave D: import services and UI shell 2026-06-14 15:01:59 -04:00
fixtures Wave C: feed sources (generic + substack) and shared mapping 2026-06-14 14:40:39 -04:00
add-feed-modal.test.ts Fix add-feed Save button doing nothing 2026-06-14 16:16:47 -04:00
cleanup.test.ts Feature: per-feed deterministic cleanup (link-host + trim rules) 2026-06-14 17:34:05 -04:00
debug-logger.test.ts Wave A: leaf modules (logger, pacer, paywall, dismiss, index, note-writer) 2026-06-14 14:11:12 -04:00
dismiss-store.test.ts Wave A: leaf modules (logger, pacer, paywall, dismiss, index, note-writer) 2026-06-14 14:11:12 -04:00
feed-resolver.test.ts Add endless scroll, select-all, item counts, and custom-domain Substack detection 2026-06-15 17:34:02 -04:00
feed-xml.test.ts Wave B: XML parser, HTML-to-Markdown converter, feed resolver 2026-06-14 14:32:39 -04:00
fetch-pacer.test.ts Wave A: leaf modules (logger, pacer, paywall, dismiss, index, note-writer) 2026-06-14 14:11:12 -04:00
html-converter.test.ts Converter: strip Substack app-install / subscribe / CTA clutter 2026-06-14 16:27:53 -04:00
image-downloader.test.ts Wave D: import services and UI shell 2026-06-14 15:01:59 -04:00
import-runner.test.ts Feature: per-feed deterministic cleanup (link-host + trim rules) 2026-06-14 17:34:05 -04:00
media-downloader.test.ts Feature: per-feed media (audio/video) download 2026-06-14 16:59:44 -04:00
note-writer.test.ts Feature: per-feed media (audio/video) download 2026-06-14 16:59:44 -04:00
paywall-detector.test.ts Wave A: leaf modules (logger, pacer, paywall, dismiss, index, note-writer) 2026-06-14 14:11:12 -04:00
pipeline.test.ts Phase 4: end-to-end pipeline test (source to note to dedup index) 2026-06-14 15:05:12 -04:00
settings-tab.test.ts Fix plugin failing to load (settings tab getter/setter conflict) 2026-06-14 16:16:47 -04:00
settings.test.ts Feature: per-feed deterministic cleanup (link-host + trim rules) 2026-06-14 17:34:05 -04:00
source-common.test.ts Feature: Substack archive backfill (load older than the RSS window) 2026-06-14 17:18:56 -04:00
source-generic.test.ts Feature: Substack archive backfill (load older than the RSS window) 2026-06-14 17:18:56 -04:00
source-substack.test.ts Feature: Substack archive backfill (load older than the RSS window) 2026-06-14 17:18:56 -04:00
ui-shell.test.ts Add endless scroll, select-all, item counts, and custom-domain Substack detection 2026-06-15 17:34:02 -04:00
vault-index.test.ts Wave A: leaf modules (logger, pacer, paywall, dismiss, index, note-writer) 2026-06-14 14:11:12 -04:00