// Quick visual screenshots for manual review before deploy
const ADMIN_TOKEN = 'c86ae7afbe10fabe3c1d5e1a7fee74feaadfd5dc7be2ab62'

describe('Visual Check - Screenshots', () => {
  it('homepage with recipes', () => {
    cy.visit('/', { onBeforeLoad(win) { win.localStorage.setItem('oil_auth_token', ADMIN_TOKEN) } })
    cy.get('.recipe-card', { timeout: 10000 }).should('have.length.gte', 1)
    cy.wait(1000)
    cy.screenshot('01-homepage')
  })

  it('recipe detail overlay', () => {
    cy.visit('/', { onBeforeLoad(win) { win.localStorage.setItem('oil_auth_token', ADMIN_TOKEN) } })
    cy.get('.recipe-card', { timeout: 10000 }).first().click()
    cy.wait(1000)
    cy.screenshot('02-recipe-detail')
  })

  it('oil reference page', () => {
    cy.visit('/oils', { onBeforeLoad(win) { win.localStorage.setItem('oil_auth_token', ADMIN_TOKEN) } })
    cy.get('.oil-chip', { timeout: 10000 }).should('have.length.gte', 1)
    cy.wait(500)
    cy.screenshot('03-oil-reference')
  })

  it('manage recipes page', () => {
    cy.visit('/manage', { onBeforeLoad(win) { win.localStorage.setItem('oil_auth_token', ADMIN_TOKEN) } })
    cy.wait(2000)
    cy.screenshot('04-manage-recipes')
  })

  it('inventory page', () => {
    cy.visit('/inventory', { onBeforeLoad(win) { win.localStorage.setItem('oil_auth_token', ADMIN_TOKEN) } })
    cy.wait(1500)
    cy.screenshot('05-inventory')
  })

  it('check if recipe cards show price > 0', () => {
    cy.visit('/', { onBeforeLoad(win) { win.localStorage.setItem('oil_auth_token', ADMIN_TOKEN) } })
    cy.get('.recipe-card', { timeout: 10000 }).should('have.length.gte', 1)
    // Check if any card shows a non-zero price
    cy.get('.recipe-card').first().invoke('text').then(text => {
      cy.log('First card text: ' + text)
      // Check if it contains a price like ¥ X.XX where X > 0
      const priceMatch = text.match(/¥\s*(\d+\.?\d*)/)
      if (priceMatch) {
        cy.log('Price found: ¥' + priceMatch[1])
        const price = parseFloat(priceMatch[1])
        expect(price, 'Recipe card should show price > 0').to.be.gt(0)
      } else {
        cy.log('WARNING: No price found on recipe card')
      }
    })
  })
})
