import { describe, expect, it } from 'vitest'
import { buildRobotsTxt } from './robots.js'

describe('@platform-modules/seo/robots', () => {
  it('buildRobotsTxt includes sitemap and disallow lines', () => {
    const txt = buildRobotsTxt({
      sitemapUrl: 'https://example.com/sitemap.xml',
      disallowPaths: ['/admin', '/api/'],
    })
    expect(txt).toContain('Sitemap: https://example.com/sitemap.xml')
    expect(txt).toContain('Disallow: /admin')
    expect(txt).toContain('Disallow: /api/')
    expect(txt).toContain('Allow: /')
  })

  it('allowAll false blocks the whole site with Disallow: /', () => {
    const txt = buildRobotsTxt({ sitemapUrl: 'https://example.com/sitemap.xml', allowAll: false })
    expect(txt).toContain('Disallow: /')
    expect(txt).not.toContain('Allow: /')
    expect(txt).toContain('Sitemap: https://example.com/sitemap.xml')
  })

  it('allowAll true with no disallow paths emits only Allow and Sitemap', () => {
    const txt = buildRobotsTxt({ sitemapUrl: 'https://example.com/sitemap.xml', allowAll: true })
    expect(txt).toContain('Allow: /')
    expect(txt).not.toContain('Disallow:')
    expect(txt).toBe('User-agent: *\nAllow: /\nSitemap: https://example.com/sitemap.xml\n')
  })
})
