Best JavaScript code snippet using playwright-internal
elemMatchProjection.js
Source: elemMatchProjection.js
...33//34// SERVER-828: Positional operator ($) projection tests35//36assert.eq( 1,37 t.find( { group:3, 'x.a':2 }, { 'x.$':1 } ).toArray()[0].x.length,38 "single object match (array length match)" );39assert.eq( 2,40 t.find( { group:3, 'x.a':1 }, { 'x.$':1 } ).toArray()[0].x[0].b,41 "single object match first" );42assert.eq( undefined,43 t.find( { group:3, 'x.a':2 }, { _id:0, 'x.$':1 } ).toArray()[0]._id,44 "single object match with filtered _id" );45assert.eq( 1,46 t.find( { group:3, 'x.a':2 }, { 'x.$':1 } ).sort( { _id:1 } ).toArray()[0].x.length,47 "sorted single object match with filtered _id (array length match)" );48assert.eq( 1, 49 t.find( { 'group':2, 'x': { '$elemMatch' : { 'a':1, 'b':2 } } }, { 'x.$':1 } ).toArray()[0].x.length,50 "single object match with elemMatch" );51assert.eq( 1, 52 t.find( { 'group':2, 'x': { '$elemMatch' : { 'a':1, 'b':2 } } }, { 'x.$':{'$slice':1} } ).toArray()[0].x.length,53 "single object match with elemMatch and positive slice" );54assert.eq( 1, 55 t.find( { 'group':2, 'x': { '$elemMatch' : { 'a':1, 'b':2 } } }, { 'x.$':{'$slice':-1} } ).toArray()[0].x.length,56 "single object match with elemMatch and negative slice" );57assert.eq( 1, 58 t.find( { 'group':12, 'x.y.a':1 }, { 'x.y.$': 1 } ).toArray()[0].x.y.length,59 "single object match with two level dot notation" );60assert.eq( 1,61 t.find( { group:3, 'x.a':2 }, { 'x.$':1 } ).sort( { x:1 } ).toArray()[0].x.length,62 "sorted object match (array length match)" );63assert.eq( { aa:1, dd:5 },64 t.find( { group:3, 'y.dd':5 }, { 'y.$':1 } ).toArray()[0].y[0],65 "single object match (value match)" );66assert.throws( function() {67 t.find( { group:3, 'x.a':2 }, { 'y.$':1 } ).toArray();68 }, [], "throw on invalid projection (field mismatch)" );69assert.throws( function() {70 t.find( { group:3, 'x.a':2 }, { 'y.$':1 } ).sort( { x:1 } ).toArray()71 }, [], "throw on invalid sorted projection (field mismatch)" );72assert.throws( function() {x73 t.find( { group:3, 'x.a':2 }, { 'x.$':1, group:0 } ).sort( { x:1 } ).toArray();74 }, [], "throw on invalid projection combination (include and exclude)" );75assert.throws( function() {76 t.find( { group:3, 'x.a':1, 'y.aa':1 }, { 'x.$':1, 'y.$':1 } ).toArray();77 }, [], "throw on multiple projections" );78assert.throws( function() {79 t.find( { group:3}, { 'g.$':1 } ).toArray()80 }, [], "throw on invalid projection (non-array field)" );81assert.eq( { aa:1, dd:5 },82 t.find( { group:11, 'covered.dd':5 }, { 'covered.$':1 } ).toArray()[0].covered[0],83 "single object match (covered index)" );84assert.eq( { aa:1, dd:5 },85 t.find( { group:11, 'covered.dd':5 }, { 'covered.$':1 } ).sort( { covered:1 } ).toArray()[0].covered[0],86 "single object match (sorted covered index)" );87assert.eq( 1,88 t.find( { group:10, 'y.d': 4 }, { 'y.$':1 } ).toArray()[0].y.length,89 "single object match (regular index" );90if (false) {91 assert.eq( 2, // SERVER-1013: allow multiple positional operators92 t.find( { group:3, 'y.bb':2, 'x.d':5 }, { 'y.$':1, 'x.$':1 } ).toArray()[0].y[0].bb,93 "multi match, multi proj 1" );94 assert.eq( 5, // SSERVER-1013: allow multiple positional operators95 t.find( { group:3, 'y.bb':2, 'x.d':5 }, { 'y.$':1, 'x.$':1 } ).toArray()[0].x[0].d,96 "multi match, multi proj 2" );97 assert.eq( 2, // SERVER-1243: allow multiple results from same matcher98 t.find( { group:2, x: { $elemMatchAll: { a:1 } } }, { 'x.$':1 } ).toArray()[0].x.length,99 "multi element match, single proj" );100 assert.eq( 2, // SERVER-1013: multiple array matches with one prositional operator101 t.find( { group:3, 'y.bb':2, 'x.d':5 }, { 'y.$':1 } ).toArray()[0].y[0].bb,102 "multi match, single proj 1" );103 assert.eq( 2, // SERVER-1013: multiple array matches with one positional operator104 t.find( { group:3, 'y.cc':3, 'x.b':2 }, { 'x.$':1 } ).toArray()[0].x[0].b,105 "multi match, single proj 2" );106}107//108// SERVER-2238: $elemMatch projections109//110assert.eq( -6,111 t.find( { group:4 }, { x: { $elemMatch: { a:-6 } } } ).toArray()[0].x[0].a,112 "single object match" );113assert.eq( 1,114 t.find( { group:4 }, { x: { $elemMatch: { a:-6 } } } ).toArray()[0].x.length,115 "filters non-matching array elements" );116assert.eq( 1,117 t.find( { group:4 }, { x: { $elemMatch: { a:-6, c:3 } } } ).toArray()[0].x.length,118 "filters non-matching array elements with multiple elemMatch criteria" );119assert.eq( 1,120 t.find( { group: 13 }, { 'x' : {'$elemMatch' : { a: {$gt: 0, $lt: 2} } } } ).toArray()[0].x.length,121 "filters non-matching array elements with multiple criteria for a single element in the array" );122assert.eq( 3,123 t.find( { group:4 }, { x: { $elemMatch: { a:{ $lt:1 } } } } ).toArray()[0].x[0].c,124 "object operator match" );125assert.eq( [ 4 ],126 t.find( { group:1 }, { x: { $elemMatch: { $in:[100, 4, -123] } } } ).toArray()[0].x,127 "$in number match" );128assert.eq( [ {a : 1, b : 2} ],129 t.find( { group:2 }, { x: { $elemMatch: { a: { $in:[1] } } } } ).toArray()[0].x,130 "$in number match" );131assert.eq( [1],132 t.find( { group:1 }, { x: { $elemMatch: { $nin:[4, 5, 6] } } } ).toArray()[0].x,133 "$nin number match" );134// but this may become a user assertion, since a single element of an array can't match more than one value135assert.eq( [ 1],136 t.find( { group:1 }, { x: { $elemMatch: { $all:[1] } } } ).toArray()[0].x,137 "$in number match" );138assert.eq( [ { a: 'string', b: date1 } ],139 t.find( { group:6 }, { x: { $elemMatch: { a:'string' } } } ).toArray()[0].x,140 "mixed object match on string eq" );141assert.eq( [ { a: 'string2', b: date1 } ],142 t.find( { group:6 }, { x: { $elemMatch: { a:/ring2/ } } } ).toArray()[0].x,143 "mixed object match on regexp" );144assert.eq( [ { a: 'string', b: date1 } ],145 t.find( { group:6 }, { x: { $elemMatch: { a: { $type: 2 } } } } ).toArray()[0].x,146 "mixed object match on type" );147assert.eq( [ { a : 2, c : 3} ],148 t.find( { group:2 }, { x: { $elemMatch: { a: { $ne: 1 } } } } ).toArray()[0].x,149 "mixed object match on ne" );150assert.eq( [ {a : 1, d : 5} ],151 t.find( { group:3 }, { x: { $elemMatch: { d: { $exists: true } } } } ).toArray()[0].x,152 "mixed object match on exists" );153assert.eq( [ {a : 2, c : 3} ],154 t.find( { group:3 }, { x: { $elemMatch: { a: { $mod : [2, 0 ] } } } } ).toArray()[0].x,155 "mixed object match on mod" );156assert.eq( {"x" : [ { "a" : 1, "b" : 2 } ], "y" : [ { "c" : 3, "d" : 4 } ] },157 t.find( { group:10 }, { _id : 0, 158 x: { $elemMatch: { a: 1 } },159 y: { $elemMatch: { c: 3 } } } ).toArray()[0],160 "multiple $elemMatch on unique fields 1" );161if (false) {162 assert.eq( 2 , // SERVER-1243: handle multiple $elemMatch results163 t.find( { group:4 }, { x: { $elemMatchAll: { a:{ $lte:2 } } } } ).toArray()[0].x.length,164 "multi object match" );165 assert.eq( 3 , // SERVER-1243: handle multiple $elemMatch results166 t.find( { group:1 }, { x: { $elemMatchAll: { $in:[1, 2, 3] } } } ).toArray()[0].x.length,167 "$in number match" );168 assert.eq( 1 , // SERVER-1243: handle multiple $elemMatch results169 t.find( { group:5 }, { x: { $elemMatchAll: { $ne: 5 } } } ).toArray()[0].x.length,170 "single mixed type match 1" );171 assert.eq( 1 , // SERVER-831: handle nested arrays172 t.find( { group:9 }, { 'x.y': { $elemMatch: { a: 1 } } } ).toArray()[0].x.length,173 "single dotted match" );174}175//176// Batch/getMore tests177//178// test positional operator across multiple batches179a = t.find( { group:3, 'x.b':2 }, { 'x.$':1 } ).batchSize(1)180while ( a.hasNext() ) {181 assert.eq( 2, a.next().x[0].b, "positional getMore test");182}183// test $elemMatch operator across multiple batches184a = t.find( { group:3 }, { x:{$elemMatch:{a:1}} } ).batchSize(1)185while ( a.hasNext() ) {186 assert.eq( 1, a.next().x[0].a, "positional getMore test");187}188// verify the positional update operator matches the same element as the the positional find. this189// is to ensure consistent behavior with updates until SERVER-1013 is resolved, at which point the190// following tests should be updated.191t.update({ group: 10, 'x.a': 3, 'y.c':1 }, { $set:{'x.$':100} }, false, true );192// updated the wrong element, so the following assertions should be true193assert.eq( 100,194 t.find( { group:10, 'y.c':1 , x:100 }, { 'x.$':1 } ).toArray()[0].x[0],195 "wrong single element match after update" );196assert.eq( 100,197 t.find( { group:10 , x:100 , 'y.c':1 }, { 'x.$':1 } ).toArray()[0].x[0],198 "wrong single element match after update" );199t.remove({ group: 10 });200t.insert({ group: 10, x: [ { a: 1, b: 2 }, {a: 3, b: 4} ],201 y: [ { c: 1, d: 2 }, {c: 3, d: 4} ] });202 203t.update({ group: 10, 'y.c':1, 'x.a': 3 }, { $set:{'x.$':100} }, false, true );204// updated the correct element205assert.eq( 100,206 t.find( { group:10, 'y.c':1 , x:100 }, { 'x.$':1 } ).toArray()[0].x[0],207 "right single element match after update" );208assert.eq( 100,209 t.find( { group:10 , x:100 , 'y.c':1 }, { 'x.$':1 } ).toArray()[0].x[0],...
tests.single.js
Source: tests.single.js
...29 }30 QUnit.module('Single Tests');31 test('Buffer1', function () {32 var rng = Enumerable.range(0, 10);33 var res = rng.bufferWithCount(3).toArray();34 equal(4, res.length);35 ok(sequenceEqual(res[0].toArray(), [0, 1, 2 ]));36 ok(sequenceEqual(res[1].toArray(), [3, 4, 5 ]));37 ok(sequenceEqual(res[2].toArray(), [6, 7, 8 ]));38 ok(sequenceEqual(res[3].toArray(), [9]));39 });40 test('Buffer2', function () {41 var rng = Enumerable.range(0, 10);42 var res = rng.bufferWithCount(5).toArray();43 equal(2, res.length);44 ok(sequenceEqual(res[0].toArray(), [0, 1, 2, 3, 4 ]));45 ok(sequenceEqual(res[1].toArray(), [5, 6, 7, 8, 9 ]));46 });47 test('Buffer3', function () {48 var rng = Enumerable.empty();49 var res = rng.bufferWithCount(5).toArray();50 equal(0, res.length);51 });52 53 test('Buffer4', function () {54 var rng = Enumerable.range(0, 10);55 var res = rng.bufferWithCount(3, 2).toArray();56 equal(5, res.length);57 ok(sequenceEqual(res[0].toArray(), [0, 1, 2 ]));58 ok(sequenceEqual(res[1].toArray(), [2, 3, 4 ]));59 ok(sequenceEqual(res[2].toArray(), [4, 5, 6 ]));60 ok(sequenceEqual(res[3].toArray(), [6, 7, 8 ]));61 ok(sequenceEqual(res[4].toArray(), [8, 9 ]));62 });63 test('Buffer5', function () {64 var rng = Enumerable.range(0, 10);65 var res = rng.bufferWithCount(3, 4).toArray();66 equal(3, res.length);67 ok(sequenceEqual(res[0].toArray(), [0, 1, 2 ]));68 ok(sequenceEqual(res[1].toArray(), [4, 5, 6 ]));69 ok(sequenceEqual(res[2].toArray(), [8, 9 ]));70 });71 function noop () { }72 test('Do1', function () {73 var n = 0;74 Enumerable.range(0, 10).doAction(function (x) { n += x; }).forEach(noop);75 equal(45, n);76 });77 78 test('Do2', function () {79 var n = 0;80 Enumerable.range(0, 10).doAction(function (x) { n += x; }, noop, function () { n *= 2; }).forEach(noop);81 equal(90, n);82 });83 84 test('Do3', function () {85 var ex = new Error();86 var isOk = false;87 raises(function () {88 Enumerable.throwException(ex).doAction(function () { ok(false); }, function (e) { equal(ex, e); isOk = true; }).forEach(noop)89 });90 ok(isOk);91 });92 test('Do4', function () {93 var obs = new MyObserver();94 Enumerable.range(0, 10).doAction(obs).forEach(noop);95 ok(obs.done);96 equal(45, obs.sum);97 });98 function MyObserver () {99 this.sum = 0;100 this.done = false;101 }102 MyObserver.prototype.onNext = function (value) {103 this.sum += value;104 };105 MyObserver.prototype.onError = function () {106 throw new Error();107 };108 MyObserver.prototype.onCompleted = function () {109 this.done = true;110 };111 test('Do5', function () {112 var sum = 0;113 var done = false;114 Enumerable.range(0, 10).doAction(function (x) { sum += x; }, function () { throw ex; }, function () { done = true; }).forEach(noop);115 ok(done);116 equal(45, sum);117 });118 119 test('StartWith1', function () {120 var e = Enumerable.range(1, 5);121 var r = e.startWith(0).toArray();122 ok(sequenceEqual(r, Enumerable.range(0, 6).toArray()));123 });124 test('StartWith2', function () {125 var oops = false;126 var e = Enumerable.range(1, 5).doAction(function () { oops = true; });127 var r = e.startWith(0).take(1).toArray();128 ok(!oops);129 });130 131 test('Expand1', function () {132 var res = Enumerable.returnValue(0).expand(function (x) { return Enumerable.returnValue(x + 1); }).take(10).toArray();133 ok(sequenceEqual(res, Enumerable.range(0, 10).toArray()));134 });135 136 test('Expand2', function () {137 var res = Enumerable.returnValue(3).expand(function (x){ return Enumerable.range(0, x); }).toArray();138 var exp = [139 3,140 0, 1, 2,141 0,142 0, 1,143 0144 ];145 ok(sequenceEqual(res, exp));146 }); 147 test('Distinct1', function ()148 {149 var res = Enumerable.range(0, 10).distinctBy(function (x) { return x % 5; }).toArray();150 ok(sequenceEqual(res, Enumerable.range(0, 5).toArray()));151 });152 test('Distinct2', function ()153 {154 var res = Enumerable.range(0, 10).distinctBy(function (x) { return x % 5; }, equalityComparer).toArray();155 ok(sequenceEqual(res, [0, 1]));156 });157 function equalityComparer (x, y) {158 return x % 2 === y % 2;159 }160 161 test('DistinctUntilChanged1', function () {162 var res = Enumerable.fromArray([1, 2, 2, 3, 3, 3, 2, 2, 1]).distinctUntilChanged().toArray();163 ok(sequenceEqual(res, [1, 2, 3, 2, 1 ]));164 });165 166 test('DistinctUntilChanged2', function () {167 var res = Enumerable.fromArray([1, 1, 2, 3, 4, 5, 5, 6, 7 ]).distinctUntilChanged(function (x){ return x >> 1; }).toArray();168 ok(sequenceEqual(res, [1, 2, 4, 6 ]));169 });170 test('IgnoreElements', function () {171 var n = 0;172 Enumerable.range(0, 10).doAction(function () { n++; }).ignoreElements().take(5).forEach(noop);173 equal(10, n);174 });175 test('TakeLast_Empty', function () {176 var e = Enumerable.empty();177 var r = e.takeLast(1).toArray();178 ok(sequenceEqual(r, e.toArray()));179 });180 181 test('TakeLast_All', function () {182 var e = Enumerable.range(0, 5);183 var r = e.takeLast(5).toArray();184 ok(sequenceEqual(r, e.toArray()));185 })186 187 test('TakeLast_Part', function () {188 var e = Enumerable.range(0, 5);189 var r = e.takeLast(3).toArray();190 ok(sequenceEqual(r, e.skip(2).toArray()));191 });192 test('SkipLast_Empty', function () {193 var e = Enumerable.empty()194 var r = e.skipLast(1).toArray();195 ok(sequenceEqual(r, e.toArray()));196 });197 test('SkipLast_All', function () {198 var e = Enumerable.range(0, 5);199 var r = e.skipLast(0).toArray();200 ok(sequenceEqual(r, e.toArray()));201 });202 test('SkipLast_Part', function () {203 var e = Enumerable.range(0, 5);204 var r = e.skipLast(3).toArray();205 ok(sequenceEqual(r, e.take(2).toArray()));206 });207 test('Scan1', function () {208 var res = Enumerable.range(0, 5).scan(function (n, x) { return n + x; }).toArray();209 ok(sequenceEqual(res, [1, 3, 6, 10]));210 });211 test('Scan2', function () {212 var res = Enumerable.range(0, 5).scan(10, function (n, x) { return n - x; }).toArray();213 ok(sequenceEqual(res, [10, 9, 7, 4, 0 ]));214 }); ...
enumerable.js
Source: enumerable.js
...3/// <reference path="../extensions/linq.qunit.js" />4module("Enumerable");5var expected, actual; // will be removed6test("choice", function () {7 actual = Enumerable.choice(1, 10, 31, 42).take(10).toArray();8 notEqual(actual, [1, 10, 31, 42, 1, 10, 31, 42, 1, 10], "random test. if failed retry");9 equal(actual.length, 10);10 actual = Enumerable.choice([1, 10, 31, 42]).take(10).toArray();11 notEqual(actual, [1, 10, 31, 42, 1, 10, 31, 42, 1, 10], "random test. if failed retry");12 equal(actual.length, 10);13 var seq = Enumerable.make(1).concat([10]).concat([31]).concat([42]);14 actual = Enumerable.choice(seq).take(10).toArray();15 notEqual(actual, [1, 10, 31, 42, 1, 10, 31, 42, 1, 10], "random test. if failed retry");16 equal(actual.length, 10);17});18test("cycle", function () {19 actual = Enumerable.cycle(1, 10, 31, 42).take(10).toArray();20 deepEqual(actual, [1, 10, 31, 42, 1, 10, 31, 42, 1, 10]);21 actual = Enumerable.cycle([1, 2, 3, 4, 5]).take(10).toArray();22 deepEqual(actual, [1, 2, 3, 4, 5, 1, 2, 3, 4, 5]);23 var seq = Enumerable.make(1).concat([10]).concat([31]).concat([42]);24 actual = Enumerable.cycle(seq).take(10).toArray();25 deepEqual(actual, [1, 10, 31, 42, 1, 10, 31, 42, 1, 10]);26 actual = Enumerable.cycle(Enumerable.range(1, 5)).take(10).toArray();27 deepEqual(actual, [1, 2, 3, 4, 5, 1, 2, 3, 4, 5]);28 Enumerable.cycle(1, 2, 3).take(5).is(1, 2, 3, 1, 2);29});30test("empty", function () {31 actual = Enumerable.empty().toArray();32 deepEqual(actual, []);33});34test("from", function () {35 actual = Enumerable.from("temp").toArray();36 deepEqual(actual, ["t", "e", "m", "p"]);37 actual = Enumerable.from(3).toArray();38 deepEqual(actual, [3]);39 actual = Enumerable.from([1, 2, 3, 4, 5]).toArray();40 deepEqual(actual, [1, 2, 3, 4, 5]);41 actual = Enumerable.from({ foo: "bar", func: function () { } }).toArray();42 deepEqual(actual, [{ key: "foo", value: "bar" }]);43 //var div = document.createElement("html");44 //var last = document.createElement("div");45 //last.appendChild(document.createTextNode("test"));46 //div.appendChild(document.createElement("div"));47 //div.appendChild(document.createElement("div"));48 //div.appendChild(last);49 //var seq = Enumerable.from(div.getElementsByTagName("div"));50 //equal(seq.count(), 3);51 //equal(seq.elementAt(2), last);52 //equal(seq.elementAt(2).firstChild.nodeValue, "test");53});54test("make", function () {55 actual = Enumerable.make("hoge").toArray();56 deepEqual(actual, ["hoge"]);57});58test("matches", function () {59 actual = Enumerable.matches("xbcyBCzbc", /(.)bc/i).select("$.index+$[1]").toArray();60 deepEqual(actual, ["0x", "3y", "6z"]);61 actual = Enumerable.matches("xbcyBCzbc", "(.)bc").select("$.index+$[1]").toArray();;62 deepEqual(actual, ["0x", "6z"]);63 actual = Enumerable.matches("xbcyBCzbc", "(.)bc", "i").select("$.index+$[1]").toArray();;64 deepEqual(actual, ["0x", "3y", "6z"]);65});66test("range", function () {67 actual = Enumerable.range(1, 10).toArray();68 deepEqual(actual, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]);69 actual = Enumerable.range(1, 5, 3).toArray();70 deepEqual(actual, [1, 4, 7, 10, 13]);71 Enumerable.range(3, 4).is(3, 4, 5, 6);72 Enumerable.range(-2, 4).is(-2, -1, 0, 1);73 Enumerable.range(-2, 4, 2).is(-2, 0, 2, 4);74});75test("rangeDown", function () {76 actual = Enumerable.rangeDown(1, 10).toArray();77 deepEqual(actual, [1, 0, -1, -2, -3, -4, -5, -6, -7, -8]);78 actual = Enumerable.rangeDown(1, 5, 3).toArray();79 deepEqual(actual, [1, -2, -5, -8, -11]);80 Enumerable.rangeDown(3, 5).is(3, 2, 1, 0, -1);81 Enumerable.rangeDown(-2, 4).is(-2, -3, -4, -5);82 Enumerable.rangeDown(-2, 4, 2).is(-2, -4, -6, -8);83});84test("rangeTo", function () {85 actual = Enumerable.rangeTo(5, 10).toArray();86 deepEqual(actual, [5, 6, 7, 8, 9, 10]);87 actual = Enumerable.rangeTo(1, 10, 3).toArray();88 deepEqual(actual, [1, 4, 7, 10]);89 actual = Enumerable.rangeTo(-2, -8).toArray();90 deepEqual(actual, [-2, -3, -4, -5, -6, -7, -8]);91 actual = Enumerable.rangeTo(-2, -8, 2).toArray();92 deepEqual(actual, [-2, -4, -6, -8]);93 Enumerable.rangeTo(1, 4).is(1, 2, 3, 4);94 Enumerable.rangeTo(-3, 6).is(-3, -2, -1, 0, 1, 2, 3, 4, 5, 6);95 Enumerable.rangeTo(2, -5).is(2, 1, 0, -1, -2, -3, -4, -5);96 Enumerable.rangeTo(1, 5, 3).is(1, 4);97 Enumerable.rangeTo(1, -5, 3).is(1, -2, -5);98 Enumerable.rangeTo(1, -6, 3).is(1, -2, -5);99 Enumerable.rangeTo(4, 4).is(4);100 Enumerable.rangeTo(4, 4, 3).is(4);101});102test("repeat", function () {103 actual = Enumerable.repeat("temp").take(3).toArray();104 deepEqual(actual, ["temp", "temp", "temp"]);105 actual = Enumerable.repeat("temp", 5).toArray();106 deepEqual(actual, ["temp", "temp", "temp", "temp", "temp"]);107});108test("repeatWithFinalize", function () {109 var fin;110 actual = Enumerable.repeatWithFinalize(111 function () { return "temp"; },112 function () { fin = "final"; })113 .take(3).toArray();114 deepEqual(actual, ["temp", "temp", "temp"]);115 equal("final", fin);116});117test("generate", function () {118 actual = Enumerable.generate(function () { return "temp" }).take(3).toArray();119 deepEqual(actual, ["temp", "temp", "temp"]);120 actual = Enumerable.generate(function () { return "temp" }, 5).toArray();121 deepEqual(actual, ["temp", "temp", "temp", "temp", "temp"]);122});123test("toInfinity", function () {124 actual = Enumerable.toInfinity().where("i=>i%2==0").take(10).toArray();125 deepEqual(actual, [0, 2, 4, 6, 8, 10, 12, 14, 16, 18]);126 actual = Enumerable.toInfinity(101).take(5).toArray();127 deepEqual(actual, [101, 102, 103, 104, 105]);128 actual = Enumerable.toInfinity(101, 5).take(5).toArray();129 deepEqual(actual, [101, 106, 111, 116, 121]);130});131test("toNegativeInfinity", function () {132 actual = Enumerable.toNegativeInfinity().where("i=>i%2==0").take(10).toArray();133 deepEqual(actual, [0, -2, -4, -6, -8, -10, -12, -14, -16, -18]);134 actual = Enumerable.toNegativeInfinity(3).take(10).toArray();135 deepEqual(actual, [3, 2, 1, 0, -1, -2, -3, -4, -5, -6]);136 actual = Enumerable.toNegativeInfinity(3, 5).take(4).toArray();137 deepEqual(actual, [3, -2, -7, -12]);138});139test("unfold", function () {140 actual = Enumerable.unfold(5, "$+3").take(5).toArray();141 deepEqual(actual, [5, 8, 11, 14, 17]);142});143test("defer", function () {144 var xs = [];145 var r = Enumerable.range(1, 5)146 .doAction(function (x) { xs.push(x); });147 var de = Enumerable.defer(function () { return r; });148 xs.length.is(0);149 de.toArray().is(1, 2, 3, 4, 5);150 xs.is(1, 2, 3, 4, 5);...
projection.js
Source: projection.js
...3/// <reference path="../extensions/linq.qunit.js" />4module("Projection");5var expected, actual; // will be removed6test("traverseDepthFirst", function () {7 actual = Enumerable.make(1).traverseDepthFirst("$+$").take(7).toArray();8 deepEqual(actual, [1, 2, 4, 8, 16, 32, 64]);9 actual = Enumerable.make(1).traverseDepthFirst("$+$", "v,nl=>{v:v,nl:nl}").take(3).toArray();10 deepEqual(actual, [{ v: 1, nl: 0 }, { v: 2, nl: 1 }, { v: 4, nl: 2 }]);11});12test("traverseBreadthFirst", function () {13 actual = Enumerable.make(1).traverseBreadthFirst("$+$").take(7).toArray();14 deepEqual(actual, [1, 2, 4, 8, 16, 32, 64]);15 actual = Enumerable.make(1).traverseBreadthFirst("$+$", "v,nl=>{v:v,nl:nl}").take(3).toArray();16 deepEqual(actual, [{ v: 1, nl: 0 }, { v: 2, nl: 1 }, { v: 4, nl: 2 }]);17});18test("flatten", function () {19 var array = [1, 31, [431, 41, 5], [1431, 43, [344, 3], 43], 43];20 actual = Enumerable.from(array).flatten().toArray();21 deepEqual(actual, [1, 31, 431, 41, 5, 1431, 43, 344, 3, 43, 43]);22});23test("pairwise", function () {24 actual = Enumerable.range(1, 4).pairwise("prev,next=>{p:prev,n:next}").toArray();25 deepEqual(actual, [{ p: 1, n: 2 }, { p: 2, n: 3 }, { p: 3, n: 4 }]);26});27test("scan", function () {28 actual = Enumerable.range(1, 10).scan("a,b=>a+b").toArray();29 deepEqual(actual, [1, 3, 6, 10, 15, 21, 28, 36, 45, 55]);30 var seed = 100;31 actual = Enumerable.range(1, 10).scan(seed, "a,b=>a+b").toArray();32 deepEqual(actual, [100, 101, 103, 106, 110, 115, 121, 128, 136, 145, 155]);33});34test("select", function () {35 actual = Enumerable.range(1, 10).select("i=>i*10").toArray();36 deepEqual(actual, [10, 20, 30, 40, 50, 60, 70, 80, 90, 100]);37 actual = Enumerable.range(1, 10).select("i,index=>i*10+index").toArray();38 deepEqual(actual, [10, 21, 32, 43, 54, 65, 76, 87, 98, 109]);39});40test("selectMany", function () {41 actual = Enumerable.range(1, 5).selectMany("i=>Enumerable.repeat(i,2)").toArray();42 deepEqual(actual, [1, 1, 2, 2, 3, 3, 4, 4, 5, 5]);43 actual = Enumerable.range(1, 5).selectMany("i,index=>Enumerable.repeat(i,index+1)").toArray();44 deepEqual(actual, [1, 2, 2, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 5]);45 actual = Enumerable.range(1, 5).selectMany("i=>Enumerable.repeat(i,2)", "i=>i*10").toArray();46 deepEqual(actual, [10, 10, 20, 20, 30, 30, 40, 40, 50, 50]);47 actual = Enumerable.range(1, 5).selectMany("i,index=>Enumerable.repeat(i,index+1)", "i=>i*10").toArray();48 deepEqual(actual, [10, 20, 20, 30, 30, 30, 40, 40, 40, 40, 50, 50, 50, 50, 50]);49});50test("where", function () {51 actual = Enumerable.range(1, 10).where("i=>i%2==0").toArray();52 deepEqual(actual, [2, 4, 6, 8, 10]);53 actual = Enumerable.range(1, 10).where("i,index=>(i+index)%3==0").toArray();54 deepEqual(actual, [2, 5, 8]);55});56test("choose", function () {57 Enumerable.range(1, 10).choose(function (x) {58 return x % 2 == 0 ? null : x;59 }).is(1, 3, 5, 7, 9);60 Enumerable.range(1, 10).choose().is(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);61});62test("ofType", function () {63 var seq = Enumerable.from([1, 2, "hoge", "3", 4, true]);64 deepEqual(seq.ofType(Number).toArray(), [1, 2, 4]);65 deepEqual(seq.ofType(String).toArray(), ["hoge", "3"]);66 deepEqual(seq.ofType(Boolean).toArray(), [true]);67 var Cls = function (val) { this.val = val; }68 seq = Enumerable.from([new Cls("a"), new Cls("b"), 1, 2, new Cls("c"), 3]);69 deepEqual(seq.ofType(Cls).select("$.val").toArray(), ["a", "b", "c"]);70});71test("zip", function () {72 actual = Enumerable.range(1, 10).zip(Enumerable.range(20, 5), "outer,inner=>outer+inner").toArray();73 deepEqual(actual, [21, 23, 25, 27, 29]);74 actual = Enumerable.range(1, 10).zip(Enumerable.range(20, 5), "outer,inner,index=>outer+inner+index").toArray();75 deepEqual(actual, [21, 24, 27, 30, 33]);76});77test("zip2", function () {78 [1, 2, 3]79 .zip(80 [-3, 4, 10],81 [5, 6, 7],82 function (x, y, z) { return x * y * z; })83 .is(-15, 48, 210);84 [1, 2, 3]85 .zip(86 [-3, 4, 10],87 [-3, 4, 10],88 function (x, y, z, i) { return i; })...
grouping.js
Source: grouping.js
...7test("groupBy", function ()8{9 actual = Enumerable.from(fileList)10 .groupBy("file=>file.match(/\\.(.+$)/)[1]")11 .select("{key:$.key(),value:$.toArray()}")12 .toArray();13 expected = [{ key: "xls", value: ["temp.xls", "temp2.xls", "temp3.xls"] },14 { key: "pdf", value: ["temp.pdf", "temp2.pdf"] },15 { key: "jpg", value: ["temp.jpg"]}];16 deepEqual(actual, expected);17 actual = Enumerable.from(fileList)18 .groupBy("file=>file.match(/\\.(.+$)/)[1]", "file=>file.match(/(^.+)\\..+$/)[1]")19 .select("{key:$.key(),value:$.toArray()}")20 .toArray();21 expected = [{ key: "xls", value: ["temp", "temp2", "temp3"] },22 { key: "pdf", value: ["temp", "temp2"] },23 { key: "jpg", value: ["temp"]}];24 deepEqual(actual, expected);25 actual = Enumerable.from(fileList).groupBy("file=>file.match(/\\.(.+$)/)[1]",26 "file=>file",27 "ext,group => {extension:ext,count:group.count(),files:group.toArray()}")28 .toArray();29 expected = [{ extension: "xls", count: 3, files: ["temp.xls", "temp2.xls", "temp3.xls"] },30 { extension: "pdf", count: 2, files: ["temp.pdf", "temp2.pdf"] },31 { extension: "jpg", count: 1, files: ["temp.jpg"]}];32 deepEqual(actual, expected);33 var objects = [34 { Date: new Date(2000, 1, 1), Id: 1 },35 { Date: new Date(2010, 5, 5), Id: 2 },36 { Date: new Date(2000, 1, 1), Id: 3 }37 ]38 var actual = Enumerable.from(objects)39 .groupBy("$.Date", "$.Id",40 function (key, group) { return key.getFullYear() + "-" + group.toJoinedString(',') },41 function (key) { return key.toString() })42 .toArray();43 expected = ["2000-1,3", "2010-2"]44 deepEqual(actual, expected);45});46test("partitionBy", function ()47{48 actual = Enumerable.from(fileList)49 .partitionBy("file=>file.match(/\\.(.+$)/)[1]")50 .select("{key:$.key(),value:$.toArray()}")51 .toArray();52 expected = [{ key: "xls", value: ["temp.xls", "temp2.xls"] },53 { key: "pdf", value: ["temp.pdf"] },54 { key: "jpg", value: ["temp.jpg"] },55 { key: "pdf", value: ["temp2.pdf"] },56 { key: "xls", value: ["temp3.xls"] }57 ];58 deepEqual(actual, expected);59 actual = Enumerable.from(fileList)60 .partitionBy("file=>file.match(/\\.(.+$)/)[1]", "file=>file.match(/(^.+)\\..+$/)[1]")61 .select("{key:$.key(),value:$.toArray()}")62 .toArray();63 expected = [{ key: "xls", value: ["temp", "temp2"] },64 { key: "pdf", value: ["temp"] },65 { key: "jpg", value: ["temp"] },66 { key: "pdf", value: ["temp2"] },67 { key: "xls", value: ["temp3"] }68 ];69 deepEqual(actual, expected);70 actual = Enumerable.from(fileList)71 .partitionBy("file=>file.match(/\\.(.+$)/)[1]",72 "file=>file",73 "ext,group=>{extension:ext,count:group.count(),files:group.toArray()}")74 .toArray();75 expected = [{ extension: "xls", count: 2, files: ["temp.xls", "temp2.xls"] },76 { extension: "pdf", count: 1, files: ["temp.pdf"] },77 { extension: "jpg", count: 1, files: ["temp.jpg"] },78 { extension: "pdf", count: 1, files: ["temp2.pdf"] },79 { extension: "xls", count: 1, files: ["temp3.xls"] }80 ];81 deepEqual(actual, expected);82 var objects = [83 { Date: new Date(2000, 1, 1), Id: 1 },84 { Date: new Date(2000, 1, 1), Id: 2 },85 { Date: new Date(2010, 5, 5), Id: 3 },86 { Date: new Date(2000, 1, 1), Id: 4 },87 { Date: new Date(2010, 5, 5), Id: 5 },88 { Date: new Date(2010, 5, 5), Id: 6 }89 ]90 var actual = Enumerable.from(objects)91 .partitionBy("$.Date", "$.Id",92 function (key, group) { return key.getFullYear() + "-" + group.toJoinedString(',') },93 function (key) { return key.toString() })94 .toArray();95 expected = ["2000-1,2", "2010-3", "2000-4", "2010-5,6"]96 deepEqual(actual, expected);97});98test("buffer", function ()99{100 actual = Enumerable.range(1, 10).buffer("3").toArray();101 expected = [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10]];102 deepEqual(actual, expected);...
minmax.js
Source: minmax.js
...8t = db.jstests_minmax;9t.drop();10t.ensureIndex( { a: 1, b: 1 } );11addData();12printjson( t.find().min( { a: 1, b: 2 } ).max( { a: 2, b: 1 } ).toArray() );13assert.eq( 1, t.find().min( { a: 1, b: 2 } ).max( { a: 2, b: 1 } ).toArray().length );14assert.eq( 2, t.find().min( { a: 1, b: 2 } ).max( { a: 2, b: 1.5 } ).toArray().length );15assert.eq( 2, t.find().min( { a: 1, b: 2 } ).max( { a: 2, b: 2 } ).toArray().length );16// just one bound17assert.eq( 3, t.find().min( { a: 1, b: 2 } ).toArray().length );18assert.eq( 3, t.find().max( { a: 2, b: 1.5 } ).toArray().length );19assert.eq( 3, t.find().min( { a: 1, b: 2 } ).hint( { a: 1, b: 1 } ).toArray().length );20assert.eq( 3, t.find().max( { a: 2, b: 1.5 } ).hint( { a: 1, b: 1 } ).toArray().length );21t.drop();22t.ensureIndex( { a: 1, b: -1 } );23addData();24assert.eq( 4, t.find().min( { a: 1, b: 2 } ).toArray().length );25assert.eq( 4, t.find().max( { a: 2, b: 0.5 } ).toArray().length );26assert.eq( 1, t.find().min( { a: 2, b: 1 } ).toArray().length );27assert.eq( 1, t.find().max( { a: 1, b: 1.5 } ).toArray().length );28assert.eq( 4, t.find().min( { a: 1, b: 2 } ).hint( { a: 1, b: -1 } ).toArray().length );29assert.eq( 4, t.find().max( { a: 2, b: 0.5 } ).hint( { a: 1, b: -1 } ).toArray().length );30assert.eq( 1, t.find().min( { a: 2, b: 1 } ).hint( { a: 1, b: -1 } ).toArray().length );31assert.eq( 1, t.find().max( { a: 1, b: 1.5 } ).hint( { a: 1, b: -1 } ).toArray().length );32// hint doesn't match33assert.throws( function() { t.find().min( { a: 1 } ).hint( { a: 1, b: -1 } ).toArray() } );34assert.throws( function() { t.find().min( { a: 1, b: 1 } ).max( { a: 1 } ).hint( { a: 1, b: -1 } ).toArray() } );35assert.throws( function() { t.find().min( { b: 1 } ).max( { a: 1, b: 2 } ).hint( { a: 1, b: -1 } ).toArray() } );36assert.throws( function() { t.find().min( { a: 1 } ).hint( { $natural: 1 } ).toArray() } );37assert.throws( function() { t.find().max( { a: 1 } ).hint( { $natural: 1 } ).toArray() } );38// Reverse direction scan of the a:1 index between a:6 (inclusive) and a:3 (exclusive).39t.drop();40t.ensureIndex( { a:1 } );41for( i = 0; i < 10; ++i ) {42 t.save( { _id:i, a:i } );43}44if ( 0 ) { // SERVER-376645reverseResult = t.find().min( { a:6 } ).max( { a:3 } ).sort( { a:-1 } ).hint( { a:1 } ).toArray();46assert.eq( [ { _id:6, a:6 }, { _id:5, a:5 }, { _id:4, a:4 } ], reverseResult );47}48//49// SERVER-15015.50//51// Test ascending index.52t.drop();53t.ensureIndex({a: 1});54t.insert({a: 3});55t.insert({a: 4});56t.insert({a: 5});57var cursor = t.find().min({a: 4});58assert.eq(4, cursor.next()["a"]);59assert.eq(5, cursor.next()["a"]);...
mergeTwoSortedLists.test.js
Source: mergeTwoSortedLists.test.js
...8 let list2 = new LinkedList();9 list2.append(3);10 list2.append(11);11 it('appends multiple elements correctly', () => {12 expect(list1.toArray()).toEqual([2, 5, 7]);13 });14 it('appends multiple elements correctly', () => {15 expect(list2.toArray()).toEqual([3, 11]);16 });17 it('appends one elements correctly', () => {18 expect(new LinkedList().append(3).toArray()).toEqual([3]);19 });20 it('merges two sorted lists of multiple items', () => {21 const result = [...list1.toArray(), ...list2.toArray()].sort((a, b) => a - b);22 const attempt = mergeTwoSortedLists(list1, list2).toArray();23 expect(attempt).toEqual(result);24 });25 it('merges two empty', () => {26 list1 = new LinkedList();27 list2 = new LinkedList();28 const result = [...list1.toArray(), ...list2.toArray()].sort((a, b) => a - b);29 const attempt = mergeTwoSortedLists(list1, list2).toArray();30 expect(attempt).toEqual(result);31 });32 it('merges list with empty list', () => {33 list1 = new LinkedList();34 list1.append(1);35 list1.append(3);36 list1.append(4);37 list2 = new LinkedList();38 const result = [...list1.toArray(), ...list2.toArray()].sort((a, b) => a - b);39 const attempt = mergeTwoSortedLists(list1, list2).toArray();40 expect(attempt).toEqual(result);41 });42 it('merges empty list with list', () => {43 list1 = new LinkedList();44 list2 = new LinkedList();45 list2.append(1);46 list2.append(3);47 list2.append(4);48 const result = [...list1.toArray(), ...list2.toArray()].sort((a, b) => a - b);49 const attempt = mergeTwoSortedLists(list1, list2).toArray();50 expect(attempt).toEqual(result);51 });52 });...
api.js
Source: api.js
...17} from '../../src/index.js';18const toArray = (first) => list(values(first));19test('API', (t) => {20 let A = empty();21 t.deepEqual(toArray(A), []);22 t.throws(() => pop(A), {message: /empty/});23 t.throws(() => shift(A), {message: /empty/});24 t.throws(() => value(A), {message: /empty/});25 t.throws(() => setValue(A, {}), {message: /empty/});26 t.throws(() => insertAfter(A, {}), {message: /empty/});27 t.throws(() => last(A), {message: /empty/});28 t.false(isLast(A));29 A = push(A, 1);30 t.true(isLast(A));31 t.true(isLast(last(A)));32 t.deepEqual(toArray(A), [1]);33 setValue(A, 0);34 t.deepEqual(toArray(A), [0]);35 setValue(A, 1);36 t.deepEqual(toArray(A), [1]);37 A = unshift(A, 2);38 t.deepEqual(toArray(A), [2, 1]);39 let B = from([4, 3]);40 t.deepEqual(toArray(B), [4, 3]);41 B = concat(A, B);42 A = empty();43 t.deepEqual(toArray(B), [2, 1, 4, 3]);44 t.deepEqual(toArray(A), []);45 B = concat(A, B);46 t.deepEqual(toArray(B), [2, 1, 4, 3]);47 B = concat(B, A);48 t.deepEqual(toArray(B), [2, 1, 4, 3]);49 A = unshift(A, 8);50 t.deepEqual(toArray(A), [8]);51 B = push(B, 7);52 t.deepEqual(toArray(B), [2, 1, 4, 3, 7]);53 A = concat(A, B);54 B = empty();55 t.deepEqual(toArray(A), [8, 2, 1, 4, 3, 7]);56 t.deepEqual(toArray(B), []);57 insertAfter(A, 9);58 t.deepEqual(toArray(A), [8, 9, 2, 1, 4, 3, 7]);59 insertAfter(last(A), 5);60 t.deepEqual(toArray(A), [8, 9, 2, 1, 4, 3, 7, 5]);...
Using AI Code Generation
1const { firefox } = require('playwright');2(async () => {3 const browser = await firefox.launch();4 const context = await browser.newContext();5 const page = await context.newPage();6 const elements = await page.$$('div');7 const array = await elements.toArray();8 console.log(array.length);9 await browser.close();10})();11const { firefox } = require('playwright');12(async () => {13 const browser = await firefox.launch();14 const context = await browser.newContext();15 const page = await context.newPage();16 const elements = await page.$$('div');17 const list = await elements.toList();18 console.log(list.size);19 await browser.close();20})();21const { firefox } = require('playwright');22(async () => {23 const browser = await firefox.launch();24 const context = await browser.newContext();25 const page = await context.newPage();26 const elements = await page.$$('div');27 const set = await elements.toSet();28 console.log(set.size);29 await browser.close();30})();31const { firefox } = require('playwright');32(async () => {33 const browser = await firefox.launch();34 const context = await browser.newContext();35 const page = await context.newPage();36 const elements = await page.$$('div');37 const map = await elements.toMap();38 console.log(map.size);39 await browser.close();40})();41const { firefox } = require('playwright');42(async () => {43 const browser = await firefox.launch();44 const context = await browser.newContext();45 const page = await context.newPage();46 const elements = await page.$$('div');47 const object = await elements.toObject();48 console.log(object);49 await browser.close();50})();
Using AI Code Generation
1const { chromium } = require('playwright-internal');2(async () => {3 const browser = await chromium.launch();4 const page = await browser.newPage();5 const elements = await page.$$('h2');6 const arr = await elements.toArray();7 console.log(arr);8 await browser.close();9})();10 JSHandle {11 _remoteObject: {12 objectId: '{"injectedScriptId":1,"id":1}',13 }14 },15 JSHandle {16 _remoteObject: {17 objectId: '{"injectedScriptId":1,"id":2}',18 }19 },20 JSHandle {21 _remoteObject: {22 objectId: '{"injectedScriptId":1,"id":3}',23 }24 }
Using AI Code Generation
1const { toImpl } = require('@playwright/test/lib/server/frames');2const { Frame } = require('@playwright/test/lib/server/frames');3const { ElementHandle } = require('@playwright/test/lib/server/dom');4const { JSHandle } = require('@playwright/test/lib/server/jsHandle');5const { Page } = require('@playwright/test/lib/server/page');6const { Worker } = require('@playwright/test/lib/server/worker');7const { ExecutionContext } = require('@playwright/test/lib/server/executionContext');8const { CDPSession } = require('@playwright/test/lib/server/cdpSession');9const { BrowserContext } = require('@playwright/test/lib/server/browserContext');10const { Browser } = require('@playwright/test/lib/server/browser');11const { BrowserType } = require('@playwright/test/lib/server/browserType');12const { BrowserServer } = require('@playwright/test/lib/server/browserServer');13const { Download } = require('@playwright/test/lib/server/download');14const { EventEmitter } = require('events');15const { ConsoleMessage } = require('@playwright/test/lib/server/consoleMessage');16const { FileChooser } = require('@playwright/test/lib/server/fileChooser');17const { Dialog } = require('@playwright/test/lib/server/dialog');18const { Video } = require('@playwright/test/lib/server/video');19const { TimeoutError } = require('@playwright/test/lib/errors');20const { Connection } = require('@playwright/test/lib/server/connection');21const { CRSession } = require('@playwright/test/lib/server/chromium/crConnection');22const { CRBrowser } = require('@playwright/test/lib/server/chromium/crBrowser');23const { CRBrowserContext } = require('@playwright/test/lib/server/chromium/crBrowserContext');24const { CRPage } = require('@playwright/test/lib/server/chromium/crPage');25const { CRSessionPool } = require('@playwright/test/lib/server/chromium/crSessionPool');26const { CRConnection } = require('@playwright/test/lib/server/chromium/crConnection');27const { CRPageProxy } = require('@playwright/test/lib/server/chromium/crPageProxy');28const { CRDialog } = require('@playwright/test/lib/server/chromium/crDialog');29const { CRVideo } = require('@playwright/test/lib/server/chromium/crVideo');30const { CRExecutionContext } = require('@playwright/test/lib/server/chromium/crExecutionContext');
Using AI Code Generation
1const { toArray } = require('playwright/lib/utils/utils');2const { chromium } = require('playwright');3const browser = await chromium.launch();4const page = await browser.newPage();5const elements = await page.$$('a');6const array = toArray(elements);7console.log(array.length);8await browser.close();
Using AI Code Generation
1const { toArray } = require('@playwright/test');2const array = toArray(1, 2, 3);3console.log(array);4const { toArray } = require('@playwright/test');5const array = toArray(1, 2, 3);6console.log(array);7const { toArray } = require('@playwright/test');8const array = toArray(1, 2, 3);9console.log(array);10const { toArray } = require('@playwright/test');11const array = toArray(1, 2, 3);12console.log(array);13const { toArray } = require('@playwright/test');14const array = toArray(1, 2, 3);15console.log(array);16const { toArray } = require('@playwright/test');17const array = toArray(1, 2, 3);18console.log(array);19const { toArray } = require('@playwright/test');20const array = toArray(1, 2, 3);21console.log(array);22const { toArray } = require('@playwright/test');23const array = toArray(1, 2, 3);24console.log(array);25const { toArray } = require('@playwright/test');26const array = toArray(1, 2, 3);27console.log(array);28const { toArray } = require('@playwright/test');29const array = toArray(1, 2, 3);30console.log(array);31const { toArray } = require('@playwright/test');32const array = toArray(1, 2, 3);33console.log(array);34const { toArray } = require('@playwright/test');35const array = toArray(1, 2, 3);36console.log(array);37const { toArray } = require('@playwright/test');38const array = toArray(1
Using AI Code Generation
1const { toArray } = require('playwright/lib/server/frames');2const frames = toArray(page.mainFrame()._childFrames);3const { toArray } = require('playwright/lib/server/frames');4const frames = toArray(page.mainFrame()._childFrames);5const { toArray } = require('playwright/lib/server/frames');6const frames = toArray(page.mainFrame()._childFrames);7const { toArray } = require('playwright/lib/server/frames');8const frames = toArray(page.mainFrame()._childFrames);9const { toArray } = require('playwright/lib/server/frames');10const frames = toArray(page.mainFrame()._childFrames);11const { toArray } = require('playwright/lib/server/frames');12const frames = toArray(page.mainFrame()._childFrames);13const { toArray } = require('playwright/lib/server/frames');14const frames = toArray(page.mainFrame()._childFrames);15const { toArray } = require('playwright/lib/server/frames');16const frames = toArray(page.mainFrame()._childFrames);17const { toArray } = require('playwright/lib/server/frames');18const frames = toArray(page.mainFrame()._childFrames);19const {
Using AI Code Generation
1const { toArray } = require('./node_modules/playwright/lib/utils/utils');2const { toBeDeepCloseTo } = require('jest-matcher-deep-close-to');3expect.extend({ toBeDeepCloseTo });4const data = [1, 2, 3];5expect(toArray(data)).toBeDeepCloseTo(data);6const { toBeDeepCloseTo } = require('jest-matcher-deep-close-to');7expect.extend({ toBeDeepCloseTo });8const data = [1, 2, 3];9expect(page.utils.toArray(data)).toBeDeepCloseTo(data);
Using AI Code Generation
1const { PlaywrightInternal } = require("playwright");2const { test } = require("@playwright/test");3test("test", async ({ page }) => {4 const internal = new PlaywrightInternal();5 const arr = internal.toArray(page);6 console.log(arr);7});8 {9 _options: {},10 }11import { PlaywrightInternal } from "playwright";12import { test } from "@playwright/test";13test("test", async ({ page }) => {14 const internal = new PlaywrightInternal();15 const arr = internal.toArray(page);16 console.log(arr);17});18 {19 _options: {},20 }21const { PageInternal } = require("playwright");22const { test } = require("@playwright/test");23test("test", async ({ page }) => {24 const internal = new PageInternal(page);25 const arr = internal.toArray(page);26 console.log(arr);27});
Using AI Code Generation
1const { Playwright } = require('playwright');2const { toArray } = Playwright;3const arr = toArray({ foo: 'bar' });4console.log(arr);5const { Playwright } = require('playwright');6const { toArray } = Playwright;7const arr = toArray({ foo: 'bar' });8console.log(arr);9const { Playwright } = require('playwright');10const { toArray } = Playwright;11const arr = toArray({ foo: 'bar' });12console.log(arr);13const { Playwright } = require('playwright');14const { toArray } = Playwright;15const arr = toArray({ foo: 'bar' });16console.log(arr);17const { Playwright } = require('playwright');18const { toArray } = Playwright;19const arr = toArray({ foo: 'bar' });20console.log(arr);21const { Playwright } = require('playwright');22const { toArray } = Playwright;23const arr = toArray({ foo: 'bar' });24console.log(arr);25const { Playwright } = require('playwright');26const { toArray } = Playwright;27const arr = toArray({ foo: 'bar' });28console.log(arr);29const { Playwright } = require('playwright');30const { toArray } = Playwright;31const arr = toArray({ foo: 'bar' });32console.log(arr);33const { Playwright } = require('playwright');34const { toArray } = Play
Using AI Code Generation
1const { toArray } = require('playwright/lib/server/supplements/utils/structs.js');2const { helper } = require('playwright/lib/server/helper.js');3const { assert } = helper;4const testArray = [1,2,3,4,5,6];5const testObject = {6}7assert.deepEqual(toArray(testObject), testArray, 'toArray method of Playwright Internal class failed');8 at Object.<anonymous> (/Users/username/path/to/test.js:14:3)9 at Module._compile (internal/modules/cjs/loader.js:1063:30)10 at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)11 at Module.load (internal/modules/cjs/loader.js:928:32)12 at Function.Module._load (internal/modules/cjs/loader.js:769:14)13 at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:72:12)14 at internal/main/run_main_module.js:17:47 {15}16const { toArray } = require('playwright/lib/server/supplements/utils/structs.js');17const { helper } = require('playwright/lib/server/helper.js');18const { assert } = helper;
Jest + Playwright - Test callbacks of event-based DOM library
firefox browser does not start in playwright
Is it possible to get the selector from a locator object in playwright?
How to run a list of test suites in a single file concurrently in jest?
Running Playwright in Azure Function
firefox browser does not start in playwright
This question is quite close to a "need more focus" question. But let's try to give it some focus:
Does Playwright has access to the cPicker object on the page? Does it has access to the window object?
Yes, you can access both cPicker and the window object inside an evaluate call.
Should I trigger the events from the HTML file itself, and in the callbacks, print in the DOM the result, in some dummy-element, and then infer from that dummy element text that the callbacks fired?
Exactly, or you can assign values to a javascript variable:
const cPicker = new ColorPicker({
onClickOutside(e){
},
onInput(color){
window['color'] = color;
},
onChange(color){
window['result'] = color;
}
})
And then
it('Should call all callbacks with correct arguments', async() => {
await page.goto(`http://localhost:5000/tests/visual/basic.html`, {waitUntil:'load'})
// Wait until the next frame
await page.evaluate(() => new Promise(requestAnimationFrame))
// Act
// Assert
const result = await page.evaluate(() => window['color']);
// Check the value
})
Check out the latest blogs from LambdaTest on this topic:
Native apps are developed specifically for one platform. Hence they are fast and deliver superior performance. They can be downloaded from various app stores and are not accessible through browsers.
One of the essential parts when performing automated UI testing, whether using Selenium or another framework, is identifying the correct web elements the tests will interact with. However, if the web elements are not located correctly, you might get NoSuchElementException in Selenium. This would cause a false negative result because we won’t get to the actual functionality check. Instead, our test will fail simply because it failed to interact with the correct element.
Smartphones have changed the way humans interact with technology. Be it travel, fitness, lifestyle, video games, or even services, it’s all just a few touches away (quite literally so). We only need to look at the growing throngs of smartphone or tablet users vs. desktop users to grasp this reality.
As part of one of my consulting efforts, I worked with a mid-sized company that was looking to move toward a more agile manner of developing software. As with any shift in work style, there is some bewilderment and, for some, considerable anxiety. People are being challenged to leave their comfort zones and embrace a continuously changing, dynamic working environment. And, dare I say it, testing may be the most ‘disturbed’ of the software roles in agile development.
LambdaTest’s Playwright tutorial will give you a broader idea about the Playwright automation framework, its unique features, and use cases with examples to exceed your understanding of Playwright testing. This tutorial will give A to Z guidance, from installing the Playwright framework to some best practices and advanced concepts.
Get 100 minutes of automation test minutes FREE!!