Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

117 lines
3.1KB

  1. context("test-components")
  2. # Messages ----------------------------------------------------------------
  3. msg_with_title_delete <- '
  4. <article class="message">
  5. <div class="message-header">
  6. Hello World
  7. <button class="delete" aria-label="delete"></button>
  8. </div>
  9. <div class="message-body">
  10. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
  11. </div>
  12. </article>'
  13. msg_with_title_delete_color <- '
  14. <article class="message is-{color}">
  15. <div class="message-header">
  16. Colors Test
  17. <button class="delete" aria-label="delete"></button>
  18. </div>
  19. <div class="message-body">
  20. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
  21. </div>
  22. </article>'
  23. msg_body_only <- '
  24. <article class="message">
  25. <div class="message-body">
  26. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
  27. </div>
  28. </article>'
  29. msg_with_size <- '
  30. <article class="message {size}">
  31. <div class="message-header">
  32. Size Test
  33. <button class="delete {size}" aria-label="delete"></button>
  34. </div>
  35. <div class="message-body">
  36. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
  37. </div>
  38. </article>'
  39. test_that("message full with title and delete button", {
  40. expect_html_chr(
  41. bulma_message("Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
  42. header = "Hello World", delete = TRUE),
  43. msg_with_title_delete
  44. )
  45. })
  46. test_that("message full with title no delete button", {
  47. expect_html_chr(
  48. bulma_message("Lorem ipsum dolor sit amet, consectetur adipiscing elit.", delete = TRUE),
  49. sub("Hello World", "<p></p>", msg_with_title_delete, perl = TRUE)
  50. )
  51. })
  52. test_that("message errors with bad header", {
  53. expect_error(bulma_message("Test", header = TRUE))
  54. })
  55. test_that("message with colors", {
  56. for (color in bulma_constants("colors")[1:10]) {
  57. expect_html_chr(
  58. bulma_message("Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
  59. header = "Colors Test", delete = TRUE, color = color),
  60. glue::glue(msg_with_title_delete_color)
  61. )
  62. }
  63. })
  64. test_that("message body only", {
  65. expect_html_chr(
  66. bulma_message("Lorem ipsum dolor sit amet, consectetur adipiscing elit."),
  67. msg_body_only
  68. )
  69. })
  70. test_that("message with size", {
  71. for (size in c("small", "medium", "large")) {
  72. expect_html_chr(
  73. bulma_message("Lorem ipsum dolor sit amet, consectetur adipiscing elit.",
  74. header = "Size Test", delete = TRUE, size = size),
  75. glue::glue(msg_with_size, size = paste0("is-", size))
  76. )
  77. }
  78. })
  79. test_that("message with maximum width", {
  80. # Centered by default
  81. expect_html_chr(
  82. bulma_message("Lorem ipsum dolor sit amet.", width = "half"),
  83. '<div class="columns is-tablet is-multiline is-centered">
  84. <div class="column is-half">
  85. <article class="message">
  86. <div class="message-body">Lorem ipsum dolor sit amet.</div>
  87. </article>
  88. </div>
  89. </div>'
  90. )
  91. # Not centered
  92. expect_html_chr(
  93. bulma_message("Lorem ipsum dolor sit amet.", width = "half", centered = FALSE),
  94. '<div class="column is-half">
  95. <article class="message">
  96. <div class="message-body">Lorem ipsum dolor sit amet.</div>
  97. </article>
  98. </div>'
  99. )
  100. })