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);
});
