library(testit)
assert('dropNULL() works', {
(dropNULL(list()) %==% list())
(dropNULL(list(a = 1, b = NULL)) %==% list(a = 1))
})
assert('upperToDash() works', {
(upperToDash('fontWeight') %==% 'font-weight')
(upperToDash('backgroundColor') %==% 'background-color')
})
assert('captionString() works', {
(captionString('title') %==% '
title')
})
assert('coerceValue() works', {
# integer
(coerceValue(2.1, 1L) %==% 2L)
# numeric
(coerceValue(2L, 1.0) %==% 2.0)
# character
(coerceValue(2.1, 'a') %==% '2.1')
# Date
(coerceValue('2020-01-01', Sys.Date()) %==% as.Date('2020-01-01'))
# POSIXct POSIXlt
(coerceValue('2020-01-01T12:00:00Z', Sys.time()) %==%
as.POSIXct('2020-01-01 12:00:00', tz = 'UTC'))
(coerceValue('2020-01-01T12:00:00Z', as.POSIXlt(Sys.time())) %==%
as.POSIXlt('2020-01-01 12:00:00', tz = 'UTC'))
# factor
(coerceValue('a', factor(levels = c('a', 'b'))) %==% 'a')
(has_warning(out <- coerceValue(c('a', 'c'), factor(levels = c('a', 'b')))))
(out %==% c('a', NA_character_))
# coerceValue() should not throw warings for characters #541
(!has_warning(coerceValue('a', 'b')))
# warn unsupported datatype
(has_warning(coerceValue('b', list(1))))
})
assert('fromJSON() will never try to read from a URL', {
out = try(fromJSON('https://a.b.c'), silent = TRUE)
(grepl('invalid char in json text', as.character(out), fixed = TRUE))
})