test_spoiler_bbcode.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. from ..parser import parse
  2. def test_single_line_spoiler(request_mock, user, snapshot):
  3. text = "[spoiler]Daenerys and Jon live happily ever after![/spoiler]"
  4. result = parse(text, request_mock, user)
  5. snapshot.assert_match(result["parsed_text"])
  6. def test_spoiler_can_contain_bbcode_or_markdown(request_mock, user, snapshot):
  7. text = "[spoiler]Sit **amet** [u]elit[/u].[/spoiler]"
  8. result = parse(text, request_mock, user)
  9. snapshot.assert_match(result["parsed_text"])
  10. def test_multi_line_spoiler(request_mock, user, snapshot):
  11. text = """
  12. [spoiler]
  13. Sit amet elit.
  14. Another line.
  15. [/spoiler]
  16. """
  17. result = parse(text, request_mock, user)
  18. snapshot.assert_match(result["parsed_text"])
  19. def test_spoilers_can_be_nested(request_mock, user, snapshot):
  20. text = """
  21. [spoiler]
  22. Sit amet elit.
  23. [spoiler]Nested spoiler[/spoiler]
  24. [/spoiler]
  25. """
  26. result = parse(text, request_mock, user)
  27. snapshot.assert_match(result["parsed_text"])
  28. # Regression test for weird edge case in which hr gets moved outside of spoiler
  29. def test_spoilers_can_contain_hr_markdown(request_mock, user, snapshot):
  30. text = """
  31. [spoiler]
  32. Sit amet elit.
  33. - - - - -
  34. Another line.
  35. [/spoiler]
  36. """
  37. result = parse(text, request_mock, user)
  38. snapshot.assert_match(result["parsed_text"])