88""Yb 888888    db    8888b.  Yb  dP   888888  dP"Yb    888888 888888 .dP"Y8 888888 
88__dP 88__     dPYb    8I  Yb  YbdP      88   dP   Yb     88   88__   `Ybo."   88   
88"Yb  88""    dP__Yb   8I  dY   8P       88   Yb   dP     88   88""   o.`Y8b   88   
88  Yb 888888 dP""""Yb 8888Y"   dP        88    YbodP      88   888888 8bodP'   88                                                                                                  
            
Software Quality Assurance ★ Test Automation ★ Manual Testing
Current Date & Time (Pacific) ★

------------------------------------------------------------------------
About ℹ️
Welcome to my testing ecosystem! This page serves as a space for
exploration, experimentation, and continuous learning. Each update
reflects the progression of an iterative approach. There is a lot of
hands-on tinkering going on in here. Things are constantly evolving
and improving with each new experiment and discovery. Learn more
about my testing skills and QA philosophy.

Curious about the design choice of this page? It was inspired by
and a nod to the charm of 90s websites. I appreciate the creativity
and individuality that characterized many websites from that era. I
wanted to bring back the simpler times of the internet and add a bit
of nostalgia and handmade style to it. Imagine there is background
midi music 🎵 playing for the full experience.
------------------------------------------------------------------------
Ready to Test (QA) GitHub Profile 👤
https://github.com/readytotest
Down to repo list
------------------------------------------------------------------------
UI Test Automation with Playwright
This project uses Husky, ESLint, Prettier, and lint-staged to enforce code
quality checks on staged files through a pre-commit hook.

-----
Spec: homePage.spec.ts | 📸 look1 | 📸 look2
Highlight: File download and verification
Spec: weatherAlertPage.spec.ts | 🎥 watch
Highlight: Exploring two browser sessions and clipboard operations
Spec: philosophyPage.spec.ts
Highlight: Directly using a page object versus initializing it first
Spec: testingSkillsPage.spec.ts
Highlight: Very simple script with no page objects or helper scripts
-----
Page Object: homePageObject.ts
Page Object: weatherAlertPageObject.ts
Page Object: philosophyPageObject.ts
Using function-based page objects as they are simpler and easier to maintain.
Look in the test-playwright repo pages directory for examples of class-based.
-----
Helper Function 1: verifyTextAndLink.ts
Helper Function 2: getHrefCopyToClipboard.ts
Helper Function 3: readClipboardContent.ts
Helper Function 4: navigation.ts
Helper Function 5: typeTodaysDate.ts
Helper Function 6: getTimeZoneInfo.ts | 📸 look1 | 📸 look2
-----
Test ID Generator: testIdGenerator.ts
Test Data: testData.ts
-----
Feedback Widget Test Run: 📸 look | 🎥 watch
-----
Playwright Config Local: playwright.config.ts
Playwright Config CI: playwright.actions.config.ts
-----
CI/CD
playwright-mysite.yml | Actions workflow | 📸 look1 | 📸 look2
This GitHub Actions YAML file sets up a workflow to run Playwright
in a GitHub Runner environment when a pull request or push occurs.
It checks out two repositories, installs dependencies, starts a local
web server, executes the tests, and uploads the results.
-----
Helpful Tip 💡
The default time zone for GitHub runners is UTC. To prevent issues such as
the date being a day ahead in the runner environment and causing date
assertions to fail, set the time zone of the CI/CD runner environment using a
Marketplace action in your YAML configuration.

------------------------------------------------------------------------
Start Local Server 🏭
Bash: start-server.sh | 📸 look1 | 📸 look2
Node: server.js
------------------------------------------------------------------------
UI Test Automation with Cypress
Note: I haven't used Cypress for a while and have switched to Playwright.
Spec: orangeDemoSmoke.cy.js View run in Mochawesome report 👇
Spec: sauceDemoSmoke.cy.js View run in Cypress Cloud 👇
Spec: sauceDemoLoginOnlyTest.cy.js View run in Cypress Cloud 👇
Spec: lambdaTestDemoRegistration.cy.js | 🎥 watch | 📸 look
Spec: readyToTestSmoke.cy.js | 🎥 watch | 📸 look
Spec: scratchPad.cy.js (experimental) | 🎥 watch | 📸 look
------------------------------------------------------------------------
API Test Automation with Cypress
Spec: catApiTest.cy.js | 📸 look1 | 📸 look2
------------------------------------------------------------------------
Automated Visual Testing with Cypress 🖼️
Spec: checkGitHubPage.cy.js | 📸 image diff| 📸 slider | 📸 mirror
Spec: checkMusicalNoteElement.cy.js | 📸 image diff | 📸 server
------------------------------------------------------------------------
Mochawesome Report 📝
Cypress doesn't have built-in test reports so I used this
Orange demo: sample script results and video
------------------------------------------------------------------------
Cypress Cloud 📊
I set this up primarily to explore parallel test execution,
but there is also test reporting and a centralized dashboard.
Sauce demo: two sample scripts ran in parallel results and video
------------------------------------------------------------------------
GitHub Actions 🎬
These are some YAML files I was tinkering with early on. I have
a Cypress test that runs against this site on a cron schedule.
There's also an integration with Cypress Cloud in the sauce YAML,
and a few manually triggered Cypress tests for some random sites.
cypress-mysite.yml | orange.yml | sauce.yml | lambdaTest.yml
View workflows
------------------------------------------------------------------------
Postman API Testing 📬
My profile and public workspace/collections
------------------------------------------------------------------------
National Weather Service API ⛈️🌡️❄️☔🌤
Click Here --> View weather alerts on my page <-- Click Here

Weather API Status:  🕘 Last Update:  • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • • •
Safari/IOS users: Refresh your browser if you encounter issues with ticker.
Weather ticker HTML , CSS, JS1, and JS2
------------------------------------------------------------------------
The weather and earthquake data on this page are part of my
exploration into API interactions, and I wanted some dynamic,
live updates to make the site more interesting. While it might
seem unrelated to QA testing, it reflects my curiosity and
hands-on learning beyond typical QA responsibilities. I chose
these APIs because they don't require authentication, avoiding
exposure of API keys in the source code. [joke api - demo] 😂
------------------------------------------------------------------------
Most Recent Earthquake via 📳 USGS Realtime GeoJSON Feed
Source File: earthQuake.js
Place:
Magnitude:
Latitude:
Longitude:
Depth: km
Time: Pacific
URL: 📍
------------------------------------------------------------------------
Code Quality and Site Monitoring ⚠️
Driven by curiosity, I decided to tinker with SonarCloud and
Sentry to explore their functionalities and understand how
they can enhance my projects.



------------------------------------------------------------------------
Slack Integration 🪛
Slack integration with Sentry 📸 look and Cypress Cloud 📸 look
------------------------------------------------------------------------
Tinkering with the HTML <video></video> tag 🚘📹
I've been exploring HTML and CSS to integrate multimedia into
my personal site. Here's a video taken with my dashcam, originally
captured in 2160P (front) and 1080p (rear) as separate video files.
I used iMovie to split the screen and HandBrake to convert the .TS
files to .MP4 and also to reduce the file size for viewing on the web.
* The rear camera is darker because of window tint.
* On desktop, hover your mouse over over the video for full opacity.
* On mobile, just tap on or outside of the video to toggle opacity.
------------------------------------------------------------------------
Set frequency of JS alert with localStorage alertPopUp.js 🛎️
------------------------------------------------------------------------
View my curated list of helpful tools and resources 🛠️
------------------------------------------------------------------------
Click here for a surprise YouTube video handpicked and played
randomly from a playlist array in randomMusicYt.js. 🎸🎸🎸🎸🎸
------------------------------------------------------------------------
tinker.js JavaScript playground 🎡
------------------------------------------------------------------------
Repository Last Commit 💾
-----
Source File: repoLastCommitInfo.js
------------------------------------------------------------------------
Click here to see what the above section looks like when the API
rate limit is reached. The primary rate limit for unauthenticated
requests from an originating IP to the GitHub API is 60 requests
per hour.
------------------------------------------------------------------------

Feel free to use and explore the scripts. This site is intended for educational purposes, not only for my learning journey, but yours too! Thanks for stopping by! You are visitor:
Top