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
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!!