<!-- snippet:syntax-only -->

```r title="R"
library(kreuzberg)
library(testthat)

uppercase_processor <- function(result) {
  result$content <- toupper(result$content)
  return(result)
}

test_that("uppercase processor uppercases content", {
  fake_result <- list(
    content = "hello world",
    mime_type = "text/plain",
    metadata = list()
  )
  processed <- uppercase_processor(fake_result)
  expect_equal(processed$content, "HELLO WORLD")
})

test_that("post processor registers and runs", {
  register_post_processor("uppercase", uppercase_processor)
  on.exit(unregister_post_processor("uppercase"), add = TRUE)

  config <- list(postprocessor = list(enabled = TRUE))
  json <- extract_bytes_sync(
    charToRaw("hello world"), "text/plain", config
  )
  result <- jsonlite::fromJSON(json, simplifyVector = FALSE)

  expect_match(result$content, "HELLO WORLD", fixed = TRUE)
})
```
