← back to Wine Finder

test-dynamic-cards.js

55 lines

const { chromium } = require('playwright');

(async () => {
  console.log('🎨 Testing Dynamic Wine Cards...');
  console.log('');

  const browser = await chromium.launch({ headless: true });
  const context = await browser.newContext({ viewport: { width: 1920, height: 1080 } });
  const page = await context.newPage();

  try {
    await page.goto('http://45.61.58.125:9222/verify.html', { waitUntil: 'networkidle' });
    console.log('✓ Page loaded');

    // Search for Cabernet to get results with detailed info
    await page.fill('#mainSearchInput', 'Cabernet Sauvignon');
    await page.click('#searchButtonGiant');
    console.log('✓ Searching for "Cabernet Sauvignon"...');

    await page.waitForTimeout(10000);

    // Take screenshot of results
    await page.screenshot({ path: '/tmp/dynamic-cards-full.png', fullPage: true });
    console.log('📸 Full page screenshot: /tmp/dynamic-cards-full.png');

    // Check if results are showing
    const resultsVisible = await page.locator('#searchResults.show').count();
    console.log('✓ Search results visible: ' + (resultsVisible > 0 ? 'YES' : 'NO'));

    // Count wine cards
    const cardCount = await page.locator('.dynamic-wine-card').count();
    console.log('✓ Dynamic wine cards found: ' + cardCount);

    // Take screenshot of just the search results area
    const resultsElement = await page.$('#searchResults');
    if (resultsElement) {
      await resultsElement.screenshot({ path: '/tmp/dynamic-cards-results.png' });
      console.log('📸 Results area screenshot: /tmp/dynamic-cards-results.png');
    }

    console.log('');
    console.log('=== TEST COMPLETE ===');
    console.log('✅ Dynamic cards loaded successfully');
    console.log('✅ All wine information displayed');
    console.log('');

    await browser.close();

  } catch (error) {
    console.error('❌ Test failed:', error.message);
    await page.screenshot({ path: '/tmp/dynamic-cards-error.png', fullPage: true });
    await browser.close();
  }
})();