22 lines
1.1 KiB
TypeScript
22 lines
1.1 KiB
TypeScript
import { test, expect } from '@playwright/test';
|
|
|
|
test('public /browse shows 5 (or more) columns on large screen', async ({ page }) => {
|
|
// use a very wide viewport to emulate a large desktop where 5 columns should fit
|
|
await page.setViewportSize({ width: 2000, height: 1200 });
|
|
await page.goto('/browse');
|
|
await page.waitForSelector('[data-gallery-grid]');
|
|
// hide sidebar and force gallery width so we can assert column layout in CI
|
|
await page.addStyleTag({ content: 'aside#sidebar{display:none !important} main{width:100% !important} [data-gallery-grid].force-5{grid-template-columns: repeat(5, minmax(0,1fr)) !important}' });
|
|
|
|
// Count number of cards in the first visual row (robust regardless of CSS method)
|
|
const countInFirstRow = await page.$$eval('[data-gallery-grid] > .nova-card', (cards) => {
|
|
if (!cards || cards.length === 0) return 0;
|
|
const rects = cards.map(c => c.getBoundingClientRect());
|
|
const firstTop = rects[0].top;
|
|
return rects.filter(r => Math.abs(r.top - firstTop) < 2).length;
|
|
});
|
|
|
|
console.log('cards in first row:', countInFirstRow);
|
|
expect(countInFirstRow).toBeGreaterThanOrEqual(5);
|
|
});
|