tests/testthat/test-compile_dialog.R

test_that("compile_dialog works with valid input", {
  prompt <- c("c: Hello",
              "m: Hi there",
              "a: How can I help you?",
              "s: System message")
  result <- compile_dialog(prompt = prompt)

  expect_equal(result$chatter, "mamba")
  expect_equal(result$dialog, data.frame(
    role = c("user", "user", "assistant", "system"),
    content = c(" Hello", " Hi there", " How can I help you?", " System message")
  ))
})

test_that("compile_dialog ignores text before the first marker", {
  prompt <- c("Some text", "c: Hello", "m: Hi there")
  result <- compile_dialog(prompt = prompt)

  expect_equal(result$chatter, "mamba")
  expect_equal(result$dialog, data.frame(
    role = c("user", "user"),
    content = c(" Hello", " Hi there")
  ))
})

test_that("compile_dialog handles no new prompt after the last answer", {
  prompt <- c("c: Hello",
              "m: Hi there",
              "a: How can I help you?",
              "a: Another answer")

  expect_message({
    result <- compile_dialog(prompt = prompt)
  })

  expect_equal(result$chatter, "mamba")
  expect_equal(result$dialog, data.frame(
    role = c("user", "user"),
    content = c(" Hello", " Hi there")
  ))
})

test_that("compile_dialog stops with malformed request", {
  prompt <- c("Some text", "Some more text")
  expect_error(compile_dialog(prompt = prompt), "Malformed request")
})

test_that("compile_dialog handles mixed markers correctly", {
  prompt <- c("c: Hello",
              "s: System message",
              "m: Hi there",
              "a: How can I help you?")

  expect_message({
    result <- compile_dialog(prompt = prompt)
  })

  expect_equal(result$chatter, "mamba")
  expect_equal(result$dialog, data.frame(
    role = c("user", "system", "user"),
    content = c(" Hello", " System message", " Hi there")
  ))
})

test_that("compile_dialog handles empty input", {
  prompt <- c()
  expect_error(compile_dialog(prompt = prompt), "Malformed request")
})

test_that("compile_dialog handles single marker", {
  prompt <- c("c: Hello")
  result <- compile_dialog(prompt = prompt)

  expect_equal(result$chatter, "codestral")
  expect_equal(result$dialog, data.frame(role = "user", content = " Hello"))
})

Try the codestral package in your browser

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

codestral documentation built on June 8, 2025, 10:53 a.m.