commonTest.suite.TestSuiteSettings.kt Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of algoliasearch-client-kotlin-metadata Show documentation
Show all versions of algoliasearch-client-kotlin-metadata Show documentation
Algolia is a powerful search-as-a-service solution, made easy to use with API clients, UI libraries,and pre-built integrations. Algolia API Client for Kotlin lets you easily use the Algolia SearchREST API from your JVM project, such as Android or backend implementations.
The newest version!
package suite
import clientAdmin1
import com.algolia.search.model.search.IgnorePlurals
import com.algolia.search.model.search.Language
import com.algolia.search.model.search.RemoveStopWords
import com.algolia.search.model.search.TypoTolerance
import com.algolia.search.model.settings.Distinct
import com.algolia.search.model.settings.Settings
import com.algolia.search.model.task.TaskStatus
import kotlinx.serialization.json.buildJsonObject
import kotlinx.serialization.json.put
import runBlocking
import shouldEqual
import kotlin.test.Test
internal class TestSuiteSettings {
private val suffix = "settings"
private val indexName = testSuiteIndexName(suffix)
private val index = clientAdmin1.initIndex(indexName)
@Test
fun test() {
runBlocking {
val settings = load(Settings.serializer(), "settings.json")
index.apply {
saveObject(buildJsonObject { put("value", 42) })
setSettings(settings).wait() shouldEqual TaskStatus.Published
getSettings() shouldEqual settings
val copy = settings.copy(
typoTolerance = TypoTolerance.Min,
ignorePlurals = IgnorePlurals.QueryLanguages(Language.English, Language.French),
removeStopWords = RemoveStopWords.QueryLanguages(Language.English, Language.French),
distinct = Distinct(1),
userData = buildJsonObject { put("customUserData", 42.0) }
)
setSettings(copy).wait() shouldEqual TaskStatus.Published
getSettings() shouldEqual copy.copy(
userData = buildJsonObject {
put(
"customUserData",
42
)
} // Round value expected to deserialize as int
)
}
}
}
}