Automated end-to-end testing suite for all Essential Addons for Elementor demo pages
This project provides comprehensive automated testing for Essential Addons for Elementor demo pages. It uses Playwright to perform visual regression testing and functional validation across all widget demos.
β 81 Demos Automated | π§ͺ 324 Total Tests | β³ 34 Demos Remaining | π 70.43% Complete
- Automate testing for all Essential Addons demo pages
- Perform visual regression testing using screenshot comparison
- Ensure widget functionality across different layouts
- Maintain quality and consistency of demo pages
- Provide continuous integration support
- Visual Regression Testing: Screenshot-based comparison with 3% pixel difference tolerance
- Parallel Execution: Tests run in parallel for faster execution
- Comprehensive Coverage: 324 test cases across 81 widgets (70.43% of 115 total widgets)
- CI/CD Ready: Configured for continuous integration environments
- Detailed Reporting: HTML reports with screenshots, traces, and videos
- Network Optimization: Blocks unnecessary third-party scripts for faster tests
- Category Completion: 6 categories fully automated (Content, Documentation, Marketing, LearnDash, Form Styler, WooCommerce)
- Node.js 18 or higher
- npm or yarn package manager
- Clone the repository:
git clone <repository-url>
cd playwright-e2e-ea- Install dependencies:
npm install- Install Playwright browsers:
npx playwright install# Update playwright
npm install -D @playwright/test@latest
# Install new browsers
npx playwright install
# See what version of Playwright you have by running the following command
npx playwright --versionThe project uses environment variables for configuration. Create a .env file in the root directory:
BASE_URL=https://essential-addons.comnpx playwright testnpx playwright test --headednpx playwright test tests/creative-elements/interactive-cards.spec.jsnpx playwright show-reportplaywright-e2e-ea/
βββ tests/ # Test files organized by category (81 spec files, 324 tests)
β βββ content-elements/ # Content element tests (25 specs, 111 tests) β¨
β β βββ advanced-accordion.spec.js
β β βββ advanced-google-map.spec.js
β β βββ advanced-menu.spec.js
β β βββ advanced-search.spec.js
β β βββ advanced-tabs.spec.js
β β βββ breadcrumbs.spec.js
β β βββ code-snippet.spec.js
β β βββ content-toggle.spec.js
β β βββ creative-buttons.spec.js
β β βββ dual-color-headline.spec.js
β β βββ event-calendar.spec.js
β β βββ feature-list.spec.js
β β βββ flip-box.spec.js
β β βββ info-box.spec.js
β β βββ logo-carousel.spec.js
β β βββ offcanvas-content.spec.js
β β βββ protected-content.spec.js
β β βββ simple-menu.spec.js
β β βββ static-product.spec.js
β β βββ sticky-video.spec.js
β β βββ team-members-carousel.spec.js
β β βββ team-members.spec.js
β β βββ testimonial-slider.spec.js
β β βββ testimonials.spec.js
β β βββ tooltip.spec.js
β βββ creative-elements/ # Creative element tests (15 specs, 71 tests)
β β βββ countdown.spec.js
β β βββ counter.spec.js
β β βββ divider.spec.js
β β βββ fancy-chart.spec.js
β β βββ fancy-text.spec.js
β β βββ filterable-gallery.spec.js
β β βββ image-accordion.spec.js
β β βββ image-comparison.spec.js
β β βββ image-hotspots.spec.js
β β βββ image-scroller.spec.js
β β βββ interactive-cards.spec.js
β β βββ interactive-circle.spec.js
β β βββ interactive-promo.spec.js
β β βββ one-page-nav.spec.js
β β βββ progress-bar.spec.js
β βββ documentation-elements/ # Documentation element tests (3 specs, 5 tests) β¨
β β βββ betterdocs-category-box.spec.js
β β βββ betterdocs-category-grid.spec.js
β β βββ betterdocs-search-form.spec.js
β βββ dynamic-content-elements/ # Dynamic content element tests (3 specs, 10 tests)
β β βββ advanced-data-table.spec.js
β β βββ content-timeline.spec.js
β β βββ table.spec.js
β βββ form-styler-elements/ # Form styler element tests (11 specs, 34 tests) β¨
β β βββ caldera-forms.spec.js
β β βββ contact-form-7.spec.js
β β βββ fluent-forms.spec.js
β β βββ formstack.spec.js
β β βββ gravity-forms.spec.js
β β βββ login-register-form.spec.js
β β βββ mailchimp.spec.js
β β βββ ninja-forms.spec.js
β β βββ typeform.spec.js
β β βββ weforms.spec.js
β β βββ wpforms.spec.js
β βββ learndash-elements/ # LearnDash element tests (1 spec, 5 tests) β¨
β β βββ learndash-course-list.spec.js
β βββ marketing-elements/ # Marketing element tests (4 specs, 22 tests) β¨
β β βββ call-to-action.spec.js
β β βββ multicolumn-pricing-table.spec.js
β β βββ price-menu.spec.js
β β βββ pricing-table.spec.js
β βββ social-elements/ # Social element tests (3 specs, 6 tests)
β β βββ instagram-feed.spec.js
β β βββ twitter-feed-carousel.spec.js
β β βββ twitter-feed.spec.js
β βββ woocommerce-elements/ # WooCommerce element tests (16 specs, 60 tests) β¨
β β βββ woo-account-dashboard.spec.js
β β βββ woo-add-to-cart.spec.js
β β βββ woo-cart.spec.js
β β βββ woo-checkout.spec.js
β β βββ woo-cross-sells.spec.js
β β βββ woo-product-carousel.spec.js
β β βββ woo-product-compare.spec.js
β β βββ woo-product-gallery.spec.js
β β βββ woo-product-grid.spec.js
β β βββ woo-product-images.spec.js
β β βββ woo-product-list.spec.js
β β βββ woo-product-price.spec.js
β β βββ woo-product-rating.spec.js
β β βββ woo-product-slider.spec.js
β β βββ woo-thank-you.spec.js
β β βββ woocommerce-product-collections.spec.js
β βββ example.spec.js # Example test
βββ global-setup.js # Global test configuration
βββ playwright.config.js # Playwright configuration
βββ package.json # Project dependencies
βββ README.md # This file
β¨ = Fully automated category (100% coverage)
- Test Directory:
./tests - Parallel Execution: Enabled
- Workers: 4 (in CI and local)
- Timeout: 30 seconds per test
- Retries: 1 (in CI), 0 (local)
- Screenshot Diff Tolerance: 3% max pixel ratio
- Base URL: https://essential-addons.com
The global-setup.js file includes:
- Route blocking for third-party analytics and tracking scripts
- Custom page goto wrapper with
domcontentloadedwait - Lightbox close button handler
To publish test reports to the live server:
npm run publish-reportThis command uses rsync to deploy the playwright-report directory to the remote server.
import { test, expect } from "../../global-setup";
test.describe("Widget Name", () => {
let slug = "/widget-slug";
let heading = "Widget Name";
test.beforeEach(async ({ page }) => {
await page.goto(slug);
await expect.soft(page.getByRole("heading", { name: heading, exact: true })).toBeVisible();
});
test("Layout 01", async ({ page }) => {
const section = page.getByTestId("element-id");
await section.scrollIntoViewIfNeeded();
await expect(section).toHaveScreenshot();
});
});This section tracks the automation status of all Essential Addons for Elementor demo pages. Checked items have automated tests implemented.
- Advanced Search
- Event Calendar
- Info Box
- Testimonial Slider
- Testimonials
- Toggle
- Simple Menu
- Flip Box
- Team Member Carousel
- Team Member
- Protected Content
- Feature List
- Creative Buttons
- Logo Carousel
- Advanced Accordion
- Tooltip
- Offcanvas
- Breadcrumb
- Static Product
- Dual Color Heading
- Advanced Tabs
- Sticky Video
- Advanced Menu
- Code Snippet
- Advanced Data Table
- Advanced Google Map
- Post Grid
- Business Reviews
- Post Block
- Content Ticker
- Data Table
- NFT Gallery
- Post Timeline
- Content Timeline
- Smart Post List
- Dynamic Gallery
- Post Carousel
- Pricing Table
- Call to Action
- Price Menu
- Multicolumn Pricing Table
- Interactive Circle
- Filterable Gallery
- Divider
- Lightbox and Modal
- SVG Draw
- Interactive Cards
- Image Hotspots
- Fancy Text
- Flip Carousel
- Fancy Chart
- Interactive Promo
- Image Scroller
- Counter
- Progress Bar
- Stacked Cards
- One Page Navigation
- Image Comparison
- Countdown
- Image Accordion
- 360 Degree Photo Viewer
- Figma to Elementor Converter
- Typeform
- MailChimp
- weForms
- Contact Form 7
- Caldera Forms
- Formstack
- WPForms
- Login Register Form
- Gravity Forms
- Ninja Forms
- FluentForm
- Twitter Feed Carousel
- Twitter Feed
- Instagram Feed
- Facebook Feed
- LearnDash Course List
- BetterDocs Category Grid
- BetterDocs Category Box
- BetterDocs Search Form
- Woo Thank You
- Woo Cart
- Woo Product Carousel
- Woo Product Gallery
- Woo Checkout
- Woo Product Slider
- Woo Product Collections
- Woo Product Grid
- Woo Product Compare
- Woo Cross Sells
- Woo Account Dashboard
- Woo Product List
- Woo Product Price
- Woo Add To Cart
- Woo Product Rating
- Woo Product Images
- Dynamic Tags
- Scroll To Top
- Content Protection
- Post Duplicator
- Table of Contents
- Parallax
- Reading Progress Bar
- Particles
- Advanced Tooltip
- Conditional Display
- Wrapper Link
- Interactive Animations
- Hover Interaction
- Custom JS
- Cross-Domain Copy Paste
- Liquid Glass Effects
- Custom Cursor
- Image Masking
- Vertical Text Orientation
Total Progress: 81/115 demos automated (70.43%) | 324 individual test cases
Breakdown by Category:
| Category | Demos | Tests | Coverage |
|---|---|---|---|
| β Content Elements | 24/24 | 111 tests | 100% β¨ |
| β Creative Elements | 15/20 | 71 tests | 75% |
| β Documentation Elements | 3/3 | 5 tests | 100% β¨ |
| β Dynamic Content Elements | 4/13 | 10 tests | 31% |
| β Form Styler Elements | 11/11 | 34 tests | 100% β¨ |
| β LearnDash Elements | 1/1 | 5 tests | 100% β¨ |
| β Marketing Elements | 4/4 | 22 tests | 100% β¨ |
| β Social Elements | 3/4 | 6 tests | 75% |
| β WooCommerce Elements | 16/16 | 60 tests | 100% β¨ |
| β³ Figma Design | 0/1 | 0 tests | 0% |
| β³ Extensions | 0/18 | 0 tests | 0% |
π Fully Automated Categories: Content Elements, Documentation Elements, Marketing Elements, LearnDash Elements, Form Styler Elements, WooCommerce Elements