diff --git a/tests/test_html_merge.py b/tests/test_html_merge.py
new file mode 100644
index 0000000..b453e8b
--- /dev/null
+++ b/tests/test_html_merge.py
@@ -0,0 +1,60 @@
+# tmp_path fixture:
+# https://docs.pytest.org/en/6.2.x/tmpdir.html
+
+import os
+from pathlib import Path
+
+import pytest
+from icecream import ic # type: ignore
+from playwright.sync_api import BrowserContext, expect
+
+from pytest_abra import BaseUrl
+from pytest_abra.html_helper import merge_html_reports
+
+
+@pytest.fixture(scope="session")
+def session_tmp_path(tmp_path_factory: pytest.TempPathFactory) -> Path:
+ return tmp_path_factory.mktemp("html_test")
+
+
+def test_merge_html(session_tmp_path: Path):
+ """combines all generated pytest html reports into one"""
+
+ in_dir_path = Path(__file__).parent / "assets" / "html_merge"
+ in_dir_path = in_dir_path.resolve()
+ ic(in_dir_path)
+
+ out_file_path = session_tmp_path / "test.html"
+ out_assets_dir = session_tmp_path / "assets"
+
+ merge_html_reports(in_dir_path.as_posix(), out_file_path.as_posix(), "combined.html")
+
+ assert out_file_path.is_file()
+ assert out_assets_dir.is_dir()
+ assert next(out_assets_dir.glob("*"))
+
+
+def test_check_result_with_playwright(session_tmp_path, context: BrowserContext):
+ html_file = session_tmp_path / "test.html"
+ file_url = BaseUrl(netloc=html_file.as_posix(), scheme="file").get()
+ page = context.new_page()
+ page.goto(file_url)
+
+ # check if combined is correct
+ expect(page.get_by_text("2 Passed,")).to_be_visible()
+ expect(page.get_by_text("2 Failed,")).to_be_visible()
+ expect(page.get_by_text("tests ran in 12.946 seconds")).to_be_visible()
+
+ # check if heading is correct
+ expect(page.get_by_role("heading", name="combined.html")).to_be_visible()
+
+ # check if traceback is included
+ expect(page.get_by_text("E AssertionError: One or more")).to_be_visible()
+
+ # check if asset works
+ with page.expect_popup() as page1_info:
+ page.get_by_role("link", name="Authentik Blueprint Status").click()
+ page1 = page1_info.value
+
+ # see if content of txt file is correct
+ expect(page1.get_by_text("failed")).to_be_visible()