Best JavaScript code snippet using playwright-internal
threex.collider.js
Source: threex.collider.js
1var THREEx = THREEx || {}2//////////////////////////////////////////////////////////////////////////////////3// THREEx.Collider4//////////////////////////////////////////////////////////////////////////////////5/**6 * collider base class7 * 8 * @param {THREE.Object3D} object3d - the object9 */10THREEx.Collider = function(object3d){11 this.id = THREEx.Collider.idCount++12 this.object3d = object3d13 this.userData = {}14}15THREEx.Collider.idCount = 0;16/**17 * microevents.js - https://github.com/jeromeetienne/microevent.js18 * 19 * @param {Object} destObj - the destination object20*/21THREEx.Collider.MicroeventMixin = function(destObj){22 destObj.addEventListener = function(event, fct){23 if(this._events === undefined) this._events = {};24 this._events[event] = this._events[event] || [];25 this._events[event].push(fct);26 return fct;27 };28 destObj.removeEventListener = function(event, fct){29 if(this._events === undefined) this._events = {};30 if( event in this._events === false ) return;31 this._events[event].splice(this._events[event].indexOf(fct), 1);32 };33 destObj.dispatchEvent = function(event /* , args... */){34 if(this._events === undefined) this._events = {};35 if( this._events[event] === undefined ) return;36 var tmpArray = this._events[event].slice();37 for(var i = 0; i < tmpArray.length; i++){38 var result = tmpArray[i].apply(this, Array.prototype.slice.call(arguments, 1))39 if( result !== undefined ) return result;40 }41 return undefined;42 };43};44THREEx.Collider.MicroeventMixin(THREEx.Collider.prototype)45//////////////////////////////////////////////////////////////////////////////////46// Comment //47//////////////////////////////////////////////////////////////////////////////////48/**49 * Easy create a collider from a object3d50 * 51 * @param {THREE.Object3D} object3d - the object52 * @param {String=} hint - hint on how to create it53 * @return {THREE.Collider} - the create collider54 */55THREEx.Collider.createFromObject3d = function(object3d, hint){56 hint = hint || 'default'57 if( hint === 'accurate' ){58 var box3 = new THREE.Box3()59 var collider = new THREEx.ColliderBox3(object3d, box3, 'vertices')60 }else if( hint === 'fast' || hint === 'default' ){61 // set it from object3d62 var box3 = new THREE.Box3()63 box3.setFromObject( object3d );64 // cancel the effect of object3d.position65 var center = box3.center()66 center.sub(object3d.position)67 // cancel the effect of object3d.scale68 var size = box3.size()69 size.divide(object3d.scale)70 // update box371 box3.setFromCenterAndSize(center, size)72 // actually create the collider73 var collider = new THREEx.ColliderBox3(object3d, box3, 'positionScaleOnly') 74 }else console.assert(false)75 return collider76}77//////////////////////////////////////////////////////////////////////////////////78//////////////////////////////////////////////////////////////////////////////////79//////////////////////////////////////////////////////////////////////////////////80//////////////////////////////////////////////////////////////////////////////////81//////////////////////////////////////////////////////////////////////////////////82//////////////////////////////////////////////////////////////////////////////////83//////////////////////////////////////////////////////////////////////////////////84//////////////////////////////////////////////////////////////////////////////////85// THREEx.ColliderBox386//////////////////////////////////////////////////////////////////////////////////87//////////////////////////////////////////////////////////////////////////////////88//////////////////////////////////////////////////////////////////////////////////89//////////////////////////////////////////////////////////////////////////////////90//////////////////////////////////////////////////////////////////////////////////91//////////////////////////////////////////////////////////////////////////////////92//////////////////////////////////////////////////////////////////////////////////93//////////////////////////////////////////////////////////////////////////////////94THREEx.ColliderBox3 = function(object3d, shape, updateMode){95 console.assert(shape instanceof THREE.Box3 )96 THREEx.Collider.call( this, object3d )97 this.shape = shape98 this.updatedBox3= shape.clone()99 this.updateMode = updateMode || 'vertices'100}101THREEx.ColliderBox3.prototype = Object.create( THREEx.Collider.prototype );102//////////////////////////////////////////////////////////////////////////////////103// .update104//////////////////////////////////////////////////////////////////////////////////105/**106 * update this Collider107 * 108 * @param {String=} updateMode - the update mode to use. default to this.updateMode109 */110THREEx.ColliderBox3.prototype.update = function(updateMode){111 // default arguments112 updateMode = updateMode || this.updateMode113 var newBox3 = this.shape.clone()114 // init newBox3 based on updateMode115 if( updateMode === 'vertices' ){116 // full recomputation of the box3 for each vertice, of geometry, of each child117 // - it is quite expensive118 newBox3.setFromObject(this.object3d)119 }else if( updateMode === 'transform' ){120 // TODO should i do that .updateMatrixWorld ?121 this.object3d.updateMatrixWorld( true );122 newBox3.applyMatrix4(this.object3d.matrixWorld)123 }else if( updateMode === 'none' ){124 // may be useful if the object3d never moves125 // - thus you do a collider.update('vertices') on init and collide.updateMode = 'none'126 }else if( updateMode === 'positionScaleOnly' ){127 // get matrix in world coordinate128 this.object3d.updateMatrixWorld( true )129 var matrix = this.object3d.matrixWorld130 // update scale131 var scale = new THREE.Vector3().setFromMatrixScale( matrix );132 newBox3.min.multiply(scale)133 newBox3.max.multiply(scale)134 // update position135 var position = new THREE.Vector3().setFromMatrixPosition( matrix );136 newBox3.translate(position)137 }else console.assert(false)138 // save this.updatedBox3139 this.updatedBox3 = newBox3140}141//////////////////////////////////////////////////////////////////////////////////142// .collideWith143//////////////////////////////////////////////////////////////////////////////////144/**145 * test if this collider collides with the otherCollider146 * 147 * @param {THREEx.Collider} otherCollider - the other collider148 * @return {Boolean} - true if they are in contact, false otherwise149 */150THREEx.ColliderBox3.prototype.collideWith = function(otherCollider){151 if( otherCollider instanceof THREEx.ColliderBox3 ){152 return this.collideWithBox3(otherCollider)153 }else console.assert(false)154}155/**156 * test if this collider collides with the otherCollider157 * 158 * @param {THREEx.ColliderBox3} otherCollider - the other collider159 * @return {Boolean} - true if they are in contact, false otherwise160 */161THREEx.ColliderBox3.prototype.collideWithBox3 = function(otherCollider){162 console.assert( otherCollider instanceof THREEx.ColliderBox3 )163 var doCollide = this.updatedBox3.isIntersectionBox(otherCollider.updatedBox3)164 return doCollide ? true : false...
DbManager.js
Source: DbManager.js
1import realm from '../db/Realm';2class DbManager {3 constructor(schema, primaryKey) {4 this.schema = schema;5 this.primaryKey = primaryKey;6 }7 /**8 * åå
¥åæ¡æ°æ®9 * @param {Object} data åæ¡æ°æ®10 * @param {String} updateMode åå
¥æ¹å¼11 */12 create(data, updateMode = 'modified') {13 realm.write(this.schema, data, updateMode);14 }15 /**16 * åå
¥å¤æ¡æ°æ®17 * @param {Array} list å¤æ¡æ°æ®å表18 * @param {String} updateMode åå
¥æ¹å¼19 */20 createAll(list, updateMode = 'modified') {21 realm.writeAll(this.schema, list, updateMode);22 }23 /**24 * ä¾æ®ä¸»é®æ´æ°ï¼å¸¸ç¨äºå¢éæ´æ°25 * @param {String} primaryKey åæ¡æ°æ®ä¸»é®26 * @param {Object} data åæ¡æ°æ®27 * @param {String} updateMode åå
¥æ¹å¼28 */29 update(primaryKey, data, updateMode = 'modified') {30 const finalData = { [this.primaryKey]: primaryKey, ...data };31 realm.write(this.schema, finalData, updateMode);32 }33 /**34 * æ´æ°æ¬å°åæ¡æ°æ®ï¼æ å·®å«å
¨éæ´æ°35 * @param {Object} data åæ¡æ°æ®36 * @param {String} updateMode åå
¥æ¹å¼37 */38 updateWhole(data, updateMode = 'modified') {39 realm.writeAll(this.schema, data, updateMode);40 }41 /**42 * æ´æ°æ¬å°å¤æ¡æ°æ®43 * @param {Array} list å¤æ¡æ°æ®å表44 * @param {String} updateMode åå
¥æ¹å¼45 */46 updateAll(list, updateMode = 'modified') {47 this.createAll(list, updateMode);48 }49 // éè¿idå é¤æ¬å°æ°æ®50 deleteById(primaryKey) {51 try {52 realm.realmIns.write(() => {53 const deleteObj = this.queryById(primaryKey);54 if (deleteObj) {55 realm.realmIns.delete(deleteObj);56 }57 });58 } catch (e) {59 console.error(e);60 }61 }62 // éè¿idæ¥è¯¢æ¬å°æ°æ®63 queryById(primaryKey) {64 try {65 const list = realm.realmIns.objects(this.schema);66 const data = list.filtered(`${this.primaryKey} == "${primaryKey}"`)[0];67 if (data) {68 return data;69 }70 return null;71 } catch (e) {72 console.error(e);73 return null;74 }75 }76 // è·åæ¬å°æ件å表77 getList(sortedAttr = 'createTime') {78 try {79 const list = realm.realmIns.objects(this.schema).sorted(sortedAttr, true);80 if (list) {81 return list;82 }83 return [];84 } catch (e) {85 console.error(e);86 return [];87 }88 }89 // groupByæ¬å°æ件å表90 groupBy(groupAttr, value, sortedAttr) {91 try {92 let list = realm.realmIns.objects(this.schema).filtered(`${groupAttr} == "${value}"`);93 if (sortedAttr) {94 list = list.sorted(sortedAttr, true);95 }96 if (list) {97 return list;98 }99 return [];100 } catch (e) {101 console.error(e);102 return [];103 }104 }105 // groupBy PrimaryKey æ¬å°æ件å表106 groupById(value, sortedAttr) {107 return this.groupBy(this.primaryKey, value, sortedAttr);108 }109 // è·å转ååçæ¬å°æ°æ®110 // eslint-disable-next-line class-methods-use-this111 getObject(realmObject, filterFun) {112 const obj = {};113 // eslint-disable-next-line no-restricted-syntax114 for (const key in realmObject) {115 if (filterFun && filterFun(key)) {116 obj[key] = realmObject[key];117 }118 }119 return obj;120 }121}122// ç¬è§¦ç¹æ°æ®åºæä½å¯¹è±¡123class Strokes extends DbManager {124 constructor() {125 super('Strokes', 'strokeId');126 }127 groudByNotebookId(notebookId, pageNum) {128 // return this.groupBy('notebookId', value, sortedAttr);129 try {130 const list = realm.realmIns.objects(this.schema).filtered(`notebookId == "${notebookId}" && n==${pageNum}`);131 /* if (sortedAttr) {132 list = list.sorted(sortedAttr, true);133 } */134 if (list) {135 return list;136 }137 return [];138 } catch (e) {139 console.error(e);140 return [];141 }142 }143}144// ç¬è§¦ç¹æ°æ®åºæä½å¯¹è±¡145class Notebook extends DbManager {146 constructor() {147 super('Notebook', 'notebookId');148 }149 /**150 * æç
§ä¸»é®ãactiveï¼è¿è¡å½å¹¶ï¼å¹¶æç
§ sortedAttr è¿è¡æåº151 * @param {String} notebookId 主é®152 * @param {Boolean} active æ¯å¦æ¿æ´»153 * @param {String} sortedAttr æåºå段ï¼é»è®¤ createOn154 */155 groudByIdAndActive(notebookId, active = false, sortedAttr = 'createOn') {156 // return this.groupBy('notebookId', value, sortedAttr);157 try {158 let list = realm.realmIns.objects(this.schema).filtered(`notebookId == "${notebookId}" && active==${active}`);159 if (sortedAttr) {160 list = list.sorted(sortedAttr, true);161 }162 if (list) {163 return list;164 }165 return [];166 } catch (e) {167 console.error(e);168 return [];169 }170 }171 // è·åå®æ´ä¿¡æ¯172 getWholeData(notebookId) {173 const notebookRealm = this.queryById(notebookId);174 if (!notebookRealm) {175 return {};176 }177 const notebook = this.getObject(notebookRealm, key => key !== 'notes');178 // è·å该ç¬è®°æ¬ä¸é¢çæ¯é¡µä¿¡æ¯notes179 notebook.notes = this._transferNotes(notebookRealm.notes);180 return notebook;181 }182 // eslint-disable-next-line class-methods-use-this183 _transferNotes(notes) {184 const n = [];185 for (let i = 0, len = notes.length; i < len; i += 1) {186 const { pageNum, previewImg, previewThumbImg } = notes[i];187 n.push({188 pageNum, previewImg, previewThumbImg,189 });190 }191 return n;192 }193 // åªè·å notes æ°ç»å表194 getNotes(notebookId) {195 const notebookRealm = this.queryById(notebookId);196 if (!notebookRealm) {197 return [];198 }199 // å¤ç notes200 return this._transferNotes(notebookRealm.notes);201 }202}203export default {204 Strokes: new Strokes(),205 Notebook: new Notebook(),...
ajax.js
Source: ajax.js
1/*2 * This file is part of the EcommitCrudBundle package.3 *4 * (c) E-commit <contact@e-commit.fr>5 *6 * For the full copyright and license information, please view the LICENSE7 * file that was distributed with this source code.8 */9import $ from 'jquery'10import * as optionsResolver from './options-resolver'11import runCallback from './callback'12$(function () {13 $(document).on('click', '.ec-crud-ajax-click-auto', function (event) {14 event.preventDefault()15 const eventBefore = $.Event('ec-crud-ajax-click-auto-before')16 $(this).trigger(eventBefore)17 if (eventBefore.isDefaultPrevented()) {18 return19 }20 click(this)21 })22 $(document).on('click', 'a.ec-crud-ajax-link-auto', function (event) {23 event.preventDefault()24 const eventBefore = $.Event('ec-crud-ajax-link-auto-before')25 $(this).trigger(eventBefore)26 if (eventBefore.isDefaultPrevented()) {27 return28 }29 link(this)30 })31 $(document).on('submit', 'form.ec-crud-ajax-form-auto', function (event) {32 event.preventDefault()33 const eventBefore = $.Event('ec-crud-ajax-form-auto-before')34 $(this).trigger(eventBefore)35 if (eventBefore.isDefaultPrevented()) {36 return37 }38 sendForm(this)39 })40})41export function sendRequest (options) {42 options = optionsResolver.resolve(43 {44 url: null,45 update: null,46 updateMode: 'update',47 onBeforeSend: null,48 onSuccess: null,49 onError: null,50 onComplete: null,51 dataType: 'html',52 method: 'POST',53 data: null,54 cache: false,55 options: {}56 },57 options58 )59 options = $.extend({}, options, options.options)60 if (optionsResolver.isNotBlank(options.url) === false) {61 console.error('Value required: url')62 return63 }64 if (optionsResolver.isNotBlank(options.onBeforeSend)) {65 runCallback(options.onBeforeSend, options)66 }67 if (options.stop !== undefined && options.stop === true) {68 return69 }70 const callbacksSuccess = []71 if (optionsResolver.isNotBlank(options.update)) {72 callbacksSuccess.push({73 priority: 10,74 callback: function (data, textStatus, jqXHR) {75 updateDom(options.update, options.updateMode, data)76 }77 })78 }79 if (optionsResolver.isNotBlank(options.onSuccess)) {80 callbacksSuccess.push(options.onSuccess)81 }82 $.ajax({83 url: options.url,84 type: options.method,85 dataType: options.dataType,86 cache: options.cache,87 data: options.data,88 success: function (data, textStatus, jqXHR) {89 runCallback(callbacksSuccess, data, textStatus, jqXHR)90 },91 error: function (jqXHR, textStatus, errorThrown) {92 runCallback(options.onError, jqXHR, textStatus, errorThrown)93 },94 complete: function (jqXHR, textStatus) {95 runCallback(options.onComplete, jqXHR, textStatus)96 }97 })98}99export function click (element, options) {100 // Options in data-* override options argument101 options = optionsResolver.resolve(102 options,103 optionsResolver.getDataAttributes(element, 'ecCrudAjax')104 )105 sendRequest(options)106}107export function link (link, options) {108 // Options in data-* override options argument109 // Option argument override href110 options = optionsResolver.resolve(111 {112 url: $(link).attr('href')113 },114 optionsResolver.resolve(115 options,116 optionsResolver.getDataAttributes(link, 'ecCrudAjax')117 )118 )119 sendRequest(options)120}121export function sendForm (form, options) {122 // Options in data-* override options argument123 // Option argument override action, method and data form124 options = optionsResolver.resolve(125 {126 url: $(form).attr('action'),127 method: $(form).attr('method'),128 data: $(form).serialize()129 },130 optionsResolver.resolve(131 options,132 optionsResolver.getDataAttributes(form, 'ecCrudAjax')133 )134 )135 sendRequest(options)136}137export function updateDom (element, updateMode, content) {138 const eventBefore = $.Event('ec-crud-ajax-update-dom-before', {139 element: element,140 updateMode: updateMode,141 content: content142 })143 $(element).trigger(eventBefore)144 if (eventBefore.isDefaultPrevented()) {145 return146 }147 updateMode = eventBefore.updateMode148 content = eventBefore.content149 if (updateMode === 'update') {150 $(element).html(content)151 } else if (updateMode === 'before') {152 $(element).before(content)153 } else if (updateMode === 'after') {154 $(element).after(content)155 } else if (updateMode === 'prepend') {156 $(element).prepend(content)157 } else if (updateMode === 'append') {158 $(element).append(content)159 } else {160 console.error('Bad updateMode: ' + updateMode)161 return162 }163 const eventAfter = $.Event('ec-crud-ajax-update-dom-after', {164 element: element,165 updateMode: updateMode,166 content: content167 })168 $(element).trigger(eventAfter)...
index.js
Source: index.js
1/* eslint-disable camelcase */2import { Button, Icon, Form } from 'semantic-ui-react';3import { useEffect } from 'react';4import { useSelector, useDispatch } from 'react-redux';5import { format } from 'date-fns';6import {7 setUserField,8 updateUser,9 setUpdateMode,10 saveUserData,11 fetchUserData,12} from '../../actions/user';13import Field from '../Field';14import './profile.scss';15const Profile = () => {16 const dispatch = useDispatch();17 const {18 firstname,19 lastname,20 email,21 phone,22 birth_date,23 street_number,24 street_name,25 zip_code,26 city_name,27 country,28 updateMode,29 } = useSelector((state) => state.user);30 const role = localStorage.getItem('role');31 // let admin = false;32 // if (role === 'admin') {33 // admin = true;34 // }35 const changeField = (value, name) => {36 dispatch(setUserField(value, name));37 };38 const handleSubmit = (event) => {39 event.preventDefault();40 dispatch(updateUser());41 dispatch(setUpdateMode());42 // dispatch(fetchUserData());43 };44 const toggleUpdateMode = (event) => {45 event.preventDefault();46 dispatch(setUpdateMode());47 };48 const deleteAccount = (event) => {49 event.preventDefault();50 };51 // const user = localStorage.getItem('user');52 // const parsedUser = JSON.parse(user);53 // useEffect(54 // () => {55 // dispatch(saveUserData(parsedUser));56 // },57 // [],58 // );59 useEffect(60 () => {61 dispatch(fetchUserData());62 },63 [],64 )65 return (66 <main className="profile">67 <h2 className="profile__title">Vos informations</h2>68 <Form className="profile__form" onSubmit={handleSubmit}>69 <Field70 name="lastname"71 value={lastname}72 type="text"73 placeholder="Nom"74 onChange={changeField}75 updateMode={!updateMode}76 />77 <Field78 name="firstname"79 value={firstname}80 type="text"81 placeholder="Prénom"82 onChange={changeField}83 updateMode={!updateMode}84 />85 <Field86 name="email"87 value={email}88 type="email"89 placeholder="Email"90 onChange={changeField}91 updateMode={!updateMode}92 />93 <Field94 name="phone"95 value={phone}96 type="tel"97 placeholder="Téléphone"98 onChange={changeField}99 updateMode={!updateMode}100 />101 {role !== 'admin' && (102 <Field103 name="birth_date"104 value={birth_date ? format(new Date(birth_date), 'yyyy-MM-dd') : ''}105 type="date"106 placeholder="Date de naissance"107 onChange={changeField}108 updateMode={!updateMode}109 />110 )}111 {role !== 'admin' && (112 <Field113 name="street_number"114 value={street_number}115 type="number"116 placeholder="Numéro de rue"117 onChange={changeField}118 updateMode={!updateMode}119 />120 )}121 {role !== 'admin' && (122 <Field123 name="street_name"124 type="text"125 value={street_name}126 placeholder="Nom de rue"127 onChange={changeField}128 updateMode={!updateMode}129 />130 )}131 {role !== 'admin' && (132 <Field133 name="zip_code"134 type="text"135 value={zip_code}136 placeholder="Code postal"137 onChange={changeField}138 updateMode={!updateMode}139 />140 )}141 {role !== 'admin' && (142 <Field143 name="city_name"144 type="text"145 value={city_name}146 placeholder="Ville"147 onChange={changeField}148 updateMode={!updateMode}149 />150 )}151 {role !== 'admin' && (152 <Field153 name="country"154 type="text"155 value={country}156 placeholder="Pays"157 onChange={changeField}158 updateMode={!updateMode}159 />160 )}161 <div className="profile__form__buttons">162 <Button163 className="signup__form__buttons__modify"164 color="brown"165 onClick={toggleUpdateMode}166 type="submit"167 >168 <Button.Content visible><Icon name="save" />Modifier</Button.Content>169 </Button>170 {updateMode && (171 <Button172 color="teal"173 className="profile__form__buttons__validate"174 >175 <Button.Content visible><Icon name="checkmark" />Valider</Button.Content>176 </Button>177 )}178 </div>179 </Form>180 </main>181 );182};...
CourseCard.component.js
Source: CourseCard.component.js
1import React from "react";2import logo from '../static/doc-thumbnail.png';3import {Link} from "react-router-dom";4class CourseCardComponent extends React.Component {5 constructor(props) {6 super(props);7 this.state = {8 updateMode : false,9 clicked : false10 }11 this.toggleUpdateModeHandler = this.toggleUpdateModeHandler.bind(this);12 }13 toggleUpdateModeHandler = () => {14 this.setState((state) => ({15 updateMode: !state.updateMode16 }))17 }18 render() {19 return(20 <div className="col-12 col-sm-6 col-md-4 col-lg-3 col-xl-2">21 <div className="card wbdv-course-card" >22 <img src={logo} className="card-img-top" alt={logo} />23 <div className="card-body">24 { !this.state.updateMode &&25 <Link to={`/course-editor/${this.props.course._id}`}>26 <h5>{this.props.course.courseTitle}</h5>27 </Link>28 }29 { this.state.updateMode &&30 <input type="text" className="form-control" onChange={(event) => {31 this.props.updateCourseNameHandler(event, this.props.courseIndex);32 }}33 value={this.props.course.courseTitle}34 />35 }36 <p className="card-text">Last Updated: {this.props.course.courseUpdatedDate}</p>37 <p>Owned by: me</p>38 </div>39 <div className="card-body">40 {/*Delete course button*/}41 { !this.state.updateMode &&42 <button type="button"43 className="btn wbdv-row wbdv-button wbdv-delete wbdv-delete-course-btn"44 onClick={()=>this.props.deleteCourseHandler(this.props.course._id)}45 >46 <i className="fas fa-times wbdv-delete-course-icon"></i>47 </button>48 }49 { this.state.updateMode &&50 <button type="button"51 className="btn wbdv-row wbdv-button wbdv-delete wbdv-delete-course-btn"52 onClick={()=>{53 this.props.updateCourseHandler(this.props.courseIndex)54 this.toggleUpdateModeHandler();55 }}>56 <i className="fas fa-check wbdv-delete-course-icon"></i>57 </button>58 }59 { !this.state.updateMode &&60 <button type="button"61 className="btn wbdv-row wbdv-button wbdv-delete wbdv-delete-course-btn"62 onClick={this.toggleUpdateModeHandler}>63 <i className="fas fa-pencil-alt wbdv-delete-course-icon"></i>64 </button>65 }66 </div>67 </div>68 </div>69 )70 }71}...
orderItem.js
Source: orderItem.js
123//------------------------------------------------------------------------------4// <auto-generated>5// This code was generated by CodeZu. 6//7// Changes to this file may cause incorrect behavior and will be lost if8// the code is regenerated.9// </auto-generated>10//------------------------------------------------------------------------------1112var Client = require('../../../client'), constants = Client.constants;1314module.exports = Client.sub({15 getOrderItemViaLineId: Client.method({16 method: constants.verbs.GET,17 url: '{+tenantPod}api/commerce/orders/{orderId}/items/{lineId}?draft={draft}&responseFields={responseFields}'18 }),19 getOrderItem: Client.method({20 method: constants.verbs.GET,21 url: '{+tenantPod}api/commerce/orders/{orderId}/items/{orderItemId}?draft={draft}&responseFields={responseFields}'22 }),23 getOrderItems: Client.method({24 method: constants.verbs.GET,25 url: '{+tenantPod}api/commerce/orders/{orderId}/items?draft={draft}&responseFields={responseFields}'26 }),27 createOrderItem: Client.method({28 method: constants.verbs.POST,29 url: '{+tenantPod}api/commerce/orders/{orderId}/items?updatemode={updateMode}&version={version}&skipInventoryCheck={skipInventoryCheck}&responseFields={responseFields}'30 }),31 updateOrderItemDiscount: Client.method({32 method: constants.verbs.PUT,33 url: '{+tenantPod}api/commerce/orders/{orderId}/items/{orderItemId}/discounts/{discountId}?updatemode={updateMode}&version={version}&responseFields={responseFields}'34 }),35 updateItemDuty: Client.method({36 method: constants.verbs.PUT,37 url: '{+tenantPod}api/commerce/orders/{orderId}/items/{orderItemId}/dutyAmount/{dutyAmount}?updatemode={updateMode}&version={version}&responseFields={responseFields}'38 }),39 updateItemFulfillment: Client.method({40 method: constants.verbs.PUT,41 url: '{+tenantPod}api/commerce/orders/{orderId}/items/{orderItemId}/fulfillment?updatemode={updateMode}&version={version}&responseFields={responseFields}'42 }),43 updateItemProductPrice: Client.method({44 method: constants.verbs.PUT,45 url: '{+tenantPod}api/commerce/orders/{orderId}/items/{orderItemId}/price/{price}?updatemode={updateMode}&version={version}&responseFields={responseFields}'46 }),47 updateItemQuantity: Client.method({48 method: constants.verbs.PUT,49 url: '{+tenantPod}api/commerce/orders/{orderId}/items/{orderItemId}/quantity/{quantity}?updatemode={updateMode}&version={version}&responseFields={responseFields}'50 }),51 deleteOrderItem: Client.method({52 method: constants.verbs.DELETE,53 url: '{+tenantPod}api/commerce/orders/{orderId}/items/{orderItemId}?updatemode={updateMode}&version={version}'54 })
...
adjustment.js
Source: adjustment.js
123//------------------------------------------------------------------------------4// <auto-generated>5// This code was generated by CodeZu. 6//7// Changes to this file may cause incorrect behavior and will be lost if8// the code is regenerated.9// </auto-generated>10//------------------------------------------------------------------------------1112var Client = require('../../../client'), constants = Client.constants;1314module.exports = Client.sub({15 applyHandlingAdjustment: Client.method({16 method: constants.verbs.PUT,17 url: '{+tenantPod}api/commerce/orders/{orderId}/adjustment/handling?updatemode={updateMode}&version={version}&responseFields={responseFields}'18 }),19 applyShippingAdjustment: Client.method({20 method: constants.verbs.PUT,21 url: '{+tenantPod}api/commerce/orders/{orderId}/adjustment/shipping?updatemode={updateMode}&version={version}&responseFields={responseFields}'22 }),23 applyAdjustment: Client.method({24 method: constants.verbs.PUT,25 url: '{+tenantPod}api/commerce/orders/{orderId}/adjustment?updatemode={updateMode}&version={version}&responseFields={responseFields}'26 }),27 removeHandlingAdjustment: Client.method({28 method: constants.verbs.DELETE,29 url: '{+tenantPod}api/commerce/orders/{orderId}/adjustment/handling?updatemode={updateMode}&version={version}'30 }),31 removeShippingAdjustment: Client.method({32 method: constants.verbs.DELETE,33 url: '{+tenantPod}api/commerce/orders/{orderId}/adjustment/shipping?updatemode={updateMode}&version={version}'34 }),35 removeAdjustment: Client.method({36 method: constants.verbs.DELETE,37 url: '{+tenantPod}api/commerce/orders/{orderId}/adjustment?updatemode={updateMode}&version={version}'38 })
...
responsive-layout.js
Source: responsive-layout.js
...16 connectedCallback() {17 super.connectedCallback();18 document.addEventListener('DOMContentLoaded', this.updateMode);19 window.addEventListener('resize', this.updateMode);20 this.updateMode();21 }22 disconnectedCallback() {23 super.disconnectedCallback();24 document.removeEventListener('DOMContentLoaded', this.updateMode);25 window.removeEventListener('resize', this.updateMode);26 }27 get mode() {28 return this._mode;29 }30 set mode(mode) {31 if (this._mode !== mode) {32 this._mode = mode;33 this.requestUpdate('mode', mode);34 this.updateComplete.then(this.dispatchModeChange);35 }36 }37 dispatchModeChange() {38 this.dispatchEvent(new CustomEvent('modeChange', { detail: this._mode }));39 }40 getModes() {41 return this.constructor.modes;42 }43 matchMode(mode) {44 return mode.match === undefined || mode.match === true || window.matchMedia(mode.match).matches;45 }46 updateMode() {47 const mode = this.getModes().find(this.matchMode);48 this.mode = mode.name;49 }...
Using AI Code Generation
1const { chromium } = require('playwright');2(async () => {3 const browser = await chromium.launch();4 const context = await browser.newContext({ viewport: null });5 const page = await context.newPage();6 await page.updateMode('none');7 await page.screenshot({ path: 'screenshot.png' });8 await browser.close();9})();
Using AI Code Generation
1const { chromium } = require('playwright');2(async () => {3 const browser = await chromium.launch({ headless: false });4 const context = await browser.newContext({ viewport: null });5 const page = await context.newPage();6 await page.updateMode('css');7 await page.click('input[name="q"]');8 await page.keyboard.type('playwright');9 await page.updateMode('xpath');10 await page.keyboard.type('playwright');11 await page.updateMode('auto');12 await page.keyboard.type('playwright');13 await page.updateMode('auto');14 await page.click('input[name="q"]');15 await page.keyboard.type('playwright');16 await page.updateMode('css');17 await page.keyboard.type('playwright');18 await page.updateMode('xpath');19 await page.click('input[name="q"]');20 await page.keyboard.type('playwright');21 await page.updateMode('auto');22 await page.click('input[name="q"]');23 await page.keyboard.type('playwright');24 await page.updateMode('css');25 await page.click('input[name="q"]');26 await page.keyboard.type('playwright');27 await page.updateMode('xpath');28 await page.keyboard.type('playwright');29 await page.updateMode('auto');30 await page.keyboard.type('playwright');31 await page.updateMode('auto');32 await page.click('input[name="q"]');33 await page.keyboard.type('playwright');34 await page.updateMode('css');35 await page.keyboard.type('playwright');36 await page.updateMode('xpath');37 await page.click('input[name="q"]');38 await page.keyboard.type('playwright');39 await page.updateMode('auto');40 await page.click('input[name="q"]');41 await page.keyboard.type('playwright');42 await page.updateMode('css');43 await page.click('input[name="q"]');44 await page.keyboard.type('playwright');45 await page.updateMode('xpath');46 await page.keyboard.type('play
Using AI Code Generation
1const { chromium } = require('playwright');2(async () => {3 const browser = await chromium.launch({ headless: false });4 const context = await browser.newContext();5 const page = await context.newPage();6 await page.updateMode('mobile');7 await page.screenshot({ path: 'screenshot.png' });8 await browser.close();9})();
Using AI Code Generation
1const { chromium, webkit, firefox } = require('playwright');2(async () => {3 const browser = await chromium.launch();4 const context = await browser.newContext();5 const page = await context.newPage();6 await page.updateMode('default');7 await page.updateMode('none');8 await page.updateMode('virtual');9 await browser.close();10})();11* [updateMode](#updatemode)12 * [Parameters](#parameters)13* [updateMode](#updatemode-1)14 * [Parameters](#parameters-1)15* [updateMode](#updatemode-2)16 * [Parameters](#parameters-2)
Using AI Code Generation
1const { chromium } = require('playwright');2(async () => {3 const browser = await chromium.launch();4 const context = await browser.newContext({5 });6 const page = await context.newPage();7 await page.evaluateOnNewDocument(() => {8 window.__REACT_DEVTOOLS_GLOBAL_HOOK__ = window.parent.__REACT_DEVTOOLS_GLOBAL_HOOK__;9 });10 await page.close();11 await context.close();12 await browser.close();13})();
Using AI Code Generation
1const { updateMode } = require('@playwright/test/lib/server/worker');2updateMode('default');3const { updateMode } = require('@playwright/test/lib/server/worker');4updateMode('default');5const { updateMode } = require('@playwright/test/lib/server/worker');6updateMode('default');7const { updateMode } = require('@playwright/test/lib/server/worker');8updateMode('default');9const { updateMode } = require('@playwright/test/lib/server/worker');10updateMode('default');11const { updateMode } = require('@playwright/test/lib/server/worker');12updateMode('default');13const { updateMode } = require('@playwright/test/lib/server/worker');14updateMode('default');15const { updateMode } = require('@playwright/test/lib/server/worker');16updateMode('default');17const { updateMode } = require('@playwright/test/lib/server/worker');18updateMode('default');19const { updateMode } = require('@playwright/test/lib/server/worker');20updateMode('default');21const { updateMode } = require('@playwright/test/lib/server/worker');22updateMode('default');
Jest + Playwright - Test callbacks of event-based DOM library
firefox browser does not start in playwright
Is it possible to get the selector from a locator object in playwright?
How to run a list of test suites in a single file concurrently in jest?
Running Playwright in Azure Function
firefox browser does not start in playwright
This question is quite close to a "need more focus" question. But let's try to give it some focus:
Does Playwright has access to the cPicker object on the page? Does it has access to the window object?
Yes, you can access both cPicker and the window object inside an evaluate call.
Should I trigger the events from the HTML file itself, and in the callbacks, print in the DOM the result, in some dummy-element, and then infer from that dummy element text that the callbacks fired?
Exactly, or you can assign values to a javascript variable:
const cPicker = new ColorPicker({
onClickOutside(e){
},
onInput(color){
window['color'] = color;
},
onChange(color){
window['result'] = color;
}
})
And then
it('Should call all callbacks with correct arguments', async() => {
await page.goto(`http://localhost:5000/tests/visual/basic.html`, {waitUntil:'load'})
// Wait until the next frame
await page.evaluate(() => new Promise(requestAnimationFrame))
// Act
// Assert
const result = await page.evaluate(() => window['color']);
// Check the value
})
Check out the latest blogs from LambdaTest on this topic:
Native apps are developed specifically for one platform. Hence they are fast and deliver superior performance. They can be downloaded from various app stores and are not accessible through browsers.
One of the essential parts when performing automated UI testing, whether using Selenium or another framework, is identifying the correct web elements the tests will interact with. However, if the web elements are not located correctly, you might get NoSuchElementException in Selenium. This would cause a false negative result because we won’t get to the actual functionality check. Instead, our test will fail simply because it failed to interact with the correct element.
Smartphones have changed the way humans interact with technology. Be it travel, fitness, lifestyle, video games, or even services, it’s all just a few touches away (quite literally so). We only need to look at the growing throngs of smartphone or tablet users vs. desktop users to grasp this reality.
As part of one of my consulting efforts, I worked with a mid-sized company that was looking to move toward a more agile manner of developing software. As with any shift in work style, there is some bewilderment and, for some, considerable anxiety. People are being challenged to leave their comfort zones and embrace a continuously changing, dynamic working environment. And, dare I say it, testing may be the most ‘disturbed’ of the software roles in agile development.
LambdaTest’s Playwright tutorial will give you a broader idea about the Playwright automation framework, its unique features, and use cases with examples to exceed your understanding of Playwright testing. This tutorial will give A to Z guidance, from installing the Playwright framework to some best practices and advanced concepts.
Get 100 minutes of automation test minutes FREE!!