Skip to content

Commit 448002d

Browse files
Refactor PuzzlePageLayout to mirror CrosswordLayout
Restructure PuzzlePageLayout to use the same Article-domain components (ArticleTitle, ArticleHeadline, ArticleMeta, SubMeta, DiscussionLayout, StickyBottomBanner) and grid structure as CrosswordLayout, while keeping Puzzle-specific content. The puzzleGroup label is now rendered as a real section link through ArticleTitle instead of plain text. Update design format from Standard to Crossword to reuse existing width-handling logic. Add proper ad slot handling (header, survey, merchandising) and comments section (hardcoded off). Extensive comments document hardcoded fallback values for fields not present in FEPuzzlePageType.
1 parent be7bbfc commit 448002d

2 files changed

Lines changed: 442 additions & 157 deletions

File tree

dotcom-rendering/src/layouts/PuzzlePageLayout.test.tsx

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -76,13 +76,12 @@ describe('PuzzlePageLayout', () => {
7676
expect(screen.queryByText('11 September 2026')).not.toBeInTheDocument();
7777
});
7878

79-
it('renders the puzzleGroup label as plain, non-linked text', () => {
79+
it('renders the puzzleGroup label as a real section link, exactly like CrosswordLayout/ArticleTitle', () => {
8080
renderPuzzlePageLayout('sudoku-easy');
8181

8282
expect(
83-
screen.queryByRole('link', { name: 'Logic puzzles' }),
84-
).not.toBeInTheDocument();
85-
expect(screen.getByText('Logic puzzles')).toBeInTheDocument();
83+
screen.getByRole('link', { name: 'Logic puzzles' }),
84+
).toBeInTheDocument();
8685
});
8786

8887
describe('print button (Sudoku-only, per PR #16700 review)', () => {

0 commit comments

Comments
 (0)