import { describe, expect, it } from 'vitest'
// @ts-expect-error — plain ESM JS plugin without .d.ts
import tvuPlugin from '../eslint-plugin/index.js'

describe('eslint-plugin configs', () => {
  it('uses report-only warnings for existing-product incremental config', () => {
    const rules = (tvuPlugin as any).configs.incremental.rules
    expect(rules['@nancyzeng0210/tvu-design-system/no-hardcoded-color']).toBe('warn')
    expect(rules['@nancyzeng0210/tvu-design-system/no-inline-svg']).toBe('warn')
    expect(rules['@nancyzeng0210/tvu-design-system/icon-from-dist']).toBe('warn')
    expect(rules['@nancyzeng0210/tvu-design-system/no-base-component-import']).toBe('warn')
    expect(rules['@nancyzeng0210/tvu-design-system/no-native-element']).toBe('warn')
    expect(rules['@nancyzeng0210/tvu-design-system/no-hardcoded-spacing']).toBe('warn')
  })

  it('keeps strict config blocking and forbids arbitrary SVG imports', () => {
    const rules = (tvuPlugin as any).configs.strict.rules
    expect(rules['@nancyzeng0210/tvu-design-system/no-hardcoded-color']).toBe('error')
    expect(rules['@nancyzeng0210/tvu-design-system/icon-from-dist']).toEqual([
      'error',
      { forbidArbitrarySvg: true },
    ])
  })
})
