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
JavaScript
/**
* 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 );
}
}