import { describe, expect, it } from 'vitest'
import { FIELD_TYPES, FIELD_KEY_RE, isMultipleCapable } from './model.js'

describe('model literals', () => {
  it('FIELD_TYPES lists all 11 v1 types', () => {
    expect(FIELD_TYPES).toEqual([
      'text', 'textarea', 'number', 'boolean', 'select',
      'date', 'color', 'url', 'email', 'media', 'relationship',
    ])
  })
  it('FIELD_KEY_RE accepts snake/lower, rejects leading digit + uppercase', () => {
    expect(FIELD_KEY_RE.test('material')).toBe(true)
    expect(FIELD_KEY_RE.test('cook_time_2')).toBe(true)
    expect(FIELD_KEY_RE.test('2bad')).toBe(false)
    expect(FIELD_KEY_RE.test('Bad')).toBe(false)
  })
  it('isMultipleCapable only for select/media/relationship', () => {
    expect(isMultipleCapable('select')).toBe(true)
    expect(isMultipleCapable('media')).toBe(true)
    expect(isMultipleCapable('relationship')).toBe(true)
    expect(isMultipleCapable('text')).toBe(false)
  })
})
