UNPKG

wc-e2e-page-objects

Version:

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

86 lines (71 loc) 2.9 kB
/** * External dependencies */ import { By } from 'selenium-webdriver'; import { WebDriverHelper as helper } from 'wp-e2e-webdriver'; /** * Internal dependencies */ import * as wcHelper from '../helper.js'; import ComponentCheckout from './component-checkout'; const SELECTOR = By.css( '.customer-billing-fields' ); const FIRST_NAME_SELECTOR = By.css( '#billing_first_name' ); const LAST_NAME_SELECTOR = By.css( '#billing_last_name' ); const COMPANY_SELECTOR = By.css( '#billing_company' ); const EMAIL_SELECTOR = By.css( '#billing_email' ); const PHONE_SELECTOR = By.css( '#billing_phone' ); const COUNTRY_SELECTOR = By.css( '#select2-billing_country-container' ); const ADDRESS_1_SELECTOR = By.css( '#billing_address_1' ); const ADDRESS_2_SELECTOR = By.css( '#billing_address_2' ); const CITY_SELECTOR = By.css( '#billing_city' ); const STATE_SELECTOR = By.css( '#billing_state_field .select2-selection__arrow' ); const ZIP_SELECTOR = By.css( '#billing_postcode' ); export default class ComponentCheckoutBillingDetails extends ComponentCheckout { constructor( driver ) { super( driver, SELECTOR, { wait: false } ); } setFirstName( firstName ) { helper.mouseMoveTo( this.driver, FIRST_NAME_SELECTOR ); return helper.setWhenSettable( this.driver, FIRST_NAME_SELECTOR, firstName ); } setLastName( lastName ) { helper.mouseMoveTo( this.driver, LAST_NAME_SELECTOR ); return helper.setWhenSettable( this.driver, LAST_NAME_SELECTOR, lastName ); } setCompany( company ) { helper.mouseMoveTo( this.driver, COMPANY_SELECTOR ); return helper.setWhenSettable( this.driver, COMPANY_SELECTOR, company ); } setEmail( email ) { helper.mouseMoveTo( this.driver, EMAIL_SELECTOR ); return helper.setWhenSettable( this.driver, EMAIL_SELECTOR, email ); } setPhone( phone ) { helper.mouseMoveTo( this.driver, PHONE_SELECTOR ); return helper.setWhenSettable( this.driver, PHONE_SELECTOR, phone ); } selectCountry( keyword, option ) { helper.mouseMoveTo( this.driver, COUNTRY_SELECTOR ); return wcHelper.select2OptionWithSearch( this.driver, COUNTRY_SELECTOR, keyword, option ); } setAddress1( addr ) { helper.mouseMoveTo( this.driver, ADDRESS_1_SELECTOR ); return helper.setWhenSettable( this.driver, ADDRESS_1_SELECTOR, addr ); } setAddress2( addr ) { helper.mouseMoveTo( this.driver, ADDRESS_2_SELECTOR ); return helper.setWhenSettable( this.driver, ADDRESS_2_SELECTOR, addr ); } setCity( city ) { helper.mouseMoveTo( this.driver, CITY_SELECTOR ); return helper.setWhenSettable( this.driver, CITY_SELECTOR, city ); } selectState( keyword, option ) { helper.mouseMoveTo( this.driver, STATE_SELECTOR ); return wcHelper.select2OptionWithSearch( this.driver, STATE_SELECTOR, keyword, option ); } setZip( zip ) { helper.mouseMoveTo( this.driver, ZIP_SELECTOR ); return helper.setWhenSettable( this.driver, ZIP_SELECTOR, zip ); } }