Skip to content

Commit

Permalink
Experimenting with testing
Browse files Browse the repository at this point in the history
  • Loading branch information
joshua-mae committed May 29, 2024
1 parent cb69570 commit 11fee9f
Show file tree
Hide file tree
Showing 3 changed files with 54 additions and 10 deletions.
2 changes: 1 addition & 1 deletion index.html
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ <h2>Hello, my name is Josh, and I am currently studying CS at MSU.</h2>
Although, I am interested in learning about new tech stacks and working on a variety of projects.
If you are in need of a software developer, contact me!</p>
</div>
<!-- TODO: Accessibility and Testing -->
<!-- TODO: Accessibility -->
<!-- TODO: Experience page/timeline-->
<!-- TODO: Project showcase and hover over image-->
<script src="script.js"></script>
Expand Down
9 changes: 0 additions & 9 deletions playwright-tests/first_test.py

This file was deleted.

53 changes: 53 additions & 0 deletions playwright-tests/sticky_header.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
import asyncio
from playwright.async_api import async_playwright

async def test_sticky_header(browser_name):
async with async_playwright() as p:
if browser_name == 'chromium':
browser = await p.chromium.launch(headless=False)
elif browser_name == 'firefox':
browser = await p.firefox.launch(headless=False)
elif browser_name == 'webkit':
browser = await p.webkit.launch(headless=False)
else:
raise ValueError("Unsupported browser: " + browser_name)

page = await browser.new_page()

await page.goto('https://joshuamae.com')

header_selector = 'header'

await page.wait_for_selector(header_selector)

initial_bounding_box = await page.evaluate(f'''
() => {{
const header = document.querySelector('{header_selector}');
return header.getBoundingClientRect();
}}
''')

await page.evaluate('window.scrollBy(0, 1000)')
await page.wait_for_timeout(1000)

after_scroll_bounding_box = await page.evaluate(f'''
() => {{
const header = document.querySelector('{header_selector}');
return header.getBoundingClientRect();
}}
''')

is_sticky = initial_bounding_box['top'] == after_scroll_bounding_box['top']
assert is_sticky, f"Header is not sticky in {browser_name}."

print(f"Sticky header test passed in {browser_name}.")

await browser.close()

async def main():
browsers = ['chromium', 'firefox', 'webkit']
for browser in browsers:
await test_sticky_header(browser)

if __name__ == "__main__":
asyncio.run(main())

0 comments on commit 11fee9f

Please sign in to comment.