Consolidate MangaCircus app, scraper, and Compose baseline

This commit is contained in:
Maashkinoozhe committed 2026-10-07 23:28:20 +02:00
1 parent cfb2d79103
commit eef4ffa07c
103 files changed
+9316 -172

No files matched your search

+23
View File
@@ -0,0 +1,23 @@
'use strict';
const test = require('node:test');
const assert = require('node:assert/strict');
const { SETTINGS_SECTIONS, SCRAPER_TABS, settingsRoute } = require('../public/settings-nav');
test('settings organize unique routes into User and Admin, with scraper-local tabs', () => {
assert.equal(new Set(SETTINGS_SECTIONS.map(s => s.id)).size, SETTINGS_SECTIONS.length);
assert.deepEqual([...new Set(SETTINGS_SECTIONS.map(s => s.group))], ['User', 'Admin']);
assert.ok(SETTINGS_SECTIONS.every(s => s.id.split('/').length === 2));
assert.deepEqual(SCRAPER_TABS, ['activity', 'queue', 'updates', 'sources']);
for (const section of SETTINGS_SECTIONS) assert.equal(settingsRoute('#' + section.id, true).id, section.id);
});
test('settings deep links default safely and never route ordinary readers into admin', () => {
assert.deepEqual(settingsRoute('', false), { id: 'user/reading', tab: 'activity' });
assert.equal(settingsRoute('#not/a/section', true).id, 'user/reading');
assert.equal(settingsRoute('#admin/users', false).id, 'user/reading');
assert.equal(settingsRoute('#admin/scraper/hosters', false).id, 'user/reading');
assert.equal(settingsRoute('#user/notifications', false).id, 'user/notifications');
assert.deepEqual(settingsRoute('#admin/scraper/hosters', true), { id: 'admin/scraper', tab: 'sources' });
assert.deepEqual(settingsRoute('#admin/scraper/sources', true), { id: 'admin/scraper', tab: 'sources' });
assert.equal(settingsRoute('#admin/scraper/unknown', true).tab, 'activity');
});