mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-06-10 03:13:32 -07:00
refactor(notifications): extract routing predicates and fix pre-overlay
- Extract shouldShowOsd/Overlay/Desktop into notification-routing.ts (was duplicated in 3 files) - Add resolveOverlayReadinessNotificationType: preserves system channel when overlay not ready (both→osd-system, system→system, overlay→osd) - Route overlay loading status through showConfiguredStatusNotification instead of raw OSD
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
import assert from 'node:assert/strict';
|
||||
import test from 'node:test';
|
||||
import {
|
||||
resolveOverlayReadinessNotificationType,
|
||||
shouldShowDesktop,
|
||||
shouldShowOverlay,
|
||||
shouldShowOsd,
|
||||
} from './notification-routing';
|
||||
|
||||
test('notification routing preserves system notification while overlay is not ready', () => {
|
||||
assert.equal(resolveOverlayReadinessNotificationType('system', false), 'system');
|
||||
});
|
||||
|
||||
test('notification routing preserves both as osd plus system while overlay is not ready', () => {
|
||||
assert.equal(resolveOverlayReadinessNotificationType('both', false), 'osd-system');
|
||||
});
|
||||
|
||||
test('notification routing falls back overlay-only notification to osd while overlay is not ready', () => {
|
||||
assert.equal(resolveOverlayReadinessNotificationType('overlay', false), 'osd');
|
||||
});
|
||||
|
||||
test('notification routing predicates classify delivery channels', () => {
|
||||
assert.equal(shouldShowOverlay('both'), true);
|
||||
assert.equal(shouldShowOverlay('system'), false);
|
||||
assert.equal(shouldShowOsd('osd-system'), true);
|
||||
assert.equal(shouldShowOsd('both'), false);
|
||||
assert.equal(shouldShowDesktop('osd-system'), true);
|
||||
assert.equal(shouldShowDesktop('overlay'), false);
|
||||
});
|
||||
Reference in New Issue
Block a user