Consolidate MangaCircus app, scraper, and Compose baseline
This commit is contained in:
1 parent
cfb2d79103
commit
eef4ffa07c
103 files changed
+9316
-172
No files matched your search
@@ -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');
|
||||
});
|
||||
Reference in new issue
Block a user