mirror of
https://github.com/bitsocialnet/5chan.git
synced 2026-08-03 07:41:04 +02:00
refactor(routing): namespace board mod queue under board mod routes
Updated the canonical board mod queue URL to /:boardIdentifier/mod/queue and made legacy /:boardIdentifier/modqueue paths resolve to not found. Tightened route helpers so board-scoped mod URLs no longer fall through as generic board pages.
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import { describe, it, expect } from 'vitest';
|
||||
import { isFeedRoute, normalizeMultiboardFeedPath } from '../route-utils';
|
||||
import { isBoardModRoute, isFeedRoute, isLegacyBoardModQueueRoute, isModQueueRoute, isValidBoardModRoute, normalizeMultiboardFeedPath } from '../route-utils';
|
||||
|
||||
describe('normalizeMultiboardFeedPath', () => {
|
||||
it('normalizes /all/3 -> /all', () => {
|
||||
@@ -41,4 +41,41 @@ describe('isFeedRoute', () => {
|
||||
expect(isFeedRoute('/subs/catalog/1w')).toBe(false);
|
||||
expect(isFeedRoute('/all/1w/3')).toBe(false);
|
||||
});
|
||||
|
||||
it('returns false for board-scoped mod namespace paths', () => {
|
||||
expect(isFeedRoute('/biz/mod')).toBe(false);
|
||||
expect(isFeedRoute('/biz/mod/queue')).toBe(false);
|
||||
});
|
||||
});
|
||||
|
||||
describe('board mod routes', () => {
|
||||
it('recognizes canonical mod queue routes', () => {
|
||||
expect(isModQueueRoute('/mod/queue')).toBe(true);
|
||||
expect(isModQueueRoute('/biz/mod/queue')).toBe(true);
|
||||
expect(isModQueueRoute('/biz/mod/queue/settings')).toBe(true);
|
||||
});
|
||||
|
||||
it('does not recognize legacy board modqueue routes', () => {
|
||||
expect(isModQueueRoute('/biz/modqueue')).toBe(false);
|
||||
});
|
||||
|
||||
it('recognizes legacy board modqueue routes for rejection', () => {
|
||||
expect(isLegacyBoardModQueueRoute('/biz/modqueue')).toBe(true);
|
||||
expect(isLegacyBoardModQueueRoute('/biz/modqueue/settings')).toBe(true);
|
||||
expect(isLegacyBoardModQueueRoute('/biz/mod/queue')).toBe(false);
|
||||
});
|
||||
|
||||
it('recognizes board mod namespace paths', () => {
|
||||
expect(isBoardModRoute('/biz/mod')).toBe(true);
|
||||
expect(isBoardModRoute('/biz/mod/queue')).toBe(true);
|
||||
expect(isBoardModRoute('/mod/queue')).toBe(false);
|
||||
});
|
||||
|
||||
it('validates allowed board mod routes', () => {
|
||||
expect(isValidBoardModRoute('/biz/mod/queue')).toBe(true);
|
||||
expect(isValidBoardModRoute('/biz/mod/queue/settings')).toBe(true);
|
||||
expect(isValidBoardModRoute('/biz/mod')).toBe(false);
|
||||
expect(isValidBoardModRoute('/biz/mod/log')).toBe(false);
|
||||
expect(isValidBoardModRoute('/biz/modqueue')).toBe(false);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user