Best JavaScript code snippet using playwright-internal
basic-gallery.js
Source:basic-gallery.js
...38 var self = this;39 // Handle select change40 self.$filters.on('change', 'select', function(e) {41 e.preventDefault();42 self.parseFilters();43 });44 // Handle reset click45 self.$reset.on('click', function(e) {46 e.preventDefault();47 self.$filters.find('select').val('');48 self.parseFilters();49 });50 },51 // The parseFilters method pulls the value of each active select option52 parseFilters: function() {53 var self = this;54 // loop through each filter group and grap the value from each one.55 for (var i = 0, group; group = self.groups[i]; i++) {56 group.active = group.$dropdown.val();57 }58 self.concatenate();59 },60 // The "concatenate" method will crawl through each group, concatenating filters as desired:61 concatenate: function() {62 var self = this;63 self.outputString = ''; // Reset output string64 for (var i = 0, group; group = self.groups[i]; i++) {65 self.outputString += group.active;66 }67 // If the output string is empty, show all rather than none:68 !self.outputString.length && (self.outputString = 'all');69 //console.log(self.outputString);70 // ^ we can check the console here to take a look at the filter string that is produced71 // Send the output string to MixItUp via the 'filter' method:72 if (self.$container.mixItUp('isLoaded')) {73 self.$container.mixItUp('filter', self.outputString);74 }75 }76 };77 // To keep our code clean and modular, all custom functionality will be contained inside a single object literal called "checkboxFilter".78 var checkboxFilter = {79 // Declare any variables we will need as properties of the object80 $filters: null,81 $reset: null,82 groups: [],83 outputArray: [],84 outputString: '',85 // The "init" method will run on document ready and cache any jQuery objects we will need.86 init: function() {87 var self = this; // As a best practice, in each method we will asign "this" to the variable "self" so that it remains scope-agnostic. We will use it to refer to the parent "checkboxFilter" object so that we can share methods and properties between all parts of the object.88 self.$filters = $('#checkbox-filters');89 self.$reset = $('#mix-reset2');90 self.$container = $('#mix-container');91 self.$filters.find('fieldset').each(function() {92 self.groups.push({93 $inputs: $(this).find('input'),94 active: [],95 tracker: false96 });97 });98 self.bindHandlers();99 },100 // The "bindHandlers" method will listen for whenever a form value changes.101 bindHandlers: function() {102 var self = this;103 self.$filters.on('change', function() {104 self.parseFilters();105 });106 self.$reset.on('click', function(e) {107 e.preventDefault();108 self.$filters[0].reset();109 self.parseFilters();110 });111 },112 // The parseFilters method checks which filters are active in each group:113 parseFilters: function() {114 var self = this;115 // loop through each filter group and add active filters to arrays116 for (var i = 0, group; group = self.groups[i]; i++) {117 group.active = []; // reset arrays118 group.$inputs.each(function() {119 $(this).is(':checked') && group.active.push(this.value);120 });121 group.active.length && (group.tracker = 0);122 }123 self.concatenate();...
parser.filter.spec.js
Source:parser.filter.spec.js
...7const { expect } = chai;8describe('filter', () => {9 const app = express();10 app.use('/filter', (req, response) => {11 parseFilters(req.query, (error, projections) => {12 if (error) {13 throw error;14 } else {15 response.json(projections);16 }17 });18 });19 it('should be a function', () => {20 expect(parseFilters).to.exist;21 expect(parseFilters).to.be.a('function');22 expect(parseFilters.name).to.be.equal('filter');23 expect(parseFilters.length).to.be.equal(2);24 });25 describe('by search', () => {26 it('should parse search query', (done) => {27 const query = { filters: { q: 'a' } };28 parseFilters(JSON.stringify(query), (error, filter) => {29 expect(error).to.not.exist;30 expect(filter).to.exist;31 expect(filter.q).to.exist;32 expect(filter.q).to.be.eql(query.filters.q);33 done(error, filter);34 });35 });36 it('should parse search query', (done) => {37 const query = { q: 'a' };38 parseFilters(JSON.stringify(query), (error, filter) => {39 expect(error).to.not.exist;40 expect(filter).to.exist;41 expect(filter.q).to.exist;42 expect(filter.q).to.be.eql(query.q);43 done(error, filter);44 });45 });46 it('should parse http uri encode search query', (done) => {47 const query = { filters: { q: 'a' } };48 request(app)49 .get('/filter')50 .query(query)51 .expect(200, (error, response) => {52 expect(error).to.not.exist;53 const filter = response.body;54 expect(filter).to.exist;55 expect(filter.q).to.exist;56 expect(filter.q).to.be.eql(query.filters.q);57 done(error, response);58 });59 });60 it('should parse http uri encode search query', (done) => {61 const query = { filters: { q: 'a' } };62 request(app)63 .get('/filter?q=a')64 .expect(200, (error, response) => {65 expect(error).to.not.exist;66 const filter = response.body;67 expect(filter).to.exist;68 expect(filter.q).to.exist;69 expect(filter.q).to.be.eql(query.filters.q);70 done(error, response);71 });72 });73 });74 describe('by comparison query operators', () => {75 const comparisons = {76 $eq: { qty: { $eq: 20 } },77 $gt: { qty: { $gt: 20 } },78 $gte: { qty: { $gte: 20 } },79 $in: { qty: { $in: [5, 15] } },80 $lt: { qty: { $lt: 20 } },81 $lte: { qty: { $lte: 20 } },82 $ne: { qty: { $ne: 20 } },83 $nin: { qty: { $nin: [5, 15] } },84 };85 forEach(comparisons, (comparison, key) => {86 const encoded = qs.stringify({ filters: comparison });87 it(`should parse fields ${key} operator`, (done) => {88 const query = { filters: comparison };89 const next = (error, filter) => {90 expect(error).to.not.exist;91 expect(filter).to.exist;92 expect(filter).to.be.eql(comparison);93 done(error, filter);94 };95 parseFilters(JSON.stringify(query), next);96 });97 it(`should parse ${key} http uri encoded query operator`, (done) => {98 request(app)99 .get(`/filter?${encoded}`)100 .expect(200, (error, response) => {101 expect(error).to.not.exist;102 const filter = response.body;103 expect(filter).to.exist;104 expect(filter).to.be.eql(comparison);105 done(error, response);106 });107 });108 it(`should parse ${key} http json encoded query operator`, (done) => {109 const query = JSON.stringify(comparison);110 request(app)111 .get(`/filter?filter=${query}`)112 .expect(200, (error, response) => {113 expect(error).to.not.exist;114 const filter = response.body;115 expect(filter).to.exist;116 expect(filter).to.be.eql(comparison);117 done(error, response);118 });119 });120 it(`should parse ${key} http query operator`, (done) => {121 const query = { filters: comparison };122 request(app)123 .get('/filter')124 .query(query)125 .expect(200, (error, response) => {126 expect(error).to.not.exist;127 const filter = response.body;128 expect(filter).to.exist;129 expect(filter).to.be.eql(comparison);130 done(error, response);131 });132 });133 });134 });135 describe('by logical query operators', () => {136 const logicals = {137 $and: { $and: [{ price: { $ne: 1.99 } }, { price: { $exists: true } }] },138 $not: { price: { $not: { $gt: 1.99 } } },139 $or: { $or: [{ quantity: { $lt: 20 } }, { price: 10 }] },140 $nor: { $nor: [{ price: 1.99 }, { sale: true }] },141 };142 forEach(logicals, (logical, key) => {143 const encoded = qs.stringify({ filters: logical });144 it(`should parse fields ${key} operator`, (done) => {145 const query = { filters: logical };146 const next = (error, filter) => {147 expect(error).to.not.exist;148 expect(filter).to.exist;149 expect(filter).to.be.eql(logical);150 done(error, filter);151 };152 parseFilters(JSON.stringify(query), next);153 });154 it(`should parse ${key} http uri encoded query operator`, (done) => {155 request(app)156 .get(`/filter?${encoded}`)157 .expect(200, (error, response) => {158 expect(error).to.not.exist;159 const filter = response.body;160 expect(filter).to.exist;161 expect(filter).to.be.eql(logical);162 done(error, response);163 });164 });165 it.skip(`should parse ${key} http json encoded query operator`, (done) => {166 const query = JSON.stringify(logical);167 request(app)168 .get(`/filter?filter=${query}`)169 .expect(200, (error, response) => {170 expect(error).to.not.exist;171 const filter = response.body;172 expect(filter).to.exist;173 expect(filter).to.be.eql(logical);174 done(error, response);175 });176 });177 it.skip(`should parse ${key} http query operator`, (done) => {178 const query = { filters: logical };179 request(app)180 .get('/filter')181 .query(query)182 .expect(200, (error, response) => {183 expect(error).to.not.exist;184 const filter = response.body;185 expect(filter).to.exist;186 expect(filter).to.be.eql(logical);187 done(error, response);188 });189 });190 });191 });192 describe('by element query operators', () => {193 const elements = {194 $exists: { a: { $exists: true } },195 $type: { zipCode: { $type: 'string' } },196 };197 forEach(elements, (element, key) => {198 it(`should parse fields ${key} operator`, (done) => {199 const query = { filters: element };200 const next = (error, filter) => {201 expect(error).to.not.exist;202 expect(filter).to.exist;203 expect(filter).to.be.eql(element);204 done(error, filter);205 };206 parseFilters(JSON.stringify(query), next);207 });208 });209 });210 describe('by evaluation query operators', () => {211 const evaluations = {212 $expr: { $expr: { $gt: ['$spent', '$budget'] } },213 $jsonSchema: {},214 $mod: { qty: { $mod: [4, 0] } },215 $regex: { sku: { $regex: '/789$/' } },216 $text: { $text: { $search: 'coffee' } },217 $$where: {},218 };219 forEach(evaluations, (evaluation, key) => {220 it(`should parse fields ${key} operator`, (done) => {221 const query = { filters: evaluation };222 const next = (error, filter) => {223 expect(error).to.not.exist;224 expect(filter).to.exist;225 expect(filter).to.be.eql(evaluation);226 done(error, filter);227 };228 parseFilters(JSON.stringify(query), next);229 });230 });231 });232 describe('by geospatial query operators', () => {233 const geospatials = {234 $geoIntersects: {235 loc: {236 $geoIntersects: {237 $geometry: {238 type: 'Polygon',239 coordinates: [240 [241 [0, 0],242 [3, 6],243 [6, 1],244 [0, 0],245 ],246 ],247 },248 },249 },250 },251 $geoWithin: {252 loc: {253 $geoWithin: {254 $geometry: {255 type: 'Polygon',256 coordinates: [257 [258 [0, 0],259 [3, 6],260 [6, 1],261 [0, 0],262 ],263 ],264 },265 },266 },267 },268 $near: {269 loc: {270 $near: {271 $geometry: { type: 'Point', coordinates: [-73.9667, 40.78] },272 $minDistance: 1000,273 $maxDistance: 5000,274 },275 },276 },277 $nearSphere: {278 loc: {279 $nearSphere: {280 $geometry: {281 type: 'Point',282 coordinates: [-73.9667, 40.78],283 },284 $minDistance: 1000,285 $maxDistance: 5000,286 },287 },288 },289 $box: {290 loc: {291 $geoWithin: {292 $box: [293 [0, 0],294 [100, 100],295 ],296 },297 },298 },299 $center: {300 loc: {301 $geoWithin: {302 $center: [[-74, 40.74], 10],303 },304 },305 },306 $centerSphere: {307 loc: {308 $geoWithin: {309 $centerSphere: [[-88, 30], 10 / 3963.2],310 },311 },312 },313 $maxDistance: {314 loc: {315 $near: [-74, 40],316 $maxDistance: 10,317 },318 },319 $minDistance: {320 loc: {321 $near: [-74, 40],322 $minDistance: 10,323 },324 },325 $polygon: {326 loc: {327 $geoWithin: {328 $polygon: [329 [0, 0],330 [3, 6],331 [6, 0],332 ],333 },334 },335 },336 };337 forEach(geospatials, (geospatial, key) => {338 it(`should parse fields ${key} operator`, (done) => {339 const query = { filters: geospatial };340 const next = (error, filter) => {341 expect(error).to.not.exist;342 expect(filter).to.exist;343 expect(filter).to.be.eql(geospatial);344 done(error, filter);345 };346 parseFilters(JSON.stringify(query), next);347 });348 });349 });350 describe('by array query operators', () => {351 const arrays = {352 $all: {353 tags: {354 $all: [['ssl', 'security']],355 },356 },357 $elemMatch: { results: { $elemMatch: { $gte: 80, $lt: 85 } } },358 $size: { field: { $size: 1 } },359 };360 forEach(arrays, (array, key) => {361 it(`should parse fields ${key} operator`, (done) => {362 const query = { filters: array };363 const next = (error, filter) => {364 expect(error).to.not.exist;365 expect(filter).to.exist;366 expect(filter).to.be.eql(array);367 done(error, filter);368 };369 parseFilters(JSON.stringify(query), next);370 });371 });372 });...
mongodb-filters.js
Source:mongodb-filters.js
2const assert = require('assert');3const { ObjectId } = require('mongodb');4const MongoDBFilters = require('../lib/mongodb-filters');5describe('MongoDBFilters', () => {6 describe('parseFilters()', () => {7 const getModel = fields => {8 class Model {9 static get fields() {10 return fields;11 }12 }13 return new Model();14 };15 const id = '5df0151dbc1d570011949d86';16 const id2 = '5df0151dbc1d570011949d87';17 const date = new Date();18 it('Should return an empty object if no filters are passed', () => {19 assert.deepStrictEqual(MongoDBFilters.parseFilters(), {});20 });21 it('Should throw if invalid filters are passed', () => {22 assert.throws(() => MongoDBFilters.parseFilters(true));23 assert.throws(() => MongoDBFilters.parseFilters('invalid'));24 });25 it('Should throw if invalid filter types are passed', () => {26 assert.throws(() => MongoDBFilters.parseFilters({27 foo: {28 type: 'unknown',29 value: 'bar'30 }31 }, getModel()));32 });33 it('Should return an empty object if an empty object passed', () => {34 assert.deepStrictEqual(MongoDBFilters.parseFilters({}), {});35 });36 it('Should return an empty object if an empty array passed', () => {37 assert.deepStrictEqual(MongoDBFilters.parseFilters([]), {});38 });39 it('Should accept an unknown filter type if it starts with the $ character', () => {40 const parsedFilters = MongoDBFilters.parseFilters({41 foo: { type: '$lt', value: 10 }42 }, getModel());43 assert.deepStrictEqual(parsedFilters, {44 foo: {45 $lt: 1046 }47 });48 });49 it('Should return the filters as \'equal\' or \'in\' filters when no custom configuration is set', () => {50 const parsedFilters = MongoDBFilters.parseFilters({51 foo: ['bar'],52 baz: 1,53 date,54 nullable: null,55 nullable2: { type: 'notEqual', value: null },56 id57 }, getModel({58 foo: true59 }));60 assert.deepStrictEqual(parsedFilters, {61 foo: {62 $in: ['bar']63 },64 baz: {65 $eq: 166 },67 date: {68 $eq: date69 },70 nullable: {71 $eq: null72 },73 nullable2: {74 $ne: null75 },76 id: {77 $eq: id78 }79 });80 });81 it('Should map the ID fields to ObjectIDs', () => {82 const parsedFilters = MongoDBFilters.parseFilters({83 foo: 'bar',84 baz: 1,85 date,86 id,87 id2: [id, id2]88 }, getModel({89 id: {90 isID: true91 },92 id2: {93 isID: true94 }95 }));96 assert.deepStrictEqual(parsedFilters, {97 foo: {98 $eq: 'bar'99 },100 baz: {101 $eq: 1102 },103 date: {104 $eq: date105 },106 id: {107 $eq: ObjectId(id)108 },109 id2: {110 $in: [ObjectId(id), ObjectId(id2)]111 }112 });113 });114 it('Should use the filters types of filters and model fields in that order', () => {115 const parsedFilters = MongoDBFilters.parseFilters({116 foo: 'bar',117 baz: {118 type: 'notEqual',119 value: 1120 },121 search: 'Some text',122 date,123 id124 }, getModel({125 id: {126 isID: true127 },128 foo: {129 type: 'search'130 },131 search: {132 type: 'text'133 }134 }));135 assert.deepStrictEqual(parsedFilters, {136 foo: {137 $regex: /bar/i138 },139 baz: {140 $ne: 1141 },142 $text: {143 $search: 'Some text',144 $caseSensitive: false,145 $diacriticSensitive: false146 },147 date: {148 $eq: date149 },150 id: {151 $eq: ObjectId(id)152 }153 });154 });155 it('Should return the filters as \'equal\' (not \'in\') filters if type is explicitly is set or passed', () => {156 const parsedFilters = MongoDBFilters.parseFilters({157 foo: ['bar', 'bar2'],158 baz: {159 type: 'equal',160 value: [1, 2]161 },162 date,163 id164 }, getModel({165 foo: {166 type: 'equal'167 }168 }));169 assert.deepStrictEqual(parsedFilters, {170 foo: {171 $eq: ['bar', 'bar2']172 },173 baz: {174 $eq: [1, 2]175 },176 date: {177 $eq: date178 },179 id: {180 $eq: id181 }182 });183 });184 it('Should return the OR filters if they are passed as an array', () => {185 const parsedFilters = MongoDBFilters.parseFilters([186 {187 foo: 'bar'188 },189 {190 baz: {191 type: 'equal',192 value: [1, 2]193 },194 date195 }196 ], getModel());197 assert.deepStrictEqual(parsedFilters, {198 $or: [199 {200 foo: {201 $eq: 'bar'202 }203 },204 {205 baz: {206 $eq: [1, 2]207 },208 date: {209 $eq: date210 }211 }212 ]213 });214 });215 it('Should use the filters names of the model fields', () => {216 const parsedFilters = MongoDBFilters.parseFilters({217 foo: 'bar'218 }, getModel({219 foo: {220 field: 'superfoo'221 }222 }));223 assert.deepStrictEqual(parsedFilters, {224 superfoo: {225 $eq: 'bar'226 }227 });228 });229 it('Should allow multiple filter criteria for the same field', () => {230 const parsedFilters = MongoDBFilters.parseFilters({231 dateFrom: new Date('2019-12-11T00:00:00.000Z'),232 dateTo: new Date('2019-12-11T23:59:59.999Z')233 }, getModel({234 dateFrom: {235 field: 'date',236 type: 'greaterOrEqual'237 },238 dateTo: {239 field: 'date',240 type: 'lesserOrEqual'241 }242 }));243 assert.deepStrictEqual(parsedFilters, {244 date: {...
config.js
Source:config.js
...7 // https://github.com/projectcaluma/ember-caluma/blob/master/tests/dummy/app/templates/docs/testing.md8 this.post("/graphql", graphqlHandler(this), 200);9 this.namespace = "api/v1";10 this.get("/additional-emails", (schema, request) => {11 const query = parseFilters(request, [12 { source: "identity", target: "identityId" },13 ]);14 return schema.additionalEmails.where(query);15 });16 this.post("/additional-emails");17 this.get("/additional-emails/:id");18 this.patch("/additional-emails/:id");19 this.delete("/additional-emails/:id");20 this.get("/phone-numbers", (schema, request) => {21 const query = parseFilters(request, [22 { source: "identity", target: "identityId" },23 ]);24 return schema.phoneNumbers.where(query);25 });26 this.post("/phone-numbers");27 this.get("/phone-numbers/:id");28 this.patch("/phone-numbers/:id");29 this.delete("/phone-numbers/:id");30 this.get("/addresses", (schema, request) => {31 const query = parseFilters(request, [32 { source: "identity", target: "identityId" },33 ]);34 return schema.addresses.where(query);35 });36 this.post("/addresses");37 this.get("/addresses/:id");38 this.patch("/addresses/:id");39 this.delete("/addresses/:id");40 this.options("/addresses", () => {41 return {42 data: {43 actions: {44 POST: {45 country: {46 choices: [47 {48 value: "CH",49 display_name: "Schweiz",50 },51 ],52 },53 },54 },55 },56 };57 });58 this.get("/identities", (schema, request) => {59 const query = parseFilters(request, [60 { source: "isOrganisation", target: "isOrganisation" },61 ]);62 const pageSize = Number(request.queryParams["page[size]"]);63 const pageNumber = Number(request.queryParams["page[number]"] || 1);64 const search = request.queryParams.search?.toLowerCase();65 const keys = ["organisationName", "firstName", "lastName", "email"];66 const result = schema.identities.where(function (identity) {67 let result = !(search || Object.keys(query).length);68 if (search) {69 for (const key of keys) {70 if (identity[key]?.toLowerCase().includes(search)) {71 result = true;72 break;73 }74 }75 }76 if (Object.keys(query).length) {77 for (const key in query) {78 if (String(identity[key]) === query[key]) {79 result = true;80 break;81 }82 }83 }84 return result;85 });86 if (pageSize) {87 const start = (pageNumber - 1) * pageSize;88 const sliced = result.slice(start, start + pageSize);89 const json = this.serializerOrRegistry.serialize(sliced);90 json.meta = {91 pagination: {92 count: result.models.length,93 pages: Math.ceil(result.models.length / pageSize),94 page: pageNumber,95 },96 };97 return json;98 }99 return result;100 });101 this.post("/identities");102 this.get("/identities/:id");103 this.patch("/identities/:id");104 this.delete("/identities/:id");105 this.get("/interests");106 this.post("/interests");107 this.get("/interests/:id");108 this.patch("/interests/:id");109 this.delete("/interests/:id");110 this.get("/interest-categories");111 this.post("/interest-categories");112 this.get("/interest-categories/:id");113 this.patch("/interest-categories/:id");114 this.delete("/interest-categories/:id");115 this.get("/memberships", (schema, request) => {116 const query = parseFilters(request, [117 { source: "identity", target: "identityId" },118 ]);119 return schema.memberships.where(query);120 });121 this.post("/memberships");122 this.get("/memberships/:id");123 this.patch("/memberships/:id");124 this.delete("/memberships/:id");125 this.get("/membership-roles");126 this.post("/membership-roles");127 this.get("/membership-roles/:id");128 this.patch("/membership-roles/:id");129 this.delete("/membership-roles/:id");130 this.get("/snippets", (schema, request) => {131 const query = parseFilters(request, [132 { source: "archived", target: "archived" },133 ]);134 return schema.snippets.where(query);135 });136 this.post("/snippets");137 this.get("/snippets/:id");138 this.patch("/snippets/:id");139 this.get("/org-memberships", (schema, request) => {140 const query = parseFilters(request, [141 { source: "identity", target: "identityId" },142 ]);143 return schema.memberships.where(query);144 });...
query.spec.js
Source:query.spec.js
1import { generateQuery, parseSorts, parseFilters } from 'lib/query'2describe('parseFilters', () => {3 it('parses a single filter with a single value', () => {4 const param = ["manufacturer:DELL"]5 expect(parseFilters(param)).toEqual([["manufacturer", ["dell"]]])6 })7 it('parses a single filter with a multiple values', () => {8 const param = ["manufacturer:DELL,hp"]9 expect(parseFilters(param)).toEqual([["manufacturer", ["dell", "hp"]]])10 })11 it('parses multiple filters', () => {12 const param = ["manufacturer:dell,hp", "simple_category:thin client"]13 expect(parseFilters(param)).toEqual([["manufacturer", ["dell", "hp"]], ["simple_category", ["thin client"]]])14 })15 it('does not parse filters with invalid field names', () => {16 const param = ["manufa:dell"]17 expect(parseFilters(param)).toEqual([])18 })19 it('parses filters with spaces and ampersands', () => {20 const param = ["simple_category:keyboards%20%26%20mice,desktops"]21 expect(parseFilters(param)).toEqual([["simple_category", ["keyboards%20%26%20mice", "desktops"]]])22 })23})24describe('parseSorts', () => {25 it('parses a single sort', () => {26 const param = ["list_price:asc"]27 expect(parseSorts(param)).toEqual([['list_price', 'asc']])28 })29 it('parses multiple sorts', () => {30 const param = ["list_price:asc", "manufacturer:desc"]31 expect(parseSorts(param)).toEqual([['list_price', 'asc'], ['manufacturer', 'desc']])32 })33 it('does not parse sorts with an invalid direction', () => {34 const param = ["list_price:asc", "manufacturer:sca"]35 expect(parseSorts(param)).toEqual([['list_price', 'asc']])...
table.test.js
Source:table.test.js
...46 })47 })48 describe("Testing model parseFilters static methods", () => {49 it('should retrieve text filter with the given narratorId property', () => {50 const filter = TableModel.parseFilters({narratorId: 'foo'})51 expect(filter).toStrictEqual({ narratorId: 'foo'})52 })53 it('should retrieve text filter with the given name property', () => {54 const filter = TableModel.parseFilters({name: 'foo'})55 expect(filter).toStrictEqual({ $text : { $search : 'foo' } })56 })57 it('should retrieve text filter with the given system property', () => {58 const filter = TableModel.parseFilters({system: 'foo'})59 expect(filter).toStrictEqual({ $text : { $search : 'foo' } })60 })61 it('should retrieve text filter with the given tag property', () => {62 const filter = TableModel.parseFilters({tags: 'foo'})63 expect(filter).toStrictEqual({ tags: 'foo' })64 })65 it('should retrieve text filter with the given tag property', () => {66 const filter = TableModel.parseFilters({tags: 'foo', name: 'bar'})67 expect(filter).toStrictEqual({ tags: 'foo', $text : { $search : 'bar' } })68 })69 it('should retrive an $in object if many tags are given', () => {70 const filter = TableModel.parseFilters({tags: ['foo', 'bar']})71 expect(filter).toStrictEqual({ tags: {$in: ['foo', 'bar']} })72 })73 it('should retrieve text filter with the given online property', () => {74 const filter = TableModel.parseFilters({online: 'foo'})75 expect(filter).toStrictEqual({ online: 'foo'})76 })77 it('should retrieve text filter with the given recruiting property', () => {78 const filter = TableModel.parseFilters({recruiting: 'foo'})79 expect(filter).toStrictEqual({ recruiting: 'foo'})80 })81 })...
search.js
Source:search.js
...51 // search,52 orderBy,53 orderDirection,54 } = query;55 const filter = parseFilters(query.filters, schema);56 Model.countDocuments(filter, (err, totalCount) => {57 if (err) return rej(err);58 const absLimit = min(1000, abs(parseInt(limit, 10)) || 0);59 Model60 .find(filter, null, {61 skip: min(abs(parseInt(skip, 10)) || 0, totalCount),62 limit: absLimit,63 })64 .sort(`${orderDirection === 'asc' ? '' : '-'}${orderBy || 'updatedAt'}`)65 // eslint-disable-next-line no-shadow66 .exec((err, data) => {67 if (err) return rej(err);68 try {69 res({...
parse-filters.test.js
Source:parse-filters.test.js
1const test = require('ava')2const parseFilters = require('./parse-filters')3test('parses empty filters', t => {4 t.deepEqual(parseFilters(''), {})5})6test('parses page filter', t => {7 t.deepEqual(parseFilters('?p=%2Fsome%2Furl%2F'), {8 p: '/some/url/'9 })10})11test('parses referrer filter', t => {12 t.deepEqual(parseFilters('?r=https%3A%2F%2Fwww.google.com%2F'), {13 r: 'https://www.google.com/'14 })15})16test('ignores invalid filters', t => {17 t.deepEqual(parseFilters('?invalid=true'), {})...
Using AI Code Generation
1const { parseFilters } = require('playwright/lib/utils/utils');2const filters = parseFilters('browserName=firefox');3const { parseSelector } = require('playwright/lib/utils/utils');4const selector = parseSelector('css=div#id.class', 'body');5console.log(selector);6const { parseTestType } = require('playwright/lib/utils/utils');7const testType = parseTestType('unit');8console.log(testType);9const { parseTestType } = require('playwright/lib/utils/utils');10const testType = parseTestType('unit');11console.log(testType);12const { parseTestType } = require('playwright/lib/utils/utils');13const testType = parseTestType('unit');14console.log(testType);15const { parseTestType } = require('playwright/lib/utils/utils');16const testType = parseTestType('unit');17console.log(testType);18const { parseTestType } = require('playwright/lib/utils/utils');19const testType = parseTestType('unit');20console.log(testType);21const { parseTestType } = require('playwright/lib/utils/utils');22const testType = parseTestType('unit');23console.log(testType);24const { parseTestType } = require('playwright/lib/utils/utils');25const testType = parseTestType('unit');26console.log(testType);27const { parseTestType } = require('playwright/lib/utils/utils');28const testType = parseTestType('unit');29console.log(testType);30const { parseTestType } = require('playwright/lib/utils/utils');31const testType = parseTestType('unit');32console.log(testType);33const { parseTestType } = require('playwright/lib/utils/utils');
Using AI Code Generation
1const { parseFilters } = require('playwright/lib/utils/filters');2const { parseTest } = require('playwright/lib/utils/test');3const { parseTestModifier } = require('playwright/lib/utils/testModifier');4const { parseTestType } = require('playwright/lib/utils/testType');5const test = parseTest('test', parseTestModifier('only'), parseTestType('test'));6const test1 = parseTest('test1', parseTestModifier('only'), parseTestType('test'));7const test2 = parseTest('test2', parseTestModifier('only'), parseTestType('test'));8const filter = parseFilters([test, test1, test2, 'test3']);9console.log(filter);10const { parseFilters } = require('playwright/lib/utils/filters');11const { parseTest } = require('playwright/lib/utils/test');12const { parseTestModifier } = require('playwright/lib/utils/testModifier');13const { parseTestType } = require('playwright/lib/utils/testType');14const filter = parseFilters(['test', 'test1', 'test2', 'test3']);15console.log(filter);16const { parseFilters } = require('playwright/lib/utils/filters');17const { parseTest } = require('playwright/lib/utils/test');18const { parseTestModifier } = require('playwright/lib/utils/testModifier');19const { parseTestType } = require('playwright/lib/utils/testType');20const filter = parseFilters(['test']);21console.log(filter);22const { parseFilters } = require('playwright/lib/utils/filters');23const { parseTest } = require('playwright/lib/utils/test');24const { parseTestModifier } = require('playwright/lib/utils/testModifier');25const { parseTestType } = require
Using AI Code Generation
1const { parseFilters } = require('playwright/lib/server/filters');2const filters = parseFilters('foo,bar,baz');3console.log(filters);4const { parseFilters } = require('playwright/lib/server/filters');5const filters = parseFilters('foo=1,bar=2,baz=3');6console.log(filters);7const { parseFilters } = require('playwright/lib/server/filters');8const filters = parseFilters('foo=1,bar=2,baz=3,foo=4');9console.log(filters);10const { parseFilters } = require('playwright/lib/server/filters');11const filters = parseFilters('foo=1,bar=2,baz=3,foo=4,foo=5');12console.log(filters);13const { parseFilters } = require('playwright/lib/server/filters');14const filters = parseFilters('foo=1,bar=2,baz=3,foo=4,foo=5,foo=6,foo=7');15console.log(filters);16const { parseFilters } = require('playwright/lib/server/filters');17const filters = parseFilters('foo=1,bar=2,baz=3,foo=4,foo=5,foo=6,foo=7,foo=8');
Using AI Code Generation
1const { parseFilters } = require('playwright/lib/utils/filters');2console.log(filters);3page.route()4page.route()5page.route()6page.route()7page.route()
Using AI Code Generation
1const { parseFilters } = require('playwright-core/lib/utils/utils');2const filters = parseFilters('foo=bar, baz=42');3console.log(filters);4const { parseQueryParams } = require('playwright-core/lib/utils/utils');5const params = parseQueryParams('?foo=bar&baz=42');6console.log(params);7const { parseHeaders } = require('playwright-core/lib/utils/utils');8const headers = parseHeaders('foo: bar9baz: 42');10console.log(headers);11const { parseCookies } = require('playwright-core/lib/utils/utils');12const cookies = parseCookies('foo=bar; baz=42');13console.log(cookies);14const { parseSelector } = require('playwright-core/lib/utils/utils');15const selector = parseSelector('text=foo');16console.log(selector);17const { parseTimeout } = require('playwright-core/lib/utils/utils');18const timeout = parseTimeout('1.5min');19console.log(timeout);20const { waitForEvent } = require('playwright-core/lib/utils/utils');21const eventEmitter = new EventEmitter();22const promise = waitForEvent(eventEmitter, 'foo');23eventEmitter.emit('foo', 'bar');24const result = await promise;25console.log(result);26const { waitForEvent } = require('playwright-core/lib/utils/utils');
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!!