Skip to content

Commit fd5bdc5

Browse files
committed
Update static rendering tests for distros that build V8 with full ICU support
1 parent 9ff1158 commit fd5bdc5

2 files changed

Lines changed: 20 additions & 3 deletions

File tree

tests/testthat/_snaps/reactable.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@
5151

5252
---
5353

54-
"<div class=\"reactable html-widget html-fill-item\" data-react-ssr id=\"stable-id-formatting-intl-polyfills\" style=\"width:auto;height:auto;\"><div class=\"Reactable ReactTable\"><div class=\"rt-table\" role=\"table\"><div class=\"rt-thead\" role=\"rowgroup\" style=\"min-width:900px\"><div class=\"rt-tr rt-tr-header\" role=\"row\" style=\"flex:1 0 auto;min-width:900px\"><div class=\"rt-th rt-align-left\" role=\"columnheader\" style=\"position:relative;flex:100 0 auto;min-width:100px;width:100px\" aria-label=\"Sort str\" aria-sort=\"none\" tabindex=\"0\" data-sort-hint=\"ascending\"><div class=\"rt-th-inner\"><div class=\"rt-sort-header\"><div class=\"rt-text-content\">str<\/div><span class=\"rt-sort-right\" aria-hidden=\"true\"><\/span><\/div><\/div><\/div><div class=\"rt-th rt-align-right\" role=\"columnheader\" style=\"position:relative;flex:100 0 auto;min-width:100px;width:100px\" aria-label=\"Sort pct\" aria-sort=\"none\" tabindex=\"0\" data-sort-hint=\"ascending\"><div class=\"rt-th-inner\"><div class=\"rt-sort-header\"><span class=\"rt-sort-left\" aria-hidden=\"true\"><\/span><div class=\"rt-text-content\">pct<\/div><\/div><\/div><\/div><div class=\"rt-th rt-align-right\" role=\"columnheader\" style=\"position:relative;flex:100 0 auto;min-width:100px;width:100px\" aria-label=\"Sort pct_digits\" aria-sort=\"none\" tabindex=\"0\" data-sort-hint=\"ascending\"><div class=\"rt-th-inner\"><div class=\"rt-sort-header\"><span class=\"rt-sort-left\" aria-hidden=\"true\"><\/span><div class=\"rt-text-content\">pct_digits<\/div><\/div><\/div><\/div><div class=\"rt-th rt-align-right\" role=\"columnheader\" style=\"position:relative;flex:100 0 auto;min-width:100px;width:100px\" aria-label=\"Sort currency_USD\" aria-sort=\"none\" tabindex=\"0\" data-sort-hint=\"ascending\"><div class=\"rt-th-inner\"><div class=\"rt-sort-header\"><span class=\"rt-sort-left\" aria-hidden=\"true\"><\/span><div class=\"rt-text-content\">currency_USD<\/div><\/div><\/div><\/div><div class=\"rt-th rt-align-right\" role=\"columnheader\" style=\"position:relative;flex:100 0 auto;min-width:100px;width:100px\" aria-label=\"Sort currency_EUR\" aria-sort=\"none\" tabindex=\"0\" data-sort-hint=\"ascending\"><div class=\"rt-th-inner\"><div class=\"rt-sort-header\"><span class=\"rt-sort-left\" aria-hidden=\"true\"><\/span><div class=\"rt-text-content\">currency_EUR<\/div><\/div><\/div><\/div><div class=\"rt-th rt-align-left\" role=\"columnheader\" style=\"position:relative;flex:100 0 auto;min-width:100px;width:100px\" aria-label=\"Sort date\" aria-sort=\"none\" tabindex=\"0\" data-sort-hint=\"ascending\"><div class=\"rt-th-inner\"><div class=\"rt-sort-header\"><div class=\"rt-text-content\">date<\/div><span class=\"rt-sort-right\" aria-hidden=\"true\"><\/span><\/div><\/div><\/div><div class=\"rt-th rt-align-left\" role=\"columnheader\" style=\"position:relative;flex:100 0 auto;min-width:100px;width:100px\" aria-label=\"Sort time\" aria-sort=\"none\" tabindex=\"0\" data-sort-hint=\"ascending\"><div class=\"rt-th-inner\"><div class=\"rt-sort-header\"><div class=\"rt-text-content\">time<\/div><span class=\"rt-sort-right\" aria-hidden=\"true\"><\/span><\/div><\/div><\/div><div class=\"rt-th rt-align-right\" role=\"columnheader\" style=\"position:relative;flex:100 0 auto;min-width:100px;width:100px\" aria-label=\"Sort num\" aria-sort=\"none\" tabindex=\"0\" data-sort-hint=\"ascending\"><div class=\"rt-th-inner\"><div class=\"rt-sort-header\"><span class=\"rt-sort-left\" aria-hidden=\"true\"><\/span><div class=\"rt-text-content\">num<\/div><\/div><\/div><\/div><div class=\"rt-th rt-align-right\" role=\"columnheader\" style=\"position:relative;flex:100 0 auto;min-width:100px;width:100px\" aria-label=\"Sort locale_hi_IN\" aria-sort=\"none\" tabindex=\"0\" data-sort-hint=\"ascending\"><div class=\"rt-th-inner\"><div class=\"rt-sort-header\"><span class=\"rt-sort-left\" aria-hidden=\"true\"><\/span><div class=\"rt-text-content\">locale_hi_IN<\/div><\/div><\/div><\/div><\/div><\/div><div class=\"rt-tbody\" role=\"rowgroup\" style=\"min-width:900px\"><div class=\"rt-tr-group\"><div class=\"rt-tr\" role=\"row\" style=\"flex:1 0 auto;min-width:900px\"><div class=\"rt-td rt-align-left\" role=\"cell\" style=\"flex:100 0 auto;min-width:100px;width:100px\"><div class=\"rt-td-inner\">pre_str_suffix<\/div><\/div><div class=\"rt-td rt-align-right\" role=\"cell\" style=\"flex:100 0 auto;min-width:100px;width:100px\"><div class=\"rt-td-inner\">75%<\/div><\/div><div class=\"rt-td rt-align-right\" role=\"cell\" style=\"flex:100 0 auto;min-width:100px;width:100px\"><div class=\"rt-td-inner\">52.9%<\/div><\/div><div class=\"rt-td rt-align-right\" role=\"cell\" style=\"flex:100 0 auto;min-width:100px;width:100px\"><div class=\"rt-td-inner\">$10.00<\/div><\/div><div class=\"rt-td rt-align-right\" role=\"cell\" style=\"flex:100 0 auto;min-width:100px;width:100px\"><div class=\"rt-td-inner\">€11.12<\/div><\/div><div class=\"rt-td rt-align-left\" role=\"cell\" style=\"flex:100 0 auto;min-width:100px;width:100px\"><div class=\"rt-td-inner\">_date_replaced_date_<\/div><\/div><div class=\"rt-td rt-align-left\" role=\"cell\" style=\"flex:100 0 auto;min-width:100px;width:100px\"><div class=\"rt-td-inner\">_time_replaced_time_<\/div><\/div><div class=\"rt-td rt-align-right\" role=\"cell\" style=\"flex:100 0 auto;min-width:100px;width:100px\"><div class=\"rt-td-inner\">1,234.1<\/div><\/div><div class=\"rt-td rt-align-right\" role=\"cell\" style=\"flex:100 0 auto;min-width:100px;width:100px\"><div class=\"rt-td-inner\">₹1,234,567.40<\/div><\/div><\/div><\/div><div class=\"rt-no-data\" aria-live=\"assertive\"><\/div><\/div><\/div><\/div><\/div>\n<script type=\"application/json\" data-for=\"stable-id-formatting-intl-polyfills\">{\"x\":{\"tag\":{\"name\":\"Reactable\",\"attribs\":{\"data\":{\"str\":[\"str\"],\"pct\":[0.75],\"pct_digits\":[0.529],\"currency_USD\":[10],\"currency_EUR\":[11.123],\"date\":[\"2019-05-06T03:22:15Z\"],\"time\":[\"2019-05-06T03:22:15Z\"],\"num\":[1234.1234],\"locale_hi_IN\":[1234567.4]},\"columns\":[{\"id\":\"str\",\"name\":\"str\",\"type\":\"character\",\"format\":{\"cell\":{\"prefix\":\"pre_\",\"suffix\":\"_suffix\"},\"aggregated\":{\"prefix\":\"pre_\",\"suffix\":\"_suffix\"}}},{\"id\":\"pct\",\"name\":\"pct\",\"type\":\"numeric\",\"format\":{\"cell\":{\"percent\":true},\"aggregated\":{\"percent\":true}}},{\"id\":\"pct_digits\",\"name\":\"pct_digits\",\"type\":\"numeric\",\"format\":{\"cell\":{\"percent\":true},\"aggregated\":{\"percent\":true}}},{\"id\":\"currency_USD\",\"name\":\"currency_USD\",\"type\":\"numeric\",\"format\":{\"cell\":{\"currency\":\"USD\"},\"aggregated\":{\"currency\":\"USD\"}}},{\"id\":\"currency_EUR\",\"name\":\"currency_EUR\",\"type\":\"numeric\",\"format\":{\"cell\":{\"currency\":\"EUR\"},\"aggregated\":{\"currency\":\"EUR\"}}},{\"id\":\"date\",\"name\":\"date\",\"type\":\"Date\",\"format\":{\"cell\":{\"prefix\":\"_date_\",\"suffix\":\"_date_\",\"datetime\":true},\"aggregated\":{\"prefix\":\"_date_\",\"suffix\":\"_date_\",\"datetime\":true}}},{\"id\":\"time\",\"name\":\"time\",\"type\":\"Date\",\"format\":{\"cell\":{\"prefix\":\"_time_\",\"suffix\":\"_time_\",\"time\":true},\"aggregated\":{\"prefix\":\"_time_\",\"suffix\":\"_time_\",\"time\":true}}},{\"id\":\"num\",\"name\":\"num\",\"type\":\"numeric\",\"format\":{\"cell\":{\"digits\":1,\"separators\":true},\"aggregated\":{\"digits\":1,\"separators\":true}}},{\"id\":\"locale_hi_IN\",\"name\":\"locale_hi_IN\",\"type\":\"numeric\",\"format\":{\"cell\":{\"separators\":true,\"currency\":\"INR\",\"locales\":\"hi-IN\"},\"aggregated\":{\"separators\":true,\"currency\":\"INR\",\"locales\":\"hi-IN\"}}}],\"elementId\":\"stable-id-formatting-intl-polyfills\",\"dataKey\":\"0519a440a28d31e079942abf20805ab1\"},\"children\":[]},\"class\":\"reactR_markup\"},\"evals\":[],\"jsHooks\":[]}<\/script>"
54+
"<div class=\"reactable html-widget html-fill-item\" data-react-ssr id=\"stable-id-formatting-intl-polyfills\" style=\"width:auto;height:auto;\"><div class=\"Reactable ReactTable\"><div class=\"rt-table\" role=\"table\"><div class=\"rt-thead\" role=\"rowgroup\" style=\"min-width:900px\"><div class=\"rt-tr rt-tr-header\" role=\"row\" style=\"flex:1 0 auto;min-width:900px\"><div class=\"rt-th rt-align-left\" role=\"columnheader\" style=\"position:relative;flex:100 0 auto;min-width:100px;width:100px\" aria-label=\"Sort str\" aria-sort=\"none\" tabindex=\"0\" data-sort-hint=\"ascending\"><div class=\"rt-th-inner\"><div class=\"rt-sort-header\"><div class=\"rt-text-content\">str<\/div><span class=\"rt-sort-right\" aria-hidden=\"true\"><\/span><\/div><\/div><\/div><div class=\"rt-th rt-align-right\" role=\"columnheader\" style=\"position:relative;flex:100 0 auto;min-width:100px;width:100px\" aria-label=\"Sort pct\" aria-sort=\"none\" tabindex=\"0\" data-sort-hint=\"ascending\"><div class=\"rt-th-inner\"><div class=\"rt-sort-header\"><span class=\"rt-sort-left\" aria-hidden=\"true\"><\/span><div class=\"rt-text-content\">pct<\/div><\/div><\/div><\/div><div class=\"rt-th rt-align-right\" role=\"columnheader\" style=\"position:relative;flex:100 0 auto;min-width:100px;width:100px\" aria-label=\"Sort pct_digits\" aria-sort=\"none\" tabindex=\"0\" data-sort-hint=\"ascending\"><div class=\"rt-th-inner\"><div class=\"rt-sort-header\"><span class=\"rt-sort-left\" aria-hidden=\"true\"><\/span><div class=\"rt-text-content\">pct_digits<\/div><\/div><\/div><\/div><div class=\"rt-th rt-align-right\" role=\"columnheader\" style=\"position:relative;flex:100 0 auto;min-width:100px;width:100px\" aria-label=\"Sort currency_USD\" aria-sort=\"none\" tabindex=\"0\" data-sort-hint=\"ascending\"><div class=\"rt-th-inner\"><div class=\"rt-sort-header\"><span class=\"rt-sort-left\" aria-hidden=\"true\"><\/span><div class=\"rt-text-content\">currency_USD<\/div><\/div><\/div><\/div><div class=\"rt-th rt-align-right\" role=\"columnheader\" style=\"position:relative;flex:100 0 auto;min-width:100px;width:100px\" aria-label=\"Sort currency_EUR\" aria-sort=\"none\" tabindex=\"0\" data-sort-hint=\"ascending\"><div class=\"rt-th-inner\"><div class=\"rt-sort-header\"><span class=\"rt-sort-left\" aria-hidden=\"true\"><\/span><div class=\"rt-text-content\">currency_EUR<\/div><\/div><\/div><\/div><div class=\"rt-th rt-align-left\" role=\"columnheader\" style=\"position:relative;flex:100 0 auto;min-width:100px;width:100px\" aria-label=\"Sort date\" aria-sort=\"none\" tabindex=\"0\" data-sort-hint=\"ascending\"><div class=\"rt-th-inner\"><div class=\"rt-sort-header\"><div class=\"rt-text-content\">date<\/div><span class=\"rt-sort-right\" aria-hidden=\"true\"><\/span><\/div><\/div><\/div><div class=\"rt-th rt-align-left\" role=\"columnheader\" style=\"position:relative;flex:100 0 auto;min-width:100px;width:100px\" aria-label=\"Sort time\" aria-sort=\"none\" tabindex=\"0\" data-sort-hint=\"ascending\"><div class=\"rt-th-inner\"><div class=\"rt-sort-header\"><div class=\"rt-text-content\">time<\/div><span class=\"rt-sort-right\" aria-hidden=\"true\"><\/span><\/div><\/div><\/div><div class=\"rt-th rt-align-right\" role=\"columnheader\" style=\"position:relative;flex:100 0 auto;min-width:100px;width:100px\" aria-label=\"Sort num\" aria-sort=\"none\" tabindex=\"0\" data-sort-hint=\"ascending\"><div class=\"rt-th-inner\"><div class=\"rt-sort-header\"><span class=\"rt-sort-left\" aria-hidden=\"true\"><\/span><div class=\"rt-text-content\">num<\/div><\/div><\/div><\/div><div class=\"rt-th rt-align-right\" role=\"columnheader\" style=\"position:relative;flex:100 0 auto;min-width:100px;width:100px\" aria-label=\"Sort locale_hi_IN\" aria-sort=\"none\" tabindex=\"0\" data-sort-hint=\"ascending\"><div class=\"rt-th-inner\"><div class=\"rt-sort-header\"><span class=\"rt-sort-left\" aria-hidden=\"true\"><\/span><div class=\"rt-text-content\">locale_hi_IN<\/div><\/div><\/div><\/div><\/div><\/div><div class=\"rt-tbody\" role=\"rowgroup\" style=\"min-width:900px\"><div class=\"rt-tr-group\"><div class=\"rt-tr\" role=\"row\" style=\"flex:1 0 auto;min-width:900px\"><div class=\"rt-td rt-align-left\" role=\"cell\" style=\"flex:100 0 auto;min-width:100px;width:100px\"><div class=\"rt-td-inner\">pre_str_suffix<\/div><\/div><div class=\"rt-td rt-align-right\" role=\"cell\" style=\"flex:100 0 auto;min-width:100px;width:100px\"><div class=\"rt-td-inner\">75%<\/div><\/div><div class=\"rt-td rt-align-right\" role=\"cell\" style=\"flex:100 0 auto;min-width:100px;width:100px\"><div class=\"rt-td-inner\">52.9%<\/div><\/div><div class=\"rt-td rt-align-right\" role=\"cell\" style=\"flex:100 0 auto;min-width:100px;width:100px\"><div class=\"rt-td-inner\">$10.00<\/div><\/div><div class=\"rt-td rt-align-right\" role=\"cell\" style=\"flex:100 0 auto;min-width:100px;width:100px\"><div class=\"rt-td-inner\">€11.12<\/div><\/div><div class=\"rt-td rt-align-left\" role=\"cell\" style=\"flex:100 0 auto;min-width:100px;width:100px\"><div class=\"rt-td-inner\">_date_replaced_date_<\/div><\/div><div class=\"rt-td rt-align-left\" role=\"cell\" style=\"flex:100 0 auto;min-width:100px;width:100px\"><div class=\"rt-td-inner\">_time_replaced_time_<\/div><\/div><div class=\"rt-td rt-align-right\" role=\"cell\" style=\"flex:100 0 auto;min-width:100px;width:100px\"><div class=\"rt-td-inner\">1,234.1<\/div><\/div><div class=\"rt-td rt-align-right\" role=\"cell\" style=\"flex:100 0 auto;min-width:100px;width:100px\"><div class=\"rt-td-inner\">replaced<\/div><\/div><\/div><\/div><div class=\"rt-no-data\" aria-live=\"assertive\"><\/div><\/div><\/div><\/div><\/div>\n<script type=\"application/json\" data-for=\"stable-id-formatting-intl-polyfills\">{\"x\":{\"tag\":{\"name\":\"Reactable\",\"attribs\":{\"data\":{\"str\":[\"str\"],\"pct\":[0.75],\"pct_digits\":[0.529],\"currency_USD\":[10],\"currency_EUR\":[11.123],\"date\":[\"2019-05-06T03:22:15Z\"],\"time\":[\"2019-05-06T03:22:15Z\"],\"num\":[1234.1234],\"locale_hi_IN\":[1234567.4]},\"columns\":[{\"id\":\"str\",\"name\":\"str\",\"type\":\"character\",\"format\":{\"cell\":{\"prefix\":\"pre_\",\"suffix\":\"_suffix\"},\"aggregated\":{\"prefix\":\"pre_\",\"suffix\":\"_suffix\"}}},{\"id\":\"pct\",\"name\":\"pct\",\"type\":\"numeric\",\"format\":{\"cell\":{\"percent\":true},\"aggregated\":{\"percent\":true}}},{\"id\":\"pct_digits\",\"name\":\"pct_digits\",\"type\":\"numeric\",\"format\":{\"cell\":{\"percent\":true},\"aggregated\":{\"percent\":true}}},{\"id\":\"currency_USD\",\"name\":\"currency_USD\",\"type\":\"numeric\",\"format\":{\"cell\":{\"currency\":\"USD\"},\"aggregated\":{\"currency\":\"USD\"}}},{\"id\":\"currency_EUR\",\"name\":\"currency_EUR\",\"type\":\"numeric\",\"format\":{\"cell\":{\"currency\":\"EUR\"},\"aggregated\":{\"currency\":\"EUR\"}}},{\"id\":\"date\",\"name\":\"date\",\"type\":\"Date\",\"format\":{\"cell\":{\"prefix\":\"_date_\",\"suffix\":\"_date_\",\"datetime\":true},\"aggregated\":{\"prefix\":\"_date_\",\"suffix\":\"_date_\",\"datetime\":true}}},{\"id\":\"time\",\"name\":\"time\",\"type\":\"Date\",\"format\":{\"cell\":{\"prefix\":\"_time_\",\"suffix\":\"_time_\",\"time\":true},\"aggregated\":{\"prefix\":\"_time_\",\"suffix\":\"_time_\",\"time\":true}}},{\"id\":\"num\",\"name\":\"num\",\"type\":\"numeric\",\"format\":{\"cell\":{\"digits\":1,\"separators\":true},\"aggregated\":{\"digits\":1,\"separators\":true}}},{\"id\":\"locale_hi_IN\",\"name\":\"locale_hi_IN\",\"type\":\"numeric\",\"format\":{\"cell\":{\"separators\":true,\"currency\":\"INR\",\"locales\":\"hi-IN\"},\"aggregated\":{\"separators\":true,\"currency\":\"INR\",\"locales\":\"hi-IN\"}}}],\"elementId\":\"stable-id-formatting-intl-polyfills\",\"dataKey\":\"0519a440a28d31e079942abf20805ab1\"},\"children\":[]},\"class\":\"reactR_markup\"},\"evals\":[],\"jsHooks\":[]}<\/script>"
5555

