Best JavaScript code snippet using playwright-internal
VisualizationEngineSpec.js
Source: VisualizationEngineSpec.js
1const { customMatchers } = require( "./TestUtils" );2const Visualization = require( "../build/Visualization.js" ).default;3const Mock = require( "./Mock.js" );4describe( "Visualization Integration Test", () => {5 let WebGLRenderer;6 let element;7 let renderMethod;8 9 beforeAll( () => {10 jasmine.addMatchers( customMatchers );11 global.document = {};12 global.window = {13 devicePixelRatio: 114 };15 renderMethod = jasmine.createSpy( "WebGLRenderer.render" );16 WebGLRenderer = spyOn( THREE, "WebGLRenderer" ).and.returnValue( {17 setPixelRatio: jasmine.createSpy( "WebGLRenderer.setPixelRatio" ),18 setSize: jasmine.createSpy( "WebGLRenderer.setSize" ),19 render: renderMethod,20 domElement: jasmine.createSpyObj( "domElement", [ "addEventListener" ] ),21 clear: jasmine.createSpy( "WebGLRenderer.clear" ),22 dispose: jasmine.createSpy( "WebGLRenderer.dispose" )23 } );24 element = jasmine.createSpyObj( "element", [ "appendChild" ] );25 } );26 27 afterAll( () => {28 global.document = undefined;29 global.window = undefined;30 } );31 it( "renders one drawable", () => {32 global.document.body = element;33 let visualization = new Visualization( null, {34 blocks: [ Mock.Rect1 ],35 drawables: [ Mock.Rect1.id ]36 } );37 visualization.render();38 expect( visualization.scene.children.length ).toBe( 1 );39 assertRectangleSize( visualization.scene.children[ 0 ], 10, 20 );40 } );41 it( "does not render disabled drawables", () => {42 let visualization = new Visualization( null, {43 blocks: [ Mock.Rect3 ],44 drawables: [ Mock.Rect3.id ]45 }, element );46 visualization.render();47 expect( visualization.scene.children.length ).toBe( 0 );48 } );49 50 it( "resolves input from other block", () => {51 let visualization = new Visualization( null, {52 blocks: [ Mock.Rect2, Mock.Arithmetic1 ],53 drawables: [ Mock.Rect2.id ]54 }, element );55 visualization.render();56 expect( visualization.scene.children.length ).toBe( 1 );57 assertRectangleSize( visualization.scene.children[ 0 ], 30, 40 );58 } );59 it( "renders multiple visualizations", () => {60 let visualization1 = new Visualization( null, {61 blocks: [ Mock.Rect1 ],62 drawables: [ Mock.Rect1.id ]63 }, element );64 visualization1.render();65 expect( visualization1.scene.children.length ).toBe( 1 );66 assertRectangleSize( visualization1.scene.children[ 0 ], 10, 20 );67 68 let visualization2 = new Visualization( null, {69 blocks: [ Mock.Rect2, Mock.Arithmetic1 ],70 drawables: [ Mock.Rect2.id ]71 }, element );72 visualization2.render();73 expect( visualization2.scene.children.length ).toBe( 1 );74 assertRectangleSize( visualization2.scene.children[ 0 ], 30, 40 );75 } );76 it( "resolves published inputs and outputs on macro block", () => {77 let visualization = new Visualization( null, {78 blocks: [ Mock.Rect4, Mock.AreaAndCircumference, Mock.Number10 ],79 drawables: [ Mock.Rect4.id ]80 }, element );81 visualization.render();82 expect( visualization.scene.children.length ).toBe( 1 );83 assertRectangleSize( visualization.scene.children[ 0 ], Math.PI * Math.pow( 10, 2 ), 2 * Math.PI * 10 );84 } );85 it( "macro block initializes broadcast ", () => {86 let testPubSub = {87 publish( name, message ) {88 // do nothing89 }90 };91 Visualization.setPubSub( testPubSub );92 spyOn( testPubSub, "publish" );93 let visualization = new Visualization( null, {94 blocks: [ Mock.Macro1, Mock.Rect1 ],95 drawables: [ Mock.Rect1.id ],96 leafs: [ Mock.Macro1.id ]97 }, element );98 visualization.render();99 expect( testPubSub.publish.calls.count() ).toBe( 1 );100 expect( testPubSub.publish ).toHaveBeenCalledWith( "TestEvent", { test: "pass" } );101 } );102 it( "visualization initializes broadcast ", () => {103 let testPubSub = {104 publish( name, message ) {105 // do nothing106 }107 };108 Visualization.setPubSub( testPubSub );109 spyOn( testPubSub, "publish" );110 let visualization = new Visualization( null, {111 blocks: [ Mock.EventBroadcast1 ],112 leafs: [ Mock.EventBroadcast1.id ]113 }, element );114 visualization.render();115 expect( testPubSub.publish.calls.count() ).toBe( 1 );116 expect( testPubSub.publish ).toHaveBeenCalledWith( "TestEvent", { test: "pass" } );117 } );118 it( "resolves double-published inputs and outputs on macro block", () => {119 let visualization = new Visualization( null, {120 blocks: [ Mock.Rect5, Mock.NestedCircumference, Mock.Number10 ],121 drawables: [ Mock.Rect5.id ]122 }, element );123 visualization.render();124 expect( visualization.scene.children.length ).toBe( 1 );125 assertRectangleSize( visualization.scene.children[ 0 ], 10, 2 * Math.PI * 10 );126 } );127 128 it( "renders two drawables", () => {129 let visualization = new Visualization( null, {130 blocks: [131 Mock.Arithmetic1,132 Mock.Rect2,133 Mock.Rect1134 ],135 drawables: [136 Mock.Rect1.id,137 Mock.Rect2.id138 ]139 }, element );140 visualization.render();141 expect( visualization.scene.children.length ).toBe( 2 );142 assertRectangleSize( visualization.scene.children[ 0 ], 10, 20 );143 assertRectangleSize( visualization.scene.children[ 1 ], 30, 40 );144 } );145 146 it( "renders all drawables at the root level and inside a drawable macro block", () => {147 let visualization = new Visualization( null, {148 blocks: [149 Mock.Arithmetic1,150 Mock.Rect1,151 Mock.Rect2,152 Mock.MacroDrawable153 ],154 drawables: [155 Mock.Rect2.id,156 Mock.MacroDrawable.id,157 Mock.Rect1.id158 ]159 }, element );160 visualization.render();161 expect( visualization.scene.children.length ).toBe( 4 );162 assertRectangleSize( visualization.scene.children[ 0 ], 30, 40 );163 assertRectangleSize( visualization.scene.children[ 1 ], 30, 50 );164 assertRectangleSize( visualization.scene.children[ 2 ], 70, 60 );165 assertRectangleSize( visualization.scene.children[ 3 ], 10, 20 );166 } );167 168 it( "renders all drawables at the root level and repeats inside a drawable iterator block", () => {169 let visualization = new Visualization( null, {170 blocks: [171 Mock.Arithmetic1,172 Mock.Rect1,173 Mock.Rect2,174 Mock.IteratorDrawable175 ],176 drawables: [177 Mock.Rect2.id,178 Mock.IteratorDrawable.id,179 Mock.Rect1.id180 ]181 }, element );182 visualization.render();183 expect( visualization.scene.children.length ).toBe( 32 );184 assertRectangleSize( visualization.scene.children[ 0 ], 30, 40 );185 for( let i = 0; i < 10; i++ ) {186 let arithmetic1 = i * 30;187 let index = 1 + i * 3;188 assertRectangleSize( visualization.scene.children[ index ], 30, arithmetic1 );189 assertRectangleSize( visualization.scene.children[ index + 1 ], arithmetic1, 60 );190 assertRectangleSize( visualization.scene.children[ index + 2 ], i, 10 );191 }192 assertRectangleSize( visualization.scene.children[ 31 ], 10, 20 );193 } );194 it( "drawable iterator block does not throw error if count is negative", () => {195 let visualization = new Visualization( null, {196 blocks: [197 Mock.IteratorDrawable_1198 ],199 drawables: [200 Mock.IteratorDrawable_1.id201 ]202 }, element );203 visualization.render();204 expect( visualization.scene.children.length ).toBe( 0 );205 } );206 it( "resolves external inputs on visualization", () => {207 let visualization = new Visualization( null, {208 blocks: [ Mock.ExternalInput, Mock.Rect6 ],209 drawables: [ Mock.Rect6.id ]210 }, element );211 visualization.setInputValue( "Width", 25 );212 visualization.setInputValue( "Height", 35 );213 visualization.render();214 expect( visualization.scene.children.length ).toBe( 1 );215 assertRectangleSize( visualization.scene.children[ 0 ], 25, 35 );216 } );217 it( "sets Loading manager and calls the onload", () => {218 let renderCount = renderMethod.calls.count();219 let visualization = new Visualization( null, {220 blocks: [ Mock.Image1, Mock.Rect12 ],221 drawables: [ Mock.Rect12.id ]222 }, element );223 let loadHandler;224 let imageSpy = {225 addEventListener: jasmine.createSpy( "addEventListener" ).and.callFake( ( type, handler ) => {226 if( type === "load" ) {227 loadHandler = handler;228 }229 } ),230 removeEventListener: jasmine.createSpy( "removeEventListener" )231 };232 global.document.createElementNS = jasmine.createSpy( "createElementNS" ).and.returnValue( imageSpy );233 visualization.render();234 expect( visualization.scene.children.length ).toBe( 1 );235 expect( renderMethod.calls.count() ).toBe( renderCount + 1 );236 visualization.render();237 expect( renderMethod.calls.count() ).toBe( renderCount + 2 );238 loadHandler();239 expect( renderMethod.calls.count() ).toBe( renderCount + 3 );240 } );241 242 it( "interactions mousedown", () => {243 let objects = createRaycasterSpy();244 let renderCount = renderMethod.calls.count();245 let visualization = new Visualization( null, {246 blocks: [ Mock.Number1, Mock.Number2, Mock.BinarySwitch1, Mock.Interaction1, Mock.Rect7 ],247 drawables: [ Mock.Rect7.id ]248 }, element );249 visualization.render();250 expect( renderMethod.calls.count() ).toBe( renderCount + 1 );251 expect( visualization.scene.children.length ).toBe( 1 );252 assertRectangleSize( visualization.scene.children[ 0 ], 20, 20 );253 let eventHandler = visualization.eventHandler;254 expect( eventHandler ).toBeDefined();255 let mouseEvent = jasmine.createSpyObj( "MouseEvent", [ "preventDefault", "stopPropagation" ] );256 mouseEvent.target = visualization.renderer.domElement;257 mouseEvent.type = "mousedown";258 objects.push( { object: visualization.scene.children[ 0 ] } );259 eventHandler.handleEvent( mouseEvent );260 expect( renderMethod.calls.count() ).toBe( renderCount + 2 );261 assertRectangleSize( visualization.scene.children[ 0 ], 40, 40 );262 mouseEvent.type = "mouseup";263 spyOn( visualization.animationManager, "cancelFrame" ).and.callThrough();264 eventHandler.handleEvent( mouseEvent );265 expect( visualization.animationManager.cancelFrame ).toHaveBeenCalled();266 expect( renderMethod.calls.count() ).toBe( renderCount + 3 );267 assertRectangleSize( visualization.scene.children[ 0 ], 20, 20 );268 } );269 it( "interactions mouseover", () => {270 let objects = createRaycasterSpy();271 let renderCount = renderMethod.calls.count();272 let visualization = new Visualization( null, {273 blocks: [ Mock.Number1, Mock.Number2, Mock.BinarySwitch2, Mock.Interaction1, Mock.Rect8 ],274 drawables: [ Mock.Rect8.id ]275 }, element );276 visualization.render();277 expect( renderMethod.calls.count() ).toBe( renderCount + 1 );278 expect( visualization.scene.children.length ).toBe( 1 );279 assertRectangleSize( visualization.scene.children[ 0 ], 20, 20 );280 let eventHandler = visualization.eventHandler;281 expect( eventHandler ).toBeDefined();282 let mouseEvent = jasmine.createSpyObj( "MouseEvent", [ "preventDefault", "stopPropagation" ] );283 mouseEvent.target = visualization.renderer.domElement;284 mouseEvent.type = "mousemove";285 objects.push( { object: visualization.scene.children[ 0 ] } );286 eventHandler.handleEvent( mouseEvent );287 expect( renderMethod.calls.count() ).toBe( renderCount + 2 );288 assertRectangleSize( visualization.scene.children[ 0 ], 40, 40 );289 objects.pop();290 eventHandler.handleEvent( mouseEvent );291 expect( renderMethod.calls.count() ).toBe( renderCount + 3 );292 assertRectangleSize( visualization.scene.children[ 0 ], 20, 20 );293 } );294 it( "interactions mouseover two objects", () => {295 let objects = createRaycasterSpy();296 let renderCount = renderMethod.calls.count();297 let visualization = new Visualization( null, {298 blocks: [ Mock.Number1, Mock.Number2, Mock.BinarySwitch3, Mock.BinarySwitch2, Mock.Interaction1, Mock.Interaction2, Mock.Rect8, Mock.Rect9 ],299 drawables: [ Mock.Rect9.id, Mock.Rect8.id ]300 }, element );301 visualization.render();302 expect( renderMethod.calls.count() ).toBe( renderCount + 1 );303 expect( visualization.scene.children.length ).toBe( 2 );304 assertRectangleSize( visualization.scene.children[ 0 ], 20, 20 );305 assertRectangleSize( visualization.scene.children[ 1 ], 20, 20 );306 let eventHandler = visualization.eventHandler;307 expect( eventHandler ).toBeDefined();308 let mouseEvent = jasmine.createSpyObj( "MouseEvent", [ "preventDefault", "stopPropagation" ] );309 mouseEvent.target = visualization.renderer.domElement;310 mouseEvent.type = "mousemove";311 objects.push( { object: visualization.scene.children[ 1 ] } );312 eventHandler.handleEvent( mouseEvent );313 expect( renderMethod.calls.count() ).toBe( renderCount + 2 );314 assertRectangleSize( visualization.scene.children[ 1 ], 40, 40 );315 objects.pop();316 objects.push( { object: visualization.scene.children[ 0 ] } );317 eventHandler.handleEvent( mouseEvent );318 expect( renderMethod.calls.count() ).toBe( renderCount + 3 );319 assertRectangleSize( visualization.scene.children[ 0 ], 40, 40 );320 assertRectangleSize( visualization.scene.children[ 1 ], 20, 20 );321 } );322 it( "interactions mousedown in an iterator", () => {323 let objects = createRaycasterSpy();324 let renderCount = renderMethod.calls.count();325 let visualization = new Visualization( null, {326 blocks: [ Mock.Image1, Mock.Rect12, Mock.IteratorDrawable1 ],327 drawables: [ Mock.IteratorDrawable1.id, Mock.Rect12.id ]328 }, element );329 visualization.render();330 expect( renderMethod.calls.count() ).toBe( renderCount + 1 );331 expect( visualization.scene.children.length ).toBe( 11 );332 for( let i = 0; i < 10; i++ ) {333 let arithmetic = i * 25;334 assertRectangleSize( visualization.scene.children[ i ], arithmetic, 60 );335 }336 let eventHandler = visualization.eventHandler;337 expect( eventHandler ).toBeDefined();338 let mouseEvent = jasmine.createSpyObj( "MouseEvent", [ "preventDefault", "stopPropagation" ] );339 mouseEvent.target = visualization.renderer.domElement;340 mouseEvent.type = "mousedown";341 objects.push( { object: visualization.scene.children[ 5 ] } );342 eventHandler.handleEvent( mouseEvent );343 expect( renderMethod.calls.count() ).toBe( renderCount + 2 );344 for( let i = 0; i < 10; i++ ) {345 let arithmetic = i * 25;346 let value = 60;347 if( i === 5 ) {348 value = 100;349 }350 assertRectangleSize( visualization.scene.children[ i ], arithmetic, value );351 }352 mouseEvent.type = "mouseup";353 eventHandler.handleEvent( mouseEvent );354 expect( renderMethod.calls.count() ).toBe( renderCount + 3 );355 for( let i = 0; i < 10; i++ ) {356 let arithmetic = i * 25;357 assertRectangleSize( visualization.scene.children[ i ], arithmetic, 60 );358 }359 } );360 it( "interactions mousedown changes iteration count", () => {361 let objects = createRaycasterSpy();362 let renderCount = renderMethod.calls.count();363 let visualization = new Visualization( null, {364 blocks: [ Mock.Interaction1, Mock.BinarySwitch4, Mock.Rect10, Mock.IteratorDrawable2 ],365 drawables: [ Mock.Rect10.id, Mock.IteratorDrawable2.id ]366 }, element );367 visualization.render();368 expect( renderMethod.calls.count() ).toBe( renderCount + 1 );369 expect( visualization.scene.children.length ).toBe( 21 );370 assertRectangleSize( visualization.scene.children[ 0 ], 100, 100 );371 for( let i = 1; i < 21; i += 2 ) {372 assertRectangleSize( visualization.scene.children[ i ], 70, 60 );373 }374 let eventHandler = visualization.eventHandler;375 expect( eventHandler ).toBeDefined();376 let mouseEvent = jasmine.createSpyObj( "MouseEvent", [ "preventDefault", "stopPropagation" ] );377 mouseEvent.target = visualization.renderer.domElement;378 mouseEvent.type = "mousedown";379 objects.push( { object: visualization.scene.children[ 0 ] } );380 eventHandler.handleEvent( mouseEvent );381 expect( renderMethod.calls.count() ).toBe( renderCount + 2 );382 expect( visualization.scene.children.length ).toBe( 11 );383 assertRectangleSize( visualization.scene.children[ 0 ], 100, 100 );384 for( let i = 1; i < 11; i += 2 ) {385 assertRectangleSize( visualization.scene.children[ i ], 70, 60 );386 }387 mouseEvent.type = "mouseup";388 eventHandler.handleEvent( mouseEvent );389 expect( renderMethod.calls.count() ).toBe( renderCount + 3 );390 expect( visualization.scene.children.length ).toBe( 21 );391 assertRectangleSize( visualization.scene.children[ 0 ], 100, 100 );392 for( let i = 1; i < 21; i += 2 ) {393 assertRectangleSize( visualization.scene.children[ i ], 70, 60 );394 }395 } );396 it( "non-drawable iterator test", () => {397 let testPubSub = {398 publish( name, message ) {399 // do nothing400 }401 };402 Visualization.setPubSub( testPubSub );403 spyOn( testPubSub, "publish" );404 let visualization = new Visualization( null, {405 blocks: [ Mock.Number10, Mock.Iterator1, Mock.Rect11 ],406 drawables: [ Mock.Rect11.id ],407 leafs: [ Mock.Iterator1.id ]408 }, element );409 visualization.render();410 expect( visualization.scene.children.length ).toBe( 1 );411 assertRectangleSize( visualization.scene.children[ 0 ], 180, 90 );412 expect( testPubSub.publish.calls.count() ).toBe( 10 );413 expect( testPubSub.publish ).toHaveBeenCalledWith( "TestEvent", { test: "pass" } );414 } );415 it( "0 count non-drawable iterator test", () => {416 let visualization = new Visualization( null, {417 blocks: [ Mock.Number10, Mock.Iterator2, Mock.Rect11 ],418 drawables: [ Mock.Rect11.id ],419 leafs: [ Mock.Iterator1.id ]420 }, element );421 visualization.render();422 expect( visualization.scene.children.length ).toBe( 1 );423 assertRectangleSize( visualization.scene.children[ 0 ], 100, 100 );424 } );425} );426function createRaycasterSpy() {427 let objects = [];428 spyOn( THREE, "Raycaster" ).and.returnValue( {429 setFromCamera: jasmine.createSpy( "Raycaster.setFromCamera" ),430 intersectObjects: jasmine.createSpy( "Raycaster.intersectObjects" ).and.returnValue( objects )431 } );432 return objects;433}434function assertRectangleSize( rectangle, width, height ) {435 expect( rectangle.scale ).toEqualStruct( new THREE.Vector3( width, height, 1 ) );...
selector.spec.js
Source: selector.spec.js
...11describe('selectors', () => {12 tests.forEach(({ describeMethod, name, renderMethod }) => {13 describeMethod(name, () => {14 it('simple descendent', () => {15 const wrapper = renderMethod(<div>16 <div className="top-div">17 <span>inside top div</span>18 </div>19 <div className="bottom-div" />20 <span />21 </div>);22 expect(wrapper.find('span')).to.have.lengthOf(2);23 expect(wrapper.find('.top-div span')).to.have.lengthOf(1);24 });25 it('nested descendent', () => {26 const wrapper = renderMethod(<div>27 <div className="my-div">28 <h1>heading</h1>29 <div>30 <div className="my-div">31 <h1>heading</h1>32 </div>33 </div>34 </div>35 <h1>heading</h1>36 </div>);37 expect(wrapper.find('h1')).to.have.lengthOf(3);38 expect(wrapper.find('.my-div h1')).to.have.lengthOf(2);39 });40 it('deep descendent', () => {41 const wrapper = renderMethod(<div>42 <div>43 <div className="inner">44 <span>45 <div className="way-inner">46 <h1>heading</h1>47 </div>48 </span>49 </div>50 </div>51 <h1>heading</h1>52 </div>);53 expect(wrapper.find('h1')).to.have.lengthOf(2);54 expect(wrapper.find('div .inner span .way-inner h1')).to.have.lengthOf(1);55 });56 it('direct descendent', () => {57 const wrapper = renderMethod(<div>58 <div className="container">59 <div className="to-find">Direct</div>60 <div>61 <div className="to-find">Nested</div>62 </div>63 </div>64 <div className="to-find">Outside</div>65 </div>);66 expect(wrapper.find('.to-find')).to.have.lengthOf(3);67 const descendent = wrapper.find('.container > .to-find');68 expect(descendent).to.have.lengthOf(1);69 expect(descendent.text()).to.equal('Direct');70 });71 it('simple adjacent', () => {72 const wrapper = renderMethod(<div>73 <div className="to-find" />74 <div className="sibling">Adjacent</div>75 <div className="sibling">Not Adjacent</div>76 </div>);77 expect(wrapper.find('.sibling')).to.have.lengthOf(2);78 const toFind = wrapper.find('.to-find + .sibling');79 expect(toFind).to.have.lengthOf(1);80 expect(toFind.text()).to.equal('Adjacent');81 });82 it('simple adjacent with arrays', () => {83 const wrapper = renderMethod(<div>84 <div className="to-find" />85 {[<div key="0" className="sibling">Adjacent</div>]}86 </div>);87 const toFind = wrapper.find('.to-find + .sibling');88 expect(toFind).to.have.lengthOf(1);89 expect(toFind.text()).to.equal('Adjacent');90 });91 it('nested adjacent', () => {92 const wrapper = renderMethod(<div>93 <div className="to-find" />94 <div className="sibling">Adjacent</div>95 <div>96 <div className="sibling">Not Adjacent</div>97 <div>98 <div className="to-find" />99 <div className="sibling">Adjacent</div>100 </div>101 <div className="to-find">Not Adjacent</div>102 </div>103 </div>);104 expect(wrapper.find('.to-find')).to.have.lengthOf(3);105 const toFind = wrapper.find('.to-find + .sibling');106 expect(toFind).to.have.lengthOf(2);107 toFind.map(found => expect(found.text()).to.equal('Adjacent'));108 });109 it('simple general siblings', () => {110 const wrapper = renderMethod(<div>111 <span className="to-find" />112 <span />113 <span />114 <span />115 <div>116 <span />117 </div>118 </div>);119 expect(wrapper.find('.to-find ~ span')).to.have.lengthOf(3);120 });121 it('nested general siblings', () => {122 const wrapper = renderMethod(<div>123 <span>Top</span>124 <span />125 <span />126 <div>127 <div>128 <span>Top</span>129 <span />130 <span />131 </div>132 </div>133 </div>);134 const spans = wrapper.find('span');135 const siblings = wrapper.find('span ~ span');136 expect(spans.length - 2).to.equal(siblings.length);137 siblings.map(sibling => expect(sibling.text()).to.not.equal('Top'));138 });139 it('throws for complex selectors in simple selector methods', () => {140 const wrapper = renderMethod(<div className="foo" />);141 ['is', 'filter', 'not', 'every'].forEach((method) => {142 expect(() => wrapper[method]('.foo + div')).to.throw(143 TypeError,144 'This method does not support complex CSS selectors',145 );146 });147 });148 it('throws for pseudo-element selectors', () => {149 const wrapper = renderMethod(<div className="foo" />);150 expect(() => wrapper.find('div::after')).to.throw('Enzyme::Selector does not support the "after" pseudo-element or pseudo-class selectors.');151 });152 it('throws for pseudo-class selectors', () => {153 const wrapper = renderMethod(<div className="foo" />);154 expect(() => wrapper.find('div:hover')).to.throw('Enzyme::Selector does not support the "hover" pseudo-element or pseudo-class selectors.');155 });156 it('.foo + div > span', () => {157 const wrapper = renderMethod(<div>158 <div className="foo" />159 <div>160 <span />161 </div>162 <div>163 <span />164 </div>165 </div>);166 expect(wrapper.find('.foo + div > span')).to.have.lengthOf(1);167 });168 it('.foo + .foo + .foo', () => {169 const wrapper = renderMethod(<div>170 <div className="foo">foo1</div>171 <div className="foo">foo2</div>172 <div className="foo">foo3</div>173 </div>);174 expect(wrapper.find('.foo + .foo')).to.have.lengthOf(2);175 expect(wrapper.find('.foo + .foo').at(0).text()).to.equal('foo2');176 expect(wrapper.find('.foo + .foo').at(1).text()).to.equal('foo3');177 expect(wrapper.find('.foo + .foo + .foo')).to.have.lengthOf(1);178 });179 it('attribute names with numbers', () => {180 const wrapper = renderMethod(<div>181 <div data-foo-1={1} />182 <div data-foo-1={1} />183 <div data-foo-2={2} />184 <div data-foo-2="2" />185 </div>);186 expect(wrapper.find('[data-foo-1=1]')).to.have.lengthOf(2);187 expect(wrapper.find('[data-foo-1="1"]')).to.have.lengthOf(0);188 expect(wrapper.find('[data-foo-2=2]')).to.have.lengthOf(1);189 expect(wrapper.find('[data-foo-2="2"]')).to.have.lengthOf(1);190 });191 it('hyphens', () => {192 const wrapper = renderMethod(<div>193 <div className="-foo" />194 <div className="foo- -bar-" type="foo" />195 <div id="bar" className="-foo" />196 <span className="-foo" />197 </div>);198 expect(wrapper.find('.-foo')).to.have.lengthOf(3);199 expect(wrapper.find('.foo-')).to.have.lengthOf(1);200 expect(wrapper.find('[type="foo"].foo-')).to.have.lengthOf(1);201 expect(wrapper.find('.foo-.-bar-')).to.have.lengthOf(1);202 expect(wrapper.find('div.foo-')).to.have.lengthOf(1);203 expect(wrapper.find('div.-foo')).to.have.lengthOf(2);204 expect(wrapper.find('#bar.-foo')).to.have.lengthOf(1);205 });206 it('hyphens', () => {207 const wrapper = renderMethod(<div>208 <div className="-foo" />209 <div className="foo- -bar-" type="foo" />210 <div id="bar" className="-foo" />211 <span className="-foo" />212 </div>);213 expect(wrapper.find('.-foo')).to.have.lengthOf(3);214 expect(wrapper.find('.foo-')).to.have.lengthOf(1);215 expect(wrapper.find('[type="foo"].foo-')).to.have.lengthOf(1);216 expect(wrapper.find('.foo-.-bar-')).to.have.lengthOf(1);217 expect(wrapper.find('div.foo-')).to.have.lengthOf(1);218 expect(wrapper.find('div.-foo')).to.have.lengthOf(2);219 expect(wrapper.find('#bar.-foo')).to.have.lengthOf(1);220 });221 it('spaces in attribute values', () => {222 const wrapper = renderMethod(<div>223 <div type="foo bar" />224 <div type="foo.bar" />225 <div type="foobar" />226 </div>);227 expect(wrapper.find('[type="foo bar"]')).to.have.lengthOf(1);228 });229 it('dots in attribute values', () => {230 const wrapper = renderMethod(<div>231 <div type="foo.bar" />232 <div type="foo bar" />233 <div type="foobar" />234 </div>);235 expect(wrapper.find('[type="foo.bar"]')).to.have.lengthOf(1);236 });237 it('brackets in attribute values', () => {238 const wrapper = renderMethod(<div>239 <div type="foo[1]" />240 </div>);241 expect(wrapper.find('[type="foo[1]"]')).to.have.lengthOf(1);242 });243 it('URLs in attribute values', () => {244 const wrapper = renderMethod(<div>245 <a href="https://www.foo.com" />246 <a href="foo.com" />247 </div>);248 expect(wrapper.find('a[href="https://www.foo.com"]')).to.have.lengthOf(1);249 expect(wrapper.find('a[href="foo.com"]')).to.have.lengthOf(1);250 });251 it('parens in displayName', () => {252 class Foo extends Component {253 render() {254 return <div />;255 }256 }257 Foo.displayName = 'Wrapped(Foo)';258 class Bar extends Component {259 render() {260 return <div />;261 }262 }263 Bar.displayName = 'Wrapped(Twice(Bar))';264 const wrapper = renderMethod(<div>265 <Foo />266 <Bar />267 </div>);268 expect(wrapper.find('Wrapped(Foo)')).to.have.lengthOf(1);269 expect(wrapper.find('Wrapped(Twice(Bar))')).to.have.lengthOf(1);270 });271 });272 });...
shared.base.js
Source: shared.base.js
...16 const tests = [17 {18 name: "card default state",19 test: () => {20 const output = renderMethod(21 <Card {...props}>22 <Text>A card</Text>23 </Card>24 );25 expect(output).toMatchSnapshot();26 }27 },28 {29 name: "pass an empty state to the image component",30 test: () => {31 const output = renderMethod(32 <Card {...props} imageUri={null}>33 <Text>A card with an empty image</Text>34 </Card>35 );36 expect(output).toMatchSnapshot();37 }38 },39 {40 name: "card without an image when showImage is false",41 test: () => {42 const output = renderMethod(43 <Card {...props} showImage={false}>44 <Text>No image</Text>45 </Card>46 );47 expect(output).toMatchSnapshot();48 }49 },50 {51 name: "pass an empty state to the image component when the uri is null",52 test: () => {53 const output = renderMethod(54 <Card {...props} imageUri={null}>55 <Text>No URI</Text>56 </Card>57 );58 expect(output).toMatchSnapshot();59 }60 },61 {62 name: "card with reversed layout",63 test: () => {64 const output = renderMethod(65 <Card {...props} isReversed>66 <Text>A card in reverse</Text>67 </Card>68 );69 expect(output).toMatchSnapshot();70 }71 },72 {73 name: "card with reversed layout and no image",74 test: () => {75 const output = renderMethod(76 <Card {...props} isReversed showImage={false}>77 <Text>A card in reverse with no image</Text>78 </Card>79 );80 expect(output).toMatchSnapshot();81 }82 },83 {84 name: "card with a loading state",85 test: () => {86 const output = renderMethod(87 <Card {...props} isLoading>88 <Text>Loading state</Text>89 </Card>90 );91 expect(output).toMatchSnapshot();92 }93 },94 {95 name: "card with a loading state and no image",96 test: () => {97 const output = renderMethod(98 <Card {...props} isLoading showImage={false}>99 <Text>Loading with no image</Text>100 </Card>101 );102 expect(output).toMatchSnapshot();103 }104 },105 {106 name: "card with reversed loading state",107 test: () => {108 const output = renderMethod(109 <Card {...props} isLoading isReversed>110 <Text>Loading in reverse</Text>111 </Card>112 );113 expect(output).toMatchSnapshot();114 }115 },116 {117 name: "card with reversed loading state with no image",118 test: () => {119 const output = renderMethod(120 <Card {...props} isLoading isReversed showImage={false}>121 <Text>Loading in reverse with no image</Text>122 </Card>123 );124 expect(output).toMatchSnapshot();125 }126 },127 {128 name: "card should not re-render when imageRatio prop is changed",129 test: () => {130 const testInstance = TestRenderer.create(131 <Card {...props}>132 <Text>Do not re-render me</Text>133 </Card>...
ComplexSelector-spec.js
Source: ComplexSelector-spec.js
...20describe('ComplexSelector', () => {21 tests.forEach(({ describeMethod, name, renderMethod }) => {22 describeMethod(name, () => {23 it('simple descendent', () => {24 const wrapper = renderMethod(25 <div>26 <div className="top-div">27 <span>inside top div</span>28 </div>29 <div className="bottom-div"></div>30 <span />31 </div>32 );33 expect(wrapper.find('span').length).to.equal(2);34 expect(wrapper.find('.top-div span').length).to.equal(1);35 });36 it('nested descendent', () => {37 const wrapper = renderMethod(38 <div>39 <div className="my-div">40 <h1 />41 <div>42 <div className="my-div">43 <h1 />44 </div>45 </div>46 </div>47 <h1 />48 </div>49 );50 expect(wrapper.find('h1').length).to.equal(3);51 expect(wrapper.find('.my-div h1').length).to.equal(2);52 });53 it('deep descendent', () => {54 const wrapper = renderMethod(55 <div>56 <div>57 <div className="inner">58 <span>59 <div className="way-inner">60 <h1 />61 </div>62 </span>63 </div>64 </div>65 <h1 />66 </div>67 );68 expect(wrapper.find('h1').length).to.equal(2);69 expect(wrapper.find('div .inner span .way-inner h1').length).to.equal(1);70 });71 it('direct descendent', () => {72 const wrapper = renderMethod(73 <div>74 <div className="container">75 <div className="to-find">Direct</div>76 <div>77 <div className="to-find">Nested</div>78 </div>79 </div>80 <div className="to-find">Outside</div>81 </div>82 );83 expect(wrapper.find('.to-find').length).to.equal(3);84 const descendent = wrapper.find('.container > .to-find');85 expect(descendent.length).to.equal(1);86 expect(descendent.text()).to.equal('Direct');87 });88 it('simple adjacent', () => {89 const wrapper = renderMethod(90 <div>91 <div className="to-find" />92 <div className="sibling">Adjacent</div>93 <div className="sibling">Not Adjacent</div>94 </div>95 );96 expect(wrapper.find('.sibling').length).to.equal(2);97 const toFind = wrapper.find('.to-find + .sibling');98 expect(toFind.length).to.equal(1);99 expect(toFind.text()).to.equal('Adjacent');100 });101 it('nested adjacent', () => {102 const wrapper = renderMethod(103 <div>104 <div className="to-find" />105 <div className="sibling">Adjacent</div>106 <div>107 <div className="sibling">Not Adjacent</div>108 <div>109 <div className="to-find" />110 <div className="sibling">Adjacent</div>111 </div>112 <div className="to-find">Not Adjacent</div>113 </div>114 </div>115 );116 expect(wrapper.find('.to-find').length).to.equal(3);117 const toFind = wrapper.find('.to-find + .sibling');118 expect(toFind.length).to.equal(2);119 toFind.map(found => expect(found.text()).to.equal('Adjacent'));120 });121 it('simple general siblings', () => {122 const wrapper = renderMethod(123 <div>124 <span className="to-find" />125 <span />126 <span />127 <span />128 <div>129 <span />130 </div>131 </div>132 );133 expect(wrapper.find('.to-find ~ span').length).to.equal(3);134 });135 it('nested general siblings', () => {136 const wrapper = renderMethod(137 <div>138 <span>Top</span>139 <span />140 <span />141 <div>142 <div>143 <span>Top</span>144 <span />145 <span />146 </div>147 </div>148 </div>149 );150 const spans = wrapper.find('span');151 const siblings = wrapper.find('span ~ span');152 expect(spans.length - 2).to.equal(siblings.length);153 siblings.map(sibling => expect(sibling.text()).to.not.equal('Top'));154 });155 it('.foo + div > span', () => {156 const wrapper = renderMethod(157 <div>158 <div className="foo" />159 <div>160 <span />161 </div>162 <div>163 <span />164 </div>165 </div>166 );167 expect(wrapper.find('.foo + div > span').length).to.equal(1);168 });169 });170 });...
HierarchySelector.test.js
Source: HierarchySelector.test.js
1import React from 'react'2import renderer from 'react-test-renderer'3import { mount } from 'enzyme'4import renderIf from 'render-if'5import { wrapWithMaterialUIContext } from 'utilities/wrapWithContext'6import { HierarchySelector } from '../HierarchySelector'7import { nestedOptions, renderMethod } from '../Example'8const initialValue = {9 continent: 'northAmerica',10 country: 'usa',11 state: 'texas'12}13describe('<HierarchySelector />', () => {14 test('should render nested options properly', () => {15 const tree = renderer.create(16 <HierarchySelector17 name="AutoSelect Field"18 options={nestedOptions}19 width={200}20 optionStyleProps={{ rowHeight: 40, optionsMinHeight: 200 }}21 serializeOption={(o) => o.hierarchy}22 value={initialValue}23 renderMethod={renderMethod}24 />,25 )26 expect(tree).toMatchSnapshot()27 })28 test('should filter options available based on entered text', () => {29 const tree = mount(30 <HierarchySelector31 name="AutoSelect Field"32 options={nestedOptions}33 width={200}34 optionStyleProps={{ rowHeight: 40, optionsMinHeight: 200 }}35 value={initialValue}36 serializeOption={(o) => o.hierarchy}37 renderMethod={renderMethod}38 />,39 )40 expect(tree.state('filteredOptions')).toEqual(tree.state('flattenedOptions'))41 tree.find('AutoSelect').prop('onChange')('Te')42 expect(tree.state('filteredOptions')).toMatchSnapshot()43 })44 test('should show blank value when props value is undefined', () => {45 const tree = mount(46 <HierarchySelector47 name="AutoSelect Field"48 options={nestedOptions}49 width={200}50 optionStyleProps={{ rowHeight: 40, optionsMinHeight: 200 }}51 value={null}52 serializeOption={(o) => o.hierarchy}53 renderMethod={renderMethod}54 />,55 )56 expect(tree.state('selectedValue')).toBe(null)57 })58 test('should show proper value when props value is valid hierarchy', () => {59 const tree = mount(60 <HierarchySelector61 name="AutoSelect Field"62 options={nestedOptions}63 width={200}64 optionStyleProps={{ rowHeight: 40, optionsMinHeight: 200 }}65 value={initialValue}66 serializeOption={(o) => o.hierarchy}67 renderMethod={renderMethod}68 />,69 )70 expect(tree.state('selectedValue')).toBe('North America - USA - Texas')71 })72 test('should save selected value when value is selected from dropdown', () => {73 const tree = mount(74 <HierarchySelector75 name="AutoSelect Field"76 options={nestedOptions}77 width={200}78 optionStyleProps={{ rowHeight: 40, optionsMinHeight: 200 }}79 value={initialValue}80 serializeOption={(o) => o.hierarchy}81 renderMethod={renderMethod}82 />,83 )84 tree.find('AutoSelect').prop('onChange')('Te')85 tree.find('AutoSelect').prop('onChange')(tree.state('filteredOptions')[0])86 expect(tree.state('selectedValue')).toMatchSnapshot()87 })88 test('should select the correct hierarchy on selecting the option', () => {89 const selectedOption = {90 id: 'waterloo',91 label: 'Waterloo',92 level: 'state',93 hierarchy: {94 continent: 'europe',95 country: 'belgium',96 state: 'waterloo'97 },98 path: ['Europe', 'Belgium', 'Waterloo'],99 }100 const tree = mount(101 <HierarchySelector102 name="AutoSelect Field"103 options={nestedOptions}104 width={200}105 optionStyleProps={{ rowHeight: 40, optionsMinHeight: 200 }}106 value={initialValue}107 serializeOption={(o) => o.hierarchy}108 renderMethod={renderMethod}109 />,110 )111 tree.find('AutoSelect').prop('onChange')(selectedOption)112 expect(tree.state('selectedValue')).toBe('Europe - Belgium - Waterloo')113 })...
chartConfigs.js
Source: chartConfigs.js
1var hcWrapper = hcWrapper || {};2hcWrapper.chartConfigs = hcWrapper.chartConfigs || [3 {4 method : "Line Chart",5 renderMethod : "Cartesian",6 config : {7 chart : {8 type : "line",9 zoomType : "x"10 },11 title: {text : "Line Chart"}12 }13 },{14 method : "Spline Chart",15 renderMethod : "Cartesian",16 config : {17 chart : {18 type : "spline",19 zoomType : "x"20 },21 title: {text : "Spline Chart"}22 }23 },{24 method : "Area Chart",25 renderMethod : "Cartesian",26 config : {27 chart : {28 type : "area",29 zoomType : "x"30 },31 title: {text : "Area Chart"}32 }33 },{34 method : "Stacked Area Chart",35 renderMethod : "Cartesian",36 config : {37 chart : {38 type : "area",39 zoomType : "x"40 },41 title: {text : "Stacked Area Chart"},42 plotOptions : {43 series : {44 stacking : "normal"45 }46 }47 48 }49 },{50 method : "Stacked Area Chart - 100%",51 renderMethod : "Cartesian",52 config : {53 chart : {54 type : "area",55 zoomType : "x"56 },57 title: {text : "Stacked Area Chart - 100%"},58 plotOptions : {59 series : {60 stacking : "percent"61 }62 }63 64 }65 },{66 method : "Bar Chart",67 renderMethod : "Cartesian",68 config : {69 chart : {70 type : "bar",71 zoomType : "y"72 },73 title: {text : "Bar Chart"}74 }75 },{76 method : "Stacked Bar Chart",77 renderMethod : "Cartesian",78 config : {79 chart : {80 type : "bar",81 zoomType : "y"82 },83 title: {text : "Stacked Bar Chart"},84 plotOptions : {85 series : {86 stacking : "normal"87 }88 }89 90 }91 },{92 method : "Stacked Bar Chart - 100%",93 renderMethod : "Cartesian",94 config : {95 chart : {96 type : "bar",97 zoomType : "y"98 },99 title: {text : "Stacked Bar Chart - 100%"},100 plotOptions : {101 series : {102 stacking : "percent"103 }104 }105 106 }107 },{108 method : "Column Chart",109 renderMethod : "Cartesian",110 config : {111 chart : {112 type : "column",113 zoomType : "x"114 },115 title: {text : "Column Chart"}116 }117 },{118 method : "Stacked Column Chart",119 renderMethod : "Cartesian",120 config : {121 chart : {122 type : "column",123 zoomType : "x"124 },125 title: {text : "Stacked Column Chart"},126 plotOptions : {127 series : {128 stacking : "normal"129 }130 }131 132 }133 },{134 method : "Stacked Column Chart - 100%",135 renderMethod : "Cartesian",136 config : {137 chart : {138 type : "column",139 zoomType : "x"140 },141 title: {text : "Stacked Column Chart - 100%"},142 plotOptions : {143 series : {144 stacking : "percent"145 }146 }147 148 }149 },{150 method : "Scatter Chart",151 renderMethod : "Cartesian",152 config : {153 chart : {154 type : "scatter",155 zoomType : "xy"156 },157 title: {text : "Scatter Chart"},158 plotOptions : {159 scatter : {160 marker : {161 radius : 5162 },163 tooltip: {164 headerFormat: '<b>{series.name}</b><br>',165 pointFormat: '{point.x}, {point.y}'166 }167 } 168 },169 xAxis : {170 title : {171 text : "x"172 }173 },174 yAxis : {175 title : {176 text : "y"177 }178 }179 }180 },{181 method : "Bubble Chart",182 renderMethod : "Cartesian",183 config : {184 chart : {185 type : "bubble",186 zoomType : "xy"187 },188 title: {text : "Bubble Chart"},189 plotOptions : {190 bubble : {191 tooltip: {192 headerFormat: '<b>{series.name}</b><br>',193 pointFormat: '{point.x}, {point.y}'194 }195 } 196 },197 xAxis : {198 title : {199 text : "x"200 }201 },202 yAxis : {203 title : {204 text : "y"205 }206 }207 }208 },{209 method : "JSON Dump",210 renderMethod : "JSON Dump",211 config : {}212 }...
pageination.js
Source: pageination.js
...44 }45 }46 render(){47 if(this.array.length <= this.pageLimit){48 return this.renderMethod(this.array);49 }else{50 const items = this.renderMethod(this.state.currentArray);51 return <div>52 {items}53 <center>54 <button type="button" onClick={() => this.shift(-1)}>Prev</button>55 <button type="button" onClick={() => this.shift(1)}>Next</button>56 </center>57 58 </div>59 }60 }61}62Pageination.propTypes = {63 pageLimit: PropTypes.number.isRequired,64 array: PropTypes.array.isRequired,...
color-common.js
Source: color-common.js
1function generateScript(renderMethod) {2 var testScript = function() {3 var box = Crafty.e('2D, $renderMethod')4 .attr({ x: 0, y: 0, w: 320, h: 240 });5 function initial() {6 box.addComponent('Color');7 signalBarrier('initial');8 }9 function opaque() {10 box.color('rgb(0, 255, 0)');11 signalBarrier('opaque');12 }13 function transparent() {14 box.color('rgba(0, 0, 255, 0.5)');15 signalBarrier('transparent');16 }17 waitBarrier('initial', initial);18 waitBarrier('opaque', opaque);19 waitBarrier('transparent', transparent);20 };21 return testScript.toString().replace('$renderMethod', renderMethod);22}23module.exports = function(QUnit, browser, renderMethod) {24 QUnit.test("Color - " + renderMethod, function(assert) {25 return browser26 .testUrl(generateScript(renderMethod))27 .signalBarrier('initial').waitBarrier('initial').assertResemble('color-initial')28 .signalBarrier('opaque').waitBarrier('opaque').assertResemble('color-opaque')29 .signalBarrier('transparent').waitBarrier('transparent').assertResemble('color-transparent');30 });...
Using AI Code Generation
1const { renderMethod } = require('playwright/lib/server/supplements/recorder/recorderSupplement');2const { renderMethod } = require('playwright/lib/server/supplements/recorder/recorderSupplement');3const { renderMethod } = require('playwright/lib/server/supplements/recorder/recorderSupplement');4const { renderMethod } = require('playwright/lib/server/supplements/recorder/recorderSupplement');5const { renderMethod } = require('playwright/lib/server/supplements/recorder/recorderSupplement');6const { renderMethod } = require('playwright/lib/server/supplements/recorder/recorderSupplement');7const { renderMethod } = require('playwright/lib/server/supplements/recorder/recorderSupplement');8const { renderMethod } = require('playwright/lib/server/supplements/recorder/recorderSupplement');9const { renderMethod } = require('playwright/lib/server/supplements/recorder/recorderSupplement');10const { renderMethod } = require('playwright/lib/server/supplements/recorder/recorderSupplement');11const { renderMethod } = require('playwright/lib/server/supplements/recorder/recorderSupplement');12const { renderMethod } = require('playwright/lib/server/supplements/recorder/recorderSupplement');13const { renderMethod } = require('playwright/lib/server/supplements/recorder/recorderSupplement');14const { renderMethod } = require('playwright/lib/server/supplements/recorder/recorderSupplement');15const { renderMethod } = require
Using AI Code Generation
1import { renderMethod } from 'playwright-core/lib/server/chromium/crPage';2import { renderMethod } from 'playwright-core/lib/server/chromium/crPage';3import { renderMethod } from 'playwright/lib/server/chromium/crPage';4const { chromium } = require('playwright');5(async () => {6 const browser = await chromium.launch();7 const page = await browser.newPage();8 await page.renderMethod('google.pdf', {9 margin: { top: '10px', right: '20px', bottom: '30px', left: '40px' },10 });11 await browser.close();12})();13const { chromium } = require('playwright-core');14(async () => {15 const browser = await chromium.launch();16 const page = await browser.newPage();17 await page.renderMethod('google.pdf', {18 margin: { top: '10px', right: '20px', bottom: '30px', left: '40px' },19 });20 await browser.close();21})();22const { chromium } = require('playwright-core/lib/server/chromium/crPage');
Using AI Code Generation
1const { renderMethod } = require('playwright-core/lib/server/chromium/crPage');2const { Page } = require('playwright-core/lib/server/chromium/crPage');3const { renderMethod } = require('playwright-core/lib/server/chromium/crPage');4const { Page } = require('playwright-core/lib/server/chromium/crPage');5const { renderMethod } = require('playwright-core/lib/server/chromium/crPage');6const { Page } = require('playwright-core/lib/server/chromium/crPage');7const { renderMethod } = require('playwright-core/lib/server/chromium/crPage');8const { Page } = require('playwright-core/lib/server/chromium/crPage');9const { renderMethod } = require('playwright-core/lib/server/chromium/crPage');10const { Page } = require('playwright-core/lib/server/chromium/crPage');11const { renderMethod } = require('playwright-core/lib/server/chromium/crPage');12const { Page } = require('playwright-core/lib/server/chromium/crPage');13const { renderMethod } = require('playwright-core/lib/server/chromium/crPage');14const { Page } = require('playwright-core/lib/server/chromium/crPage');15const { renderMethod } = require('playwright-core/lib/server/chromium/crPage');16const { Page } = require('playwright-core/lib/server/chromium/crPage');17const { renderMethod } = require('playwright-core/lib/server/chromium/crPage');18const { Page } = require('playwright-core/lib/server/chromium/crPage');19const { renderMethod } = require('playwright-core/lib/server/chromium/crPage');20const { Page } = require('playwright-core/lib/server/chromium/crPage');
Using AI Code Generation
1const { renderMethod } = require('playwright/lib/server/chromium/crPage');2const { chromium } = require('playwright');3(async () => {4 const browser = await chromium.launch();5 const context = await browser.newContext();6 const page = await context.newPage();7 const html = await renderMethod(page);8 console.log(html);9 await browser.close();10})();
Using AI Code Generation
1const { renderMethod } = require('playwright/lib/page');2const { Page } = require('playwright/lib/server/page');3const { PageProxy } = require('playwright/lib/client/pageProxy');4const { renderMethod } = require('playwright/lib/page');5const { Page } = require('playwright/lib/server/page');6const { PageProxy } = require('playwright/lib/client/pageProxy');7const { renderMethod } = require('playwright/lib/page');8const { Page } = require('playwright/lib/server/page');9const { PageProxy } = require('playwright/lib/client/pageProxy');10const { renderMethod } = require('playwright/lib/page');11const { Page } = require('playwright/lib/server/page');12const { PageProxy } = require('playwright/lib/client/pageProxy');13const { renderMethod } = require('playwright/lib/page');14const { Page } = require('playwright/lib/server/page');15const { PageProxy } = require('playwright/lib/client/pageProxy');16const { renderMethod } = require('playwright/lib/page');17const { Page } = require('playwright/lib/server/page');18const { PageProxy } = require('playwright/lib/client/pageProxy');19const { renderMethod } = require('playwright/lib/page');20const { Page } = require('playwright/lib/server/page');21const { PageProxy } = require('playwright/lib/client/pageProxy');22const { renderMethod } = require('playwright/lib/page');23const { Page } = require('playwright/lib/server/page');24const { PageProxy } = require('playwright/lib/client/pageProxy');25const { renderMethod } = require('playwright/lib/page');26const { Page } = require('playwright/lib/server/page');27const { PageProxy } = require('playwright/lib/client/pageProxy');
Using AI Code Generation
1const { renderMethod } = require('playwright');2renderMethod('page', 'render', async function (options = {}) {3 return await this._delegate.render(options);4});5const { renderMethod } = require('playwright');6renderMethod('page', 'render', async function (options = {}) {7 return await this._delegate.render(options);8});9const { renderMethod } = require('playwright');10renderMethod('page', 'render', async function (options = {}) {11 return await this._delegate.render(options);12});13const { renderMethod } = require('playwright');14renderMethod('page', 'render', async function (options = {}) {15 return await this._delegate.render(options);16});17const { renderMethod } = require('playwright');18renderMethod('page', 'render', async function (options = {}) {19 return await this._delegate.render(options);20});21const { renderMethod } = require('playwright');22renderMethod('page', 'render', async function (options = {}) {23 return await this._delegate.render(options);24});25const { renderMethod } = require('playwright');26renderMethod('page', 'render', async function (options = {}) {27 return await this._delegate.render(options);28});29const { renderMethod } = require('playwright');30renderMethod('page', 'render', async function (options = {}) {31 return await this._delegate.render(options);32});33const { renderMethod } = require('playwright');34renderMethod('page', 'render', async function (options = {}) {35 return await this._delegate.render(options);36});37const { renderMethod } = require('playwright');38renderMethod('page', 'render', async function (options = {}) {
Using AI Code Generation
1const playwright = require('playwright');2const { renderMethod } = require('playwright/lib/server/render/render');3const fs = require('fs');4(async () => {5 const browser = await playwright.chromium.launch();6 const context = await browser.newContext();7 const page = await context.newPage();8 const html = await renderMethod(page, url);9 fs.writeFileSync('test.html', html);10 await page.close();11 await context.close();12 await browser.close();13})();14<!DOCTYPE html><html><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>Google</title><style>body{margin:0}#viewport{width:100vw;height:100vh;overflow:hidden;display:flex;align-items:center;justify-content:center}#viewport > div{display:none}</style></head><body><div id="viewport"><div style="display:flex;align-items:center;justify-content:center"><div style="width:100%;max-width:560p
Jest + Playwright - Test callbacks of event-based DOM library
firefox browser does not start in playwright
How to run a list of test suites in a single file concurrently in jest?
Running Playwright in Azure Function
Is it possible to get the selector from a locator object in playwright?
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:
The fact is not alien to us anymore that cross browser testing is imperative to enhance your application’s user experience. Enhanced knowledge of popular and highly acclaimed testing frameworks goes a long way in developing a new app. It holds more significance if you are a full-stack developer or expert programmer.
Enterprise resource planning (ERP) is a form of business process management software—typically a suite of integrated applications—that assists a company in managing its operations, interpreting data, and automating various back-office processes. The introduction of a new ERP system is analogous to the introduction of a new product into the market. If the product is not handled appropriately, it will fail, resulting in significant losses for the business. Most significantly, the employees’ time, effort, and morale would suffer as a result of the procedure.
We launched LT Browser in 2020, and we were overwhelmed by the response as it was awarded as the #5 product of the day on the ProductHunt platform. Today, after 74,585 downloads and 7,000 total test runs with an average of 100 test runs each day, the LT Browser has continued to help developers build responsive web designs in a jiffy.
How do we acquire knowledge? This is one of the seemingly basic but critical questions you and your team members must ask and consider. We are experts; therefore, we understand why we study and what we should learn. However, many of us do not give enough thought to how we learn.
Desired Capabilities is a class used to declare a set of basic requirements such as combinations of browsers, operating systems, browser versions, etc. to perform automated cross browser testing of a web application.
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!!