waybetter/packages/shell/tests
CRT 7091bca25d Store: Open With (files the OS hands over) and the icons and builtin catalog kinds
Open With: store_commands keeps each existing file the OS hands over (launch
argument, a second launch forwarded by single-instance with its working
directory, a macOS file:// open-URL) under a random id (Store::receive_file:
name says what it is, regular file, size cap, 8 kept, 15 minutes) and queues
LinkEvent.opened {id, name, kind}. The shell-only install_stage_opened {id}
reads that one file once and stages it exactly like a dropped file; it takes
an id only (testkit asserts that), so the shell cannot name a path. The shell
shows the same install screen; nothing installs without it. The NSIS template
lists the app under "Open with" for the declared extensions (OpenWithProgids)
and never makes it the default program, unlike Tauri's own macro.

Catalog kinds: icons (an icon pack, *.icons.json, at most 120 KB; validate_icons,
staged and committed as text for the shell, the install screen draws every icon,
.icons.json is no longer read as a theme) and builtin (a feature the app
already has, such as an area plugin: no url, sha256, size or file; never staged;
the Store view lists it as Built in with the app's own switch via the areas
prop). Rust: Kind, CatalogItem.check, verify_item, install links refuse builtin.
JS: storeModel, installController (requestOpened, icons adapter), InstallDialog,
StoreView, StoreSection (remove an icon pack, area switches), words. CLI and
JSON Schema: kinds, optional url/sha256/size on builtin, icons size cap; the
test schema validator learns not and if/then/else. docs/STORE.md.
2026-10-01 14:23:23 +07:00
..
deckModel.test.ts Deck columns (Power User Mode): shell deckModel (bounded decks, paging layout, focus, unread totals), runtime column mode (hide site chrome, fill width, filters, unread tracking, no requests), host ColumnConfig bounds, TabRole, deck shortcuts, capped unread in TabState; column boxes skip rail rules 2026-09-28 22:55:57 +07:00
frame.test.ts shell: the window follows a theme's corners and, for a bevelled theme, its edges 2026-10-01 14:08:01 +07:00
language.test.ts i18n: supported and community language tiers 2026-09-30 15:48:11 +07:00
linkDrop.test.ts Extract the wayBetter framework core from wayBetter for X 2026-09-28 03:01:33 +07:00
menu.test.ts shell: the app menu hangs from each pane's wB button; the titlebar logo is plain again 2026-10-01 11:22:41 +07:00
models.test.ts Extract the wayBetter framework core from wayBetter for X 2026-09-28 03:01:33 +07:00
openWith.test.ts Store: Open With (files the OS hands over) and the icons and builtin catalog kinds 2026-10-01 14:23:23 +07:00
panel.test.ts Feature health on the area cards: a feature that paused itself is named by its area's "health" palette entry, and the panel reads it for the row and the card (no new report to the host) 2026-09-30 22:00:04 +07:00
report.test.ts Report a problem: the webview's full version (the user agent carries a reduced one) 2026-10-01 03:56:18 +07:00
setup.test.ts Share my setup, model: one file or one waybetter://setup link with the look (theme id, accent, icon pack), the mode and the non-default flags, nothing personal; reading drops what the app does not know and refuses another app's setup; the plan lists exactly what would change and applying it changes nothing else (not in the UI yet) 2026-10-01 04:38:30 +07:00
store.test.ts Share my setup, links: a waybetter://setup link opened from outside reaches the shell as text on the install-link event (shape and size checked natively, never decoded or applied there); the install controller hands it to the app's onSetupLink and stages nothing 2026-10-01 04:49:57 +07:00
stringPacksModel.test.ts String packs: rich-text entries, language conditions and word rewriting; theme doctor report; translate-mode words 2026-10-01 14:19:36 +07:00
windowControls.test.ts Extract the wayBetter framework core from wayBetter for X 2026-09-28 03:01:33 +07:00