// This file is auto-generated by alef — DO NOT EDIT.
// alef:hash:4e15143f4af1ae8bafbdb1506ef057da924484c66a19483966333558ad437e75
// To regenerate: alef generate
// To verify freshness: alef verify --exit-code
// Issues & docs: https://github.com/kreuzberg-dev/alef
package dev.kreuzberg.e2e

import org.junit.jupiter.api.Test
import kotlin.test.assertEquals
import kotlin.test.assertTrue
import kotlin.test.assertFalse
import kotlin.test.assertFailsWith
import kotlinx.coroutines.runBlocking
import dev.kreuzberg.Kreuzberg
import com.fasterxml.jackson.databind.ObjectMapper
import com.fasterxml.jackson.datatype.jdk8.Jdk8Module
import com.fasterxml.jackson.module.kotlin.registerKotlinModule
import dev.kreuzberg.EmbeddingConfig

/** E2e tests for category: embed_async_pending. */
class EmbedAsyncPendingTest {

    companion object {
        private val MAPPER = ObjectMapper().registerModule(Jdk8Module()).registerKotlinModule().setPropertyNamingStrategy(com.fasterxml.jackson.databind.PropertyNamingStrategies.SNAKE_CASE)
    }
    @Test
    fun testEmbedTextsAsyncEmptyInput() = runBlocking {
        // embed_texts_async: empty text list
        val result = Kreuzberg.embedTextsAsync(listOf(), EmbeddingConfig())
        // skipped: field 'embeddings' not available on result type
    }

    @Test
    fun testEmbedTextsAsyncHappy() = runBlocking {
        // embed_texts_async: basic async embedding
        val result = Kreuzberg.embedTextsAsync(listOf("First", "Second"), EmbeddingConfig())
        // skipped: field 'embeddings' not available on result type
    }

    @Test
    fun testEmbedTextsAsyncPresetSwitch() = runBlocking {
        // embed_texts_async: preset override
        val config = MAPPER.readValue("{\"model\":{\"name\":\"balanced\",\"type\":\"preset\"}}", EmbeddingConfig::class.java)
        val result = Kreuzberg.embedTextsAsync(listOf("Text"), config)
    }

}
