Nothing
test_that("seasonder_log correctly handles different log levels", {
expect_silent(seasonder_log("This is an info message", "info"))
expect_silent(seasonder_log("This is an error message", "error"))
expect_silent(seasonder_log("This is a fatal message", "fatal"))
# Test that non-standard log levels are not allowed
expect_error(seasonder_log("This is a non-standard message", "non-standard"))
})
test_that("seasonder_log correctly logs messages", {
# Test that the log message is correct for info level
expect_condition(seasonder_log("This is an info message", "info"), "This is an info message")
# Test that the log message is correct for error level
expect_condition(seasonder_log("This is an error message", "error"), "This is an error message")
# Test that the log message is correct for fatal level
expect_condition(seasonder_log("This is a fatal message", "fatal"), "This is a fatal message")
})
# Test 1: Check if the info logs are written correctly
test_that("Info logs are written correctly", {
seasonder_log(level = "info", message = "This is an information")
# Clear the existing log file or create a new one
log_file_path <- tempfile()
write("", log_file_path)
# Call the function
seasonder_logArchiver(log_info_path = log_file_path)
# Read the log file
log_content <- readLines(log_file_path)
# Check if the log file contains the correct content
expect_true(any(grepl("\\[INFO\\].*This is an information", log_content)))
unlink(log_file_path)
})
# Similar tests can be written for "error" and "fatal" levels
# Test 2: Check if the error logs are written correctly
test_that("Error logs are written correctly", {
seasonder_log(level = "error", message = "This is an information")
# Clear the existing log file or create a new one
log_file_path <- tempfile()
write("", log_file_path)
# Call the function
seasonder_logArchiver(log_error_path = log_file_path)
# Read the log file
log_content <- readLines(log_file_path)
# Check if the log file contains the correct content
expect_true(any(grepl("\\[ERROR\\].*This is an information", log_content)))
unlink(log_file_path)
})
# Test 3: Check if the fatal logs are written correctly
test_that("Fatal logs are written correctly", {
seasonder_log(level = "fatal", message = "This is an information")
# Clear the existing log file or create a new one
log_file_path <- tempfile()
write("", log_file_path)
# Call the function
seasonder_logArchiver(log_fatal_path = log_file_path)
# Read the log file
log_content <- readLines(log_file_path)
# Check if the log file contains the correct content
expect_true(any(grepl("\\[FATAL\\].*This is an information", log_content)))
unlink(log_file_path)
})
#### seasonder_the ####
test_that("seasonder_enableLogs sets logs_enabled to TRUE", {
seasonder_disableLogs()
expect_false(seasonder_areLogsEnabled())
seasonder_enableLogs()
expect_true(seasonder_areLogsEnabled())
})
test_that("seasonder_disableLogs sets logs_enabled to FALSE", {
seasonder_enableLogs()
expect_true(seasonder_areLogsEnabled())
seasonder_disableLogs()
expect_false(seasonder_areLogsEnabled())
})
test_that("seasonder_areLogsEnabled returns correct status", {
seasonder_enableLogs()
expect_true(seasonder_areLogsEnabled())
seasonder_disableLogs()
expect_false(seasonder_areLogsEnabled())
})
#### seasonder_logAndMessage ####
describe("seasonder_logAndMessage",{
it("behaves as expected", {
msg_en_mk <- mockthat::mock(TRUE)
log_en_mk <- mockthat::mock(FALSE)
log_mk <- mockthat::mock(NULL)
# Test 1: When messages are enabled but logs are not
mockthat::with_mock(
seasonder_areMessagesEnabled = msg_en_mk,
seasonder_areLogsEnabled = log_en_mk,
seasonder_log = log_mk,
{
msg <- "This is a test message."
suppressMessages(seasonder_logAndMessage(msg))
expect_message(seasonder_logAndMessage(msg), "This is a test message.")
expect_equal(mockthat::mock_n_called(log_mk),0) # Expect no calls to seasonder_log
}
)
msg_en_mk <- mockthat::mock(FALSE)
log_en_mk <- mockthat::mock(TRUE)
log_mk <- mockthat::mock(NULL)
# Test 2: When logs are enabled but messages are not
mockthat::with_mock(
seasonder_areMessagesEnabled = msg_en_mk,
seasonder_areLogsEnabled = log_en_mk,
seasonder_log = log_mk,
{
msg <- "This is a test message."
seasonder_logAndMessage(msg)
expect_equal(mockthat::mock_n_called(log_mk),1) # Expect one call to seasonder_log
expect_no_message(seasonder_logAndMessage(msg))
}
)
msg_en_mk <- mockthat::mock(TRUE)
log_en_mk <- mockthat::mock(TRUE)
log_mk <- mockthat::mock(NULL)
# Test 3: When both messages and logs are enabled
mockthat::with_mock(
seasonder_areMessagesEnabled = msg_en_mk,
seasonder_areLogsEnabled = log_en_mk,
seasonder_log = log_mk,
{
msg <- "This is a test message."
suppressMessages(seasonder_logAndMessage(msg))
expect_equal(mockthat::mock_n_called(log_mk),1) # Expect one call to seasonder_log
expect_message(seasonder_logAndMessage(msg), "This is a test message.")
}
)
msg_en_mk <- mockthat::mock(FALSE)
log_en_mk <- mockthat::mock(FALSE)
log_mk <- mockthat::mock(NULL)
# Test 4: When neither messages nor logs are enabled
mockthat::with_mock(
seasonder_areMessagesEnabled = msg_en_mk,
seasonder_areLogsEnabled = log_en_mk,
seasonder_log = log_mk,
{
msg <- "This is a test message."
seasonder_logAndMessage(msg)
expect_no_message(seasonder_logAndMessage(msg))
expect_equal(mockthat::mock_n_called(log_mk),0) # Expect no calls to seasonder_log
}
)
})
describe("whan calling it inside tryCatch",{
expect_warning(tryCatch(rlang::abort("stop"),error=function(e) seasonder_logAndMessage("An error happened.","error")),"An error happened.")
})
})
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.