import { describe, expect, it } from 'vitest'
import {
  buildDashboardSignInHref,
  companyInitial,
  localeMenuPositionClass,
  ownerWorkspaceHref,
} from './StorefrontHeader'

describe('StorefrontHeader helpers', () => {
  it('builds dashboard sign-in links with language and theme query parameters', () => {
    expect(buildDashboardSignInHref('https://app.example.com/dashboard', 'fr', 'dark')).toBe(
      'https://app.example.com/dashboard/sign-in?lang=fr&theme=dark'
    )
    expect(buildDashboardSignInHref('/dashboard', 'ar', 'light')).toBe('/dashboard/sign-in?lang=ar&theme=light')
  })

  it('keeps the locale dropdown anchored to the readable side for RTL and LTR languages', () => {
    expect(localeMenuPositionClass('ar')).toBe('right-0 sm:right-0')
    expect(localeMenuPositionClass('en')).toBe('left-0 sm:left-auto sm:right-0')
    expect(localeMenuPositionClass('fr')).toBe('left-0 sm:left-auto sm:right-0')
  })

  it('routes existing companies to their workspace and new owners to sign-up', () => {
    expect(ownerWorkspaceHref('https://dashboard.example.com', 'Atlas Cars')).toBe('https://dashboard.example.com')
    expect(ownerWorkspaceHref('https://dashboard.example.com', null)).toBe('https://dashboard.example.com/sign-up')
  })

  it('normalizes company initials for the owner workspace pill', () => {
    expect(companyInitial('atlas cars')).toBe('A')
    expect(companyInitial('  زاكورة كار  ')).toBe('ز')
  })
})
