import { describe, it, expect } from 'vitest'
import { contentFts5MigrationSql, createContentSqliteSearchProvider } from './search-sqlite.js'

describe('content sqlite search', () => {
  it('exports FTS5 migration SQL', () => {
    expect(contentFts5MigrationSql).toContain('content_entries_fts')
    expect(contentFts5MigrationSql).toContain('USING fts5')
    expect(contentFts5MigrationSql).toContain('AFTER INSERT')
    expect(contentFts5MigrationSql).toContain('AFTER DELETE')
    expect(contentFts5MigrationSql).toContain('AFTER UPDATE')
  })

  it('createContentSqliteSearchProvider returns a search provider', () => {
    const provider = createContentSqliteSearchProvider()
    expect(typeof provider).toBe('function')
  })

  it('provider returns empty for blank query', async () => {
    const provider = createContentSqliteSearchProvider()
    const result = await provider('   ', { db: {} as any }, { limit: 10, offset: 0 })
    expect(result).toEqual({ hits: [], total: 0 })
  })
})