Giter Site home page Giter Site logo

rrennick / wc-e2e-page-objects Goto Github PK

View Code? Open in Web Editor NEW

This project forked from woocommerce/wc-e2e-page-objects

0.0 1.0 0.0 946 KB

WooCommerce Page Objects to be used on end-to-end tests with Selenium WebDriver

License: GNU General Public License v2.0

JavaScript 100.00%

wc-e2e-page-objects's Introduction

wc-e2e-page-objects

npm version build status dependency status

WooCommerce Page Objects to be used on end-to-end tests with Selenium WebDriver.

Install

npm install wc-page-objects

Docs

Usage

Example:

import chai from 'chai';
import chaiAsPromised from 'chai-as-promised';
import test from 'selenium-webdriver/testing';
import { WebDriverManager, WebDriverHelper as helper } from 'wp-e2e-webdriver';
import { ShopPage, CartPage } from 'wc-e2e-page-objects';

chai.use( chaiAsPromised );
const assert = chai.assert;

let manager;
let driver;

test.describe( 'Cart page', function() {
	test.before( 'open browser', function() {
		manager = new WebDriverManager( 'chrome', { baseUrl: 'http://local.wordpress.dev' } );
		driver = manager.getDriver();
		helper.clearCookiesAndDeleteLocalStorage( driver );
	} );

	test.it( 'should displays no item in the cart', () => {
		const cartPage = new CartPage( driver, { url: manager.getPageUrl( '/cart' ) } );
		assert.eventually.equal( cartPage.hasNoItem(), true );
	} );

	test.it( 'should adds the product to the cart when "Add to cart" is clicked', () => {
		const shopPage = new ShopPage( driver, { url: manager.getPageUrl( '/shop' ) } );
		assert.eventually.equal( shopPage.addProductToCart( 'Flying Ninja' ), true );
		assert.eventually.equal( shopPage.addProductToCart( 'Happy Ninja' ), true );

		const cartPage = new CartPage( driver, { url: manager.getPageUrl( '/cart' ) } );
		assert.eventually.equal( cartPage.hasItem( 'Flying Ninja' ), true );
		assert.eventually.equal( cartPage.hasItem( 'Happy Ninja' ), true );
	} );

	test.after( 'quit browser', () => {
		manager.quitBrowser();
	} );
} );

wc-e2e-page-objects's People

Contributors

alisterscott avatar claudiulodro avatar gedex avatar juliaamosova avatar rodrigoprimo avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.