5656
---
5757

tests/testthat/test-reactable.R

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1373,6 +1373,16 @@ test_that("static rendering", {
13731373
skip("V8 was built against a version of libv8 without i18n support")
13741374
})
13751375

1376+
# Some distros like Debian build V8 with full ICU / i18n support, rather than the typical minimal ICU that includes
1377+
# the en locale only. In this case, Intl will exist and locales besides en will be supported. We need to know whether
1378+
# full ICU support is available for testing on platforms like CRAN's Debian machines.
1379+
v8_has_full_icu_support <- tryCatch({
1380+
V8::new_context()$eval("Intl")
1381+
TRUE
1382+
}, error = function(e) {
1383+
FALSE
1384+
})
1385+
13761386
data <- data.frame(
13771387
x = c(1, 2),
13781388
y = c("a", "column-y-cell"),
@@ -1497,7 +1507,7 @@ test_that("static rendering", {
14971507
date = colDef(format = colFormat(datetime = TRUE, prefix = "_date_", suffix = "_date_")),
14981508
time = colDef(format = colFormat(time = TRUE, prefix = "_time_", suffix = "_time_")),
14991509
num = colDef(format = colFormat(digits = 1, separators = TRUE)),
1500-
# Current limitation: locales other than "en" aren't supported for now
1510+
# Current limitation: in most V8 builds, locales other than "en" aren't supported for now
15011511
locale_hi_IN = colDef(format = colFormat(locales = "hi-IN", currency = "INR", separators = TRUE))
15021512
),
15031513
static = TRUE,
@@ -1511,7 +1521,14 @@ test_that("static rendering", {
15111521
expect_match(html, ">$10.00<", fixed = TRUE)
15121522
expect_match(html, ">€11.12<", fixed = TRUE)
15131523
expect_match(html, ">1,234.1<", fixed = TRUE)
1514-
expect_match(html, ">₹1,234,567.40<", fixed = TRUE)
1524+
if (v8_has_full_icu_support) {
1525+
expect_match(html, ">₹12,34,567.40<", fixed = TRUE)
1526+
html <- sub(">₹12,34,567.40<", ">replaced<", html)
1527+
} else {
1528+
# en locale fallback
1529+
expect_match(html, ">₹1,234,567.40<", fixed = TRUE)
1530+
html <- sub(">₹1,234,567.40<", ">replaced<", html)
1531+
}
15151532
# Date/time formatting depends on the local timezone, which can't easily be controlled in tests
15161533
expect_no_match(html, "_date_2019-05-06T03:22:15Z_date_", fixed = TRUE)
15171534
html <- sub(">_date_.+_date_<", ">_date_replaced_date_<", html)

0 commit comments

Comments
 (0)