tests/testthat/test-m-backend-submit.R

test_that("Ollama code is covered", {
  local_mocked_bindings(
    chat = function(...) "positive"
  )
  llm_use("ollama", "llama3.2", .silent = TRUE, .force = TRUE)
  expect_equal(
    llm_vec_sentiment("I am happy"),
    "positive"
  )
})

test_that("Ollama code is covered", {
  test_txt <- rep("positive", times = 15)
  local_mocked_bindings(
    m_ollama_tokens = function() 10,
    chat = function(...) "positive"
  )
  llm_use("ollama", "llama3.2", .silent = TRUE, .force = TRUE)
  expect_snapshot(
    llm_vec_sentiment(test_txt)
  )
})

test_that("No cache is saved if turned off", {
  llm_use("simulate_llm", "echo", .silent = TRUE, .force = TRUE, .cache = "")
  expect_equal(
    llm_vec_custom("test text", "nothing new: "),
    "test text"
  )
})

test_that("ellmer code is covered", {
  local_mocked_bindings(
    parallel_chat_text = function(x, y) {
      return(as.character(y))
    }
  )
  llm_use(
    backend = "simulate_llm",
    model = "echo",
    .silent = TRUE,
    .force = TRUE,
    .cache = .mall_test$cache
  )
  ellmer_session <- .env_llm$session
  class(ellmer_session) <- c("mall_ellmer")
  ellmer_session$args[["ellmer_obj"]] <- temp_ellmer_obj()
  test_txt <- rep("test", times = 15)
  expect_equal(
    m_backend_submit(
      backend = ellmer_session,
      x = test_txt,
      prompt = list(list(content = "test"))
    ),
    test_txt
  )
})

test_that("ellmer code is covered with cache turned off", {
  local_mocked_bindings(
    parallel_chat_text = function(x, y) {
      return(as.character(y))
    }
  )
  llm_use(
    backend = "simulate_llm",
    model = "echo",
    .silent = TRUE,
    .force = TRUE,
    .cache = ""
  )
  ellmer_session <- .env_llm$session
  class(ellmer_session) <- c("mall_ellmer")
  ellmer_session$args[["ellmer_obj"]] <- temp_ellmer_obj()
  test_txt <- rep("test", times = 15)
  expect_equal(
    m_backend_submit(
      backend = ellmer_session,
      x = test_txt,
      prompt = list(list(content = "test"))
    ),
    test_txt
  )
  expect_snapshot(
    m_backend_submit(
      backend = ellmer_session,
      x = test_txt,
      prompt = list(list(content = "test")),
      preview = TRUE
    )
  )
})

test_that("ellmer code is covered - part II", {
  withr::with_envvar(
    new = list(OPENAI_API_KEY = "test"),
    {
      m_defaults_reset()
      chat <- ellmer::chat_openai()
      llm_use(chat, .cache = "", .silent = TRUE)
      m_defaults_set(ellmer_obj = temp_ellmer_obj())
      expect_null(m_ellmer_chat("test"))
    }
  )
})

Try the mall package in your browser

Any scripts or data that you put into this service are public.

mall documentation built on Aug. 19, 2025, 1:14 a.m.