How to use checkInFor method in Playwright Internal

Best JavaScript code snippet using playwright-internal

usercontroller.js

Source:usercontroller.js Github

copy

Full Screen

1const usermodels = require('../models/user');2const db = usermodels.getAccount;3const cartmodels = require('../models/cart');4const dbcart = cartmodels.getCart;5const productmodels = require('../models/products');6const dbproduct = productmodels.getProduct;7const registerseller = require('../models/registerseller');8const dbregisterseller = registerseller.getRegister;9const category = require('../models/category');10const dbcategory = category.getCategory;11const watchlistcontroller = require('../models/watchlist');12const dbwatchlist = watchlistcontroller.getWatchlist;13const biddingcontroller = require('../models/bidding');14const dbbidding = biddingcontroller.getBidding;15const pointbidcontroller = require('../models/pointbidder');16const dbpointbid = pointbidcontroller.getpointbidder;17const historymodels = require('../models/history');18const dbhistory = historymodels.getHistory;19const reviewcontroller = require('../models/review');20const dbreview = reviewcontroller.getReviews; 21const bcrypt = require('bcryptjs');22var ObjectId = require('mongodb').ObjectId;23// for user24class userController {25 //Signup/in26 //----------get-----------------------27 showSignup(req, res) {28 req.logout();29 req.session.destroy();30 if (req.user != undefined && req.user != null) {31 router.redirect('/');32 }33 res.render('signup_in', {34 title: 'Sign in/ Sign up',35 checksignin: true,36 messenger: req.user37 });38 }39 //----------post----------------------40 async setPostSignup(req, res) {41 var arr = [];42 var a = +req.body.a;43 var b = +req.body.b;44 var c = a + b;45 var captcha = +req.body.captcha;46 var checkInfor = {47 fullname: req.body.fullname,48 name: req.body.name,49 pass: req.body.password,50 email: req.body.email,51 phone: req.body.phone,52 address: req.body.address,53 status: "Bidder",54 birthday: req.body.birthday55 };56 // kiem tra username co ton tai hay k57 await db.find({58 name: checkInfor.name59 }).then(function (docs) {60 // arr.push(docs);61 docs.forEach(element => {62 arr.push(element);63 })64 });65 if (arr.length != 0) {66 // res.redirect('/users/signup');67 res.render('signup_in', {68 title: 'Sign in/ Sign up',69 errusername: "*Username exist!",70 checksignup: true71 });72 arr = [];73 }74 else {75 // kiem tra mat khau lon hon 6 ki tu76 if (checkInfor.pass.length < 6) {77 res.render('signup_in', {78 title: 'Sign in/ Sign up',79 errpass: "*Password must be at least 6 characters!",80 checksignup: true81 });82 }83 else {84 // kiem tra mat khau nhap lai co khop k85 var repass = req.body.repassword;86 if (!(repass === checkInfor.pass)) {87 res.render('signup_in', {88 title: 'Sign in/ Sign up',89 errrepass: "*Do not match!",90 checksignup: true91 });92 }93 else {94 // kiem tra email tai hay k95 var i = 0;96 var temp = 1;97 for (i; i < checkInfor.email.length; i = i + 1) {98 if (checkInfor.email[i] === ' ') {99 temp = 0;100 i = checkInfor.email.length;101 } else {102 if (checkInfor.email[i] === '@') {103 var a = "";104 i = i + 1;105 for (i; i < checkInfor.email.length; i++) {106 a = a + checkInfor.email[i];107 //a.push(checkInfor.email[j]);108 }109 if (a === "gmail.com" || a === "yahoo.com") {110 temp = 1;111 } else {112 temp = 0;113 }114 }115 }116 }117 if (temp === 0) {118 res.render('signup_in', {119 title: 'Sign in/ Sign up',120 erremail: "*Email wrong!",121 checksignup: true122 });123 }124 else {125 await db.find({126 email: checkInfor.email127 }).then(function (docs) {128 // arr.push(docs);129 docs.forEach(element => {130 arr.push(element);131 })132 });133 if (arr.length != 0) {134 // res.redirect('/users/signup');135 res.render('signup_in', {136 title: 'Sign in/ Sign up',137 erremail: "*Email exist!",138 checksignup: true139 });140 arr = [];141 }142 else {143 //kiem tra so dien thoai144 await db.find({145 phone: checkInfor.phone146 }).then(function (docs) {147 // arr.push(docs);148 docs.forEach(element => {149 arr.push(element);150 })151 });152 if (arr.length != 0) {153 // res.redirect('/users/signup');154 res.render('signup_in', {155 title: 'Sign in/ Sign up',156 errphone: "*Phone number exist!",157 checksignup: true158 });159 arr = [];160 }161 else {162 // kiem tra captcha163 if (c != captcha) {164 res.render('signup_in', {165 title: 'Sign in/ Sign up',166 errcaptcha: "*Captcha wrong!",167 checksignup: true168 });169 } else {170 await usermodels.hashPassword(checkInfor.pass).then(function (doc) {171 const user = {172 fullname: checkInfor.fullname,173 name: checkInfor.name,174 pass: doc,175 phone: checkInfor.phone,176 email: checkInfor.email,177 address: checkInfor.address,178 status: checkInfor.status,179 birthday: checkInfor.birthday,180 }181 usermodels.insert(user);182 res.redirect('/');183 });184 }185 }186 }187 }188 }189 }190 }191 }192 //for user193 //----------get-----------------------194 async showAccount(req, res) {195 var checkuser = false;196 var nameuser;197 var rate = 0;198 var count = 0;199 if (req.user) {200 checkuser = true;201 nameuser = req.user.name;202 var isSeller = true;203 if (req.user.status != "Seller") {204 isSeller = false;205 }206 else {207 await dbreview.find({ user: req.user.name }).then(docs => {208 docs.forEach(element => {209 rate = rate + element.rate;210 count = count + 1;211 });212 })213 if (count === 0) {214 count = 1;215 }216 rate = rate / count;217 }218 }219 var pointbid = 0;220 await dbpointbid.findOne({221 user: req.user.name222 }).then(doc => {223 if (doc) {224 pointbid = doc.pluspoint - doc.minuspoint;225 }226 });227 res.render('account', {228 title: 'Account',229 checkuser,230 nameuser,231 account: req.user,232 pointbid,233 rate,234 isSeller,235 });236 }237 async showFavorites(req, res) {238 var checkuser = false;239 var nameuser;240 if (req.user) {241 checkuser = true;242 nameuser = req.user.name;243 var isSeller = true;244 if (req.user.status != "Seller") {245 isSeller = false;246 }247 }248 var arrfavorite = [];249 await dbwatchlist.find({250 user: req.user.name251 }).then(docs => {252 docs.forEach(element => {253 arrfavorite.push(element);254 });255 });256 var arrproduct = [];257 for (var i = 0; i < arrfavorite.length; i++) {258 await dbproduct.findOne({259 _id: ObjectId(arrfavorite[i].idsanpham)260 }).then(doc => {261 arrproduct.push(doc);262 })263 }264 res.render('favoriteproducts', {265 title: 'Favorites',266 checkuser,267 nameuser,268 account: req.user,269 list: arrproduct,270 isSeller271 });272 }273 async showCart(req, res) {274 var checkuser = false;275 var nameuser;276 if (req.user) {277 checkuser = true;278 nameuser = req.user.name;279 var isSeller = true;280 if (req.user.status != "Seller") {281 isSeller = false;282 }283 }284 var cart = [];285 await dbcart.find({286 user: req.user.name287 }).then(docs => {288 docs.forEach(element => {289 cart.push(element);290 })291 });292 // ObjectId;293 for (var i = 0; i < cart.length; i++) {294 await dbproduct.findOne({295 _id: ObjectId(cart[i].idsanpham)296 }).then(doc => {297 cart[i].tensp = doc.ten;298 cart[i].seller = doc.user;299 cart[i].image = doc.image[0];300 });301 await dbbidding.findOne({302 idsanpham: cart[i].idsanpham303 }).then(doc => {304 if (doc) {305 cart[i].numbid = doc.bidding;306 cart[i].num = doc.soluot;307 }308 })309 }310 res.render('mycart', {311 title: 'My cart',312 checkuser,313 nameuser,314 cart,315 isSeller,316 });317 }318 async showMyAutions(req, res) {319 var checkuser = false;320 var nameuser;321 if (req.user) {322 checkuser = true;323 nameuser = req.user.name;324 var isSeller = true;325 if (req.user.status != "Seller") {326 isSeller = false;327 }328 }329 var arrbidding = [];330 await dbbidding.find({331 'bidding.user': req.user.name332 }).then(docs => {333 docs.forEach(element => {334 arrbidding.push(element);335 })336 })337 var arrproduct = [];338 console.log(arrbidding.length);339 for (var i = 0; i < arrbidding.length; i++) { //5pt340 await dbproduct.findOne({341 _id: ObjectId(arrbidding[i].idsanpham)342 }).then(doc => {343 if (doc) { //3pt344 arrproduct.push(doc);345 }346 })347 if (arrbidding[i].currentwinner === req.user.name) {348 arrproduct[i].curwin = true;349 }350 arrproduct[i].idsanpham = arrproduct[i]._id.toString();351 }352 console.log(arrproduct);353 res.render('biddingproduct', {354 title: "My Autions",355 checkuser,356 nameuser,357 account: req.user,358 list: arrproduct,359 isSeller,360 })361 }362 showBid(req, res) {363 var checkuser = false;364 var nameuser;365 if (req.user) {366 checkuser = true;367 nameuser = req.user.name;368 var isSeller = true;369 if (req.user.status != "Seller") {370 isSeller = false;371 }372 }373 // ObjectId;374 res.render('mybid', {375 title: 'My Bid',376 checkuser,377 nameuser,378 isSeller,379 });380 }381 async showHistory(req, res) {382 var checkuser = false;383 var nameuser;384 if (req.user) {385 checkuser = true;386 nameuser = req.user.name;387 var isSeller = true;388 if (req.user.status != "Seller") {389 isSeller = false;390 }391 }392 var arrhistory = [];393 await dbhistory.find({394 user: req.user.name395 }).then(docs => {396 docs.forEach(element => {397 arrhistory.push(element);398 })399 });400 for (var i = 0; i < arrhistory.length; i++) {401 await dbproduct.findOne({402 _id: ObjectId(arrhistory[i].idsanpham)403 }).then(doc => {404 arrhistory[i].tensp = doc.ten;405 arrhistory[i].seller = doc.user;406 arrhistory[i].image = doc.image[0];407 })408 }409 res.render('myhistory', {410 title: "My History",411 checkuser,412 nameuser,413 account: req.user,414 list: arrhistory,415 isSeller416 })417 }418 async showMyProducts(req, res) {419 var checkuser = false;420 var nameuser;421 if (req.user) {422 checkuser = true;423 nameuser = req.user.name;424 var isSeller = true;425 if (req.user.status != "Seller") {426 isSeller = false;427 }428 }429 var arrproduct = [];430 await dbproduct.find({431 user: req.user.name432 }).then(docs => {433 docs.forEach(element => {434 arrproduct.push(element);435 })436 })437 res.render('myproducts', {438 title: "My Products",439 checkuser,440 nameuser,441 account: req.user,442 list: arrproduct,443 isSeller,444 })445 }446 showChangePassword(req, res) {447 var checkuser = false;448 var nameuser;449 if (req.user) {450 checkuser = true;451 nameuser = req.user.name;452 var isSeller = true;453 if (req.user.status != "Seller") {454 isSeller = false;455 }456 }457 res.render('changepassword', {458 title: 'Change password',459 checkuser,460 nameuser,461 account: req.user,462 });463 }464 //----------post----------------------465 async setPostAccount(req, res) {466 // var iduser=req.user._id;467 var myquery = {468 _id: req.user._id469 }470 var changeAcc = {471 fullname: req.body.fullnamechange,472 phone: req.body.phonechange,473 address: req.body.addresschange,474 };475 var options = {476 multi: true477 }478 // usermodels.UpdateInfoAccount(changeAcc,iduser);479 await db.update(myquery, changeAcc, options);480 res.redirect('/../users/account');481 }482 async setPostPassword(req, res) {483 var oldpass = req.body.oldpass;484 var newpass = req.body.newpass;485 var renewpass = req.body.renewpass;486 var checkuser = false;487 var nameuser;488 if (req.user) {489 checkuser = true;490 nameuser = req.user.name;491 var isSeller = true;492 if (req.user.status != "Seller") {493 isSeller = false;494 }495 }496 if (req.user != undefined && req.user != null) {497 bcrypt.compare(oldpass, req.user.pass, async (err, isMatch) => {498 console.log(isMatch);499 if (err) throw err;500 if (!isMatch) {501 res.render('changepassword', {502 title: 'Change password',503 erroldpass: "*Password wrong!",504 checkuser,505 nameuser,506 });507 } else {508 //kiem tra matkhau moi co du 6 ki tu hay khong509 if (newpass < 6) {510 res.render('changepassword', {511 title: 'Change password',512 errnewpass: "*Password must be at least 6 characters!",513 checkuser,514 nameuser,515 });516 }517 // kiem tra mat khau nhap lai co khop k518 else if (!(newpass === renewpass)) {519 res.render('changepassword', {520 title: 'Change password',521 errrenewpass: "*Do not match!",522 checkuser,523 nameuser,524 });525 } else {526 var change;527 await usermodels.hashPassword(newpass).then(function (doc) {528 change = doc;529 });530 var myquery = {531 _id: req.user._id532 }533 var changePass = {534 pass: change,535 };536 var options = {537 multi: true538 }539 // usermodels.UpdateInfoAccount(changeAcc,iduser);540 await db.update(myquery, changePass, options);541 res.redirect('/../users/account');542 }543 }544 });545 }546 }547 async setPostRegisterSeller(req, res) {548 if (req.user != undefined && req.user != null) {549 var name = req.user.name;550 }551 var point = 0;552 await dbpointbid.findOne({553 user: name554 }).then(doc => {555 if (doc) {556 point = doc.pluspoint - doc.minuspoint;557 }558 });559 var entity = {560 name: name,561 point: point562 };563 await registerseller.insert(entity);564 res.redirect('/');565 }566 // async setPostDeleteBidding(req, res) {567 // var idpro = req.params.idpro;568 // var idbid = req.params.idbidder;569 // var newListBid = [];570 // var oldlist = [];571 // var acc={};572 // await dbbidding.findOne({ idsanpham: idpro }).then(doc => {573 // oldlist = doc.bidding;574 // acc=doc;575 // });576 // for (var i = 0; i < oldlist.length; i++) {577 // if (oldlist[i].user != idbid) {578 // newListBid.push(oldlist[i]);579 // }580 // }581 // var myquery = {582 // _id: ObjectId(acc._id)583 // }584 // var changeAcc = {585 // bidding:newListBid,586 // };587 // var options = {588 // multi: true589 // }590 // // usermodels.UpdateInfoAccount(changeAcc,iduser);591 // await dbbidding.update(myquery, changeAcc, options);592 // res.redirect('products/detailproduct/'+idpro);593 // }594 //for admin595 //----------get-----------------------596 async showManageUser(req, res) {597 var arrbid = [];598 await db.find({599 status: "Bidder"600 }).then(docs => {601 docs.forEach(element => {602 arrbid.push(element);603 })604 });605 var regist = [];606 await dbregisterseller.find({}).then(docs => {607 docs.forEach(element => {608 regist.push(element);609 });610 });611 for (var i = 0; i < arrbid.length; i++) {612 arrbid[i].pluspoint = 0;613 arrbid[i].minuspoint = 0;614 arrbid[i].pointbid = 0;615 await dbpointbid.findOne({616 user: arrbid[i].name617 }).then(doc => {618 if (doc) {619 arrbid[i].pluspoint = doc.pluspoint;620 arrbid[i].minuspoint = doc.minuspoint;621 arrbid[i].pointbid = doc.pluspoint - doc.minuspoint;622 }623 })624 }625 var checkbid = false;626 // var checksell = false;627 // var checkregist = false;628 if (arrbid.length === 0) {629 checkbid = true;630 }631 res.render('bidder', {632 title: "Manage user",633 listbid: arrbid,634 checkbid,635 totalregist: regist.length,636 });637 }638 async showListSell(req, res) {639 var arrsell = [];640 await db.find({641 status: "Seller"642 }).then(docs => {643 docs.forEach(element => {644 arrsell.push(element);645 })646 });647 for (var i = 0; i < arrsell.length; i++) {648 await dbproduct.find({649 user: arrsell[i].name650 }).then(docs => {651 arrsell[i].totalproduct = docs.length;652 })653 }654 for (var i = 0; i < arrsell.length; i++) {655 arrsell[i].pluspoint = 0;656 arrsell[i].minuspoint = 0;657 arrsell[i].pointbid = 0;658 await dbpointbid.findOne({659 user: arrsell[i].name660 }).then(doc => {661 if (doc) {662 arrsell[i].pluspoint = doc.pluspoint;663 arrsell[i].minuspoint = doc.minuspoint;664 arrsell[i].pointbid = doc.pluspoint - doc.minuspoint;665 }666 })667 }668 for (var i = 0; i < arrsell.length; i++) {669 var rate = [];670 await dbreview.find({671 user: arrsell[i].name672 }).then(docs => {673 docs.forEach(element => {674 rate.push(element);675 });676 });677 var temp = 0;678 var count = 0;679 for (var j = 0; j < rate.length; j++) {680 if (rate[j].user === arrsell[i].name) {681 temp = temp + rate[j].rate;682 count = count + 1;683 }684 }685 if (count === 0) {686 count = 1;687 }688 temp = temp / count;689 arrsell[i].rate = temp;690 }691 var checksell = false;692 if (arrsell.length === 0) {693 checksell = true;694 }695 var regist = [];696 await dbregisterseller.find({}).then(docs => {697 docs.forEach(element => {698 regist.push(element);699 });700 });701 res.render('seller', {702 title: "Manage user",703 listsell: arrsell,704 checksell,705 totalregist: regist.length706 });707 }708 async showRegister(req, res) {709 // var arrbid = [];710 // var arrsell = [];711 var regist = [];712 await dbregisterseller.find({}).then(docs => {713 docs.forEach(element => {714 regist.push(element);715 });716 });717 var checkregist = false;718 if (regist.length === 0) {719 checkregist = true;720 }721 res.render('register', {722 title: "Manage user",723 listregist: regist,724 // checkbid,725 // checksell,726 checkregist,727 totalregist: regist.length,728 });729 }730 async showManageCategory(req, res) {731 var arrCate = [];732 var check = [];733 var temp = [];734 await dbcategory.find({}).then(docs => {735 docs.forEach(element => {736 temp.push(element);737 })738 });739 for (var i = 0; i < temp.length; i++) {740 var existpro = [];741 var temp2 = {};742 await dbproduct.find({743 loai: temp[i].idcat744 }).then(docs => {745 docs.forEach(elements => {746 existpro.push(elements);747 });748 });749 if (existpro.length === 0 && temp[i].idcat != 'all') {750 temp2 = {751 idcat: temp[i].idcat,752 cate: temp[i].cate,753 check: false,754 }755 } else {756 temp2 = {757 idcat: temp[i].idcat,758 cate: temp[i].cate,759 check: true,760 }761 }762 arrCate.push(temp2);763 }764 res.render('managecategory', {765 title: "Manage Category",766 cate: arrCate,767 });768 }769 async showProductCate(req, res) {770 var idcat = req.params.id;771 var listcate = [];772 var product = [];773 await dbcategory.find({}).then(docs => {774 docs.forEach(element => {775 listcate.push(element);776 });777 });778 if (idcat === "all") {779 await dbproduct.find({}).then(docs => {780 docs.forEach(element => {781 product.push(element);782 })783 });784 } else {785 await dbproduct.find({786 loai: idcat787 }).then(docs => {788 docs.forEach(element => {789 product.push(element);790 })791 });792 }793 for (var i = 0; i < product.length; i++) {794 product[i].soluot = 0;795 await dbbidding.findOne({796 idsanpham: product[i]._id.toString()797 }).then(doc => {798 if (doc) {799 product[i].soluot = doc.soluot;800 }801 })802 }803 console.log(product);804 res.render('manageproduct', {805 tittle: "Manage product",806 product,807 listcate,808 });809 }810 //----------post----------------------811 async setPostRegistConfirm(req, res) {812 var name = req.body.user;813 var acc = {};814 await db.findOne({815 name816 }).then(doc => {817 acc = doc;818 })819 if (acc.length === 0) {820 res.redirect('/users/manageuser/register');821 } else {822 var myquery = {823 _id: ObjectId(acc._id)824 }825 var changeAcc = {826 status: "Seller",827 };828 var options = {829 multi: true830 }831 // usermodels.UpdateInfoAccount(changeAcc,iduser);832 await db.update(myquery, changeAcc, options);833 await dbregisterseller.findOneAndRemove({834 name835 });836 usermodels.sendemail(req, res, acc.email,"Thành công","Đã được xác nhận trở thành seller!");837 res.redirect('/users/manageuser/register');838 }839 }840 async setPostRegistDelete(req, res) {841 var name = req.body.id;842 await dbregisterseller.findOneAndRemove({843 name844 });845 usermodels.sendemail(req, res, acc.email,"Thất bại","Đăng kí thành seller thất bại!");846 res.redirect('/users/manageuser/register');847 }848 async setPostDeleteProduct(req, res) {849 var nameproduct = req.body.namepro;850 var nameseller = req.body.nameseller;851 var result = {}852 await dbproduct.findOneAndRemove({853 ten: nameproduct,854 user: nameseller855 });856 var acc={};857 await db.findOne({name:nameseller}).then(doc=>{858 acc=doc;859 });860 usermodels.sendemail(req, res, acc.email,"Thông báo","Một sản phẩm của bạn đã bị xóa!");861 res.redirect('/users/manageproduct/all');862 }863 async setPostDeleteCate(req, res) {864 var cate = req.body.cate;865 await dbcategory.findOneAndRemove({866 cate867 });868 res.redirect('/users/managecategory');869 }870 async setPostInsertCate(req, res) {871 var newcate = {872 cate: req.body.insert,873 idcat: req.body.idcat,874 }875 category.insert(newcate);876 res.redirect('/users/managecategory');877 }878 async setPostRenameCate(req, res) {879 var cate = req.body.oldcate;880 var findcate = {};881 await dbcategory.findOne({882 cate883 }).then(doc => {884 findcate = doc;885 })886 var myquery = {887 _id: ObjectId(findcate._id)888 }889 var changeCate = {890 cate: req.body.newcate,891 idcat: req.body.newid,892 };893 var options = {894 multi: true895 }896 // usermodels.UpdateInfoAccount(changeAcc,iduser);897 await dbcategory.update(myquery, changeCate, options);898 res.redirect('/users/managecategory');899 }900 async setPostCancelSeller(req, res) {901 var name = req.body.leveldown;902 var acc = {};903 await db.findOne({904 name905 }).then(doc => {906 acc = doc;907 })908 if (acc.length === 0) {909 res.redirect('/users/manageuser/listsell');910 } else {911 var myquery = {912 _id: ObjectId(acc._id)913 }914 var changeAcc = {915 status: "Bidder",916 };917 var options = {918 multi: true919 }920 // usermodels.UpdateInfoAccount(changeAcc,iduser);921 await db.update(myquery, changeAcc, options);922 usermodels.sendemail(req, res, acc.email,"Thông báo","Bạn bị hạ cấp thành bidder, bạn sẽ không đực hưởng các chế độ của seller!");923 res.redirect('/users/manageuser/listsell');924 }925 }926 //post my cart927 async postDeleteMyCart(req, res) {928 var namepro = req.body.namepro;929 var nameseller = req.body.nameseller;930 var product = {};931 await dbproduct.findOne({932 ten: namepro,933 user: nameseller934 }).then(doc => {935 product = doc;936 })937 await dbcart.deleteOne({938 idsanpham: product._id.toString()939 });940 var pointbidder = {};941 await dbpointbid.findOne({942 user: req.user.name943 }).then(doc => {944 pointbidder = doc;945 });946 var review = {947 msg: "Đấu giá thằng mà không mua",948 user: product.user,949 idsanpham: product._id.toString()950 }951 if (pointbidder) {952 if (pointbidder) {953 var myquery = {954 user: req.user.name955 }956 var minuspoint = pointbidder.minuspoint;957 var arr = [];958 arr = pointbidder.reviews;959 arr.push(review);960 console.log(arr);961 var change = {962 minuspoint: minuspoint + 1,963 reviews: arr964 };965 console.log(change);966 var options = {967 multi: true968 }969 await dbpointbid.update(myquery, change, options);970 } else {971 entity = {972 user: req.user.name,973 pluspoint: 0,974 minuspoint: 1,975 reviews: [review]976 }977 pointbidcontroller.insert(entity);978 }979 // _id: Object,980 // user: String,981 // idsanpham: String,982 // status: String983 var entity = {984 user: req.user.name,985 idsanpham: product._id.toString(),986 status: "cancel"987 }988 historymodels.insert(entity);989 }990 res.redirect('/users/mycart');991 }992 async postBuyProductNow(req, res) {993 var idsanpham = req.params.id;994 var product = {};995 await dbproduct.findOne({996 _id: ObjectId(idsanpham)997 }).then(doc => {998 product = doc;999 });1000 //history1001 var entity = {1002 user: req.user.name,1003 idsanpham: idsanpham,1004 status: "purchased"1005 }1006 historymodels.insert(entity);1007 await dbcart.deleteOne({1008 idsanpham: product._id.toString()1009 });1010 res.redirect('/users/mycart');1011 }1012}...

Full Screen

Full Screen

CheckInOutTable.js

Source:CheckInOutTable.js Github

copy

Full Screen

1import React from "react"2import { Label, Glyphicon, Tooltip, OverlayTrigger } from "react-bootstrap"3import { TableHeaderColumn, BootstrapTable } from "react-bootstrap-table"4import PropTypes from "prop-types"5import Alert from "react-bootstrap/lib/Alert"6import { Icon } from "react-fa"78import * as api from "../../constants/api"9import EmptyStateContainer from "../../containers/EmptyStateContainer"10import { format } from "../../utils/datetime"1112const propTypes = {13 jobId: PropTypes.number.isRequired,14 tierId: PropTypes.number.isRequired,15 auth: PropTypes.object,16}1718const defaultProps = {19 auth: {},20}2122export default class CheckInOutTable extends React.Component {23 constructor(props) {24 super(props)2526 this.state = {27 items: [],28 isFetching: false,29 }3031 this.checkInFormatter = this.checkInFormatter.bind(this)32 this.dateFormatter = this.dateFormatter.bind(this)33 this.checkOutFormatter = this.checkOutFormatter.bind(this)34 this.offlineFormatter = this.offlineFormatter.bind(this)35 }3637 componentDidMount() {38 this.getIvr()39 }4041 getIvr() {42 if (this.state.isFetching) {43 return44 }4546 this.setState({ isFetching: true })47 const url = `${api.TIMELOG_ENDPOINT}${this.props.jobId}`4849 this.props.auth50 .request("get", url)51 .query({ tierId: this.props.tierId })52 .then(53 response => {54 if (!response.ok) {55 throw Error(response.statusText)56 }5758 if (response.body.IsSuccess === true) {59 this.setState({ items: response.body.TimeLogs })60 } else {61 console.log("failed to get checkins/checkouts issuccess = false")62 }63 },64 () => {65 console.log("failed to get checkins/checkouts")66 },67 )68 .then(() => {69 this.setState({ isFetching: false })70 })71 }7273 checkInFormatter(cell, row) {74 const mobileToolTip = (75 <Tooltip id="checkInViaToolTip">76 {row.CheckInIsMobile ? "Check In via mobile" : "Check In via web"}77 </Tooltip>78 )79 const offLineToolTip = (80 <Tooltip id="checkInOffLineToolTip">81 {row.CheckInIsOfflineSync82 ? "Check In occurred without connectivity"83 : "Check In occurred with connectivity"}84 </Tooltip>85 )86 var formatText =87 " " +88 cell +89 " on " +90 `${format(row.CheckInTime, "l LT")} ${row.SiteTimeZoneShortName}`91 if (row.CheckInFor && row.CheckInFor !== cell) {92 formatText += ` for ${row.CheckInFor}`93 }94 return (95 <p>96 <OverlayTrigger placement="left" overlay={mobileToolTip}>97 <Glyphicon glyph={row.CheckInIsMobile ? "phone" : "blackboard"} />98 </OverlayTrigger>99 &nbsp;100 <OverlayTrigger placement="top" overlay={offLineToolTip}>101 <Glyphicon102 glyph={row.CheckInIsOfflineSync ? "cloud-download" : "cloud-upload"}103 />104 </OverlayTrigger>105 {formatText}106 </p>107 )108 }109110 checkOutFormatter(cell, row) {111 const mobileToolTip = (112 <Tooltip id="checkOutViaToolTip">113 {row.CheckOutIsMobile ? "Check Out via mobile" : "Check Out via web"}114 </Tooltip>115 )116 const offLineToolTip = (117 <Tooltip id="checkOutOffLineToolTip">118 {row.CheckOutIsOfflineSync119 ? "Check Out occurred without connectivity"120 : "Check Out occurred with connectivity"}121 </Tooltip>122 )123 var formatText = " " + cell124 if (row.CheckOutStatus) {125 formatText +=126 " on " +127 `${format(row.CheckOutTime, "l LT")} ${row.SiteTimeZoneShortName}`128 if (row.CheckOutFor && row.CheckOutFor !== cell) {129 formatText += ` for ${row.CheckOutFor}`130 }131132 return (133 <p>134 <OverlayTrigger placement="left" overlay={mobileToolTip}>135 <Glyphicon glyph={row.CheckOutIsMobile ? "phone" : "blackboard"} />136 </OverlayTrigger>137 &nbsp;138 <OverlayTrigger placement="top" overlay={offLineToolTip}>139 <Glyphicon140 glyph={141 row.CheckOutIsOfflineSync ? "cloud-download" : "cloud-upload"142 }143 />144 </OverlayTrigger>145 {formatText}146 </p>147 )148 } else {149 return150 }151 }152153 dateFormatter(cell, row) {154 var formatDate = cell155 ? `${format(cell, "l LT")} ${row.SiteTimeZoneShortName}`156 : ""157158 return formatDate159 }160161 offlineFormatter(cell, row) {162 var style = "info"163 var text = "N/A"164165 if (row.CheckOutTime) {166 style = cell == null ? "info" : "warning"167 text = cell == null ? "No" : "Yes"168 }169170 return <Label bsStyle={style}> {text} </Label>171 }172173 render() {174 const className = "check-in-out-table"175 const options = {176 noDataText: "No check in/out uploaded",177 }178179 if (this.state.isFetching) {180 return (181 <Alert bsStyle="info">182 <Icon spin name="spinner" /> {`Fetching Check In's/Out's...`}183 </Alert>184 )185 }186187 if (this.state.items === undefined || this.state.items.length === 0) {188 return (189 <div className={className}>190 <EmptyStateContainer191 alertStyle="info"192 title={`No check in/out uploaded!`}193 message={`No check in/out submitted by the subcontractor`}194 />195 </div>196 )197 }198199 return (200 <div className={className}>201 <BootstrapTable202 data={this.state.items}203 options={options}204 striped205 hover206 condensed207 trClassName="break-word"208 >209 <TableHeaderColumn dataField="Id" isKey={true} hidden>210 CheckIn ID211 </TableHeaderColumn>212 <TableHeaderColumn dataField="JobSourcingTierId" hidden>213 JobSourcingTierId214 </TableHeaderColumn>215 <TableHeaderColumn dataField="SourcingTier" hidden>216 Tier217 </TableHeaderColumn>218 <TableHeaderColumn dataField="Vendor" hidden>219 {" "}220 Subcontractor221 </TableHeaderColumn>222 <TableHeaderColumn223 dataField="CheckInBy"224 width="150"225 dataFormat={this.checkInFormatter}226 >227 Check In By228 </TableHeaderColumn>229 <TableHeaderColumn dataField="CheckInFor" hidden>230 {" "}231 CheckIn For232 </TableHeaderColumn>233 <TableHeaderColumn dataField="CheckInTime" hidden>234 CheckIn Time235 </TableHeaderColumn>236 <TableHeaderColumn dataField="CheckInLatitude" hidden>237 CheckIn Latitude238 </TableHeaderColumn>239 <TableHeaderColumn dataField="CheckInLongitude" hidden>240 CheckIn Longitude241 </TableHeaderColumn>242 <TableHeaderColumn dataField="CheckInIsMobile" hidden>243 CheckIn Mobile244 </TableHeaderColumn>245 <TableHeaderColumn dataField="CheckInIsOfflineSync" hidden>246 CheckIn OffLine247 </TableHeaderColumn>248 <TableHeaderColumn dataField="SiteTimeZoneShortName" hidden>249 SiteTimeZoneShortName250 </TableHeaderColumn>251252 <TableHeaderColumn253 dataField="CheckOutBy"254 width="150"255 dataFormat={this.checkOutFormatter}256 >257 Check Out By258 </TableHeaderColumn>259 <TableHeaderColumn dataField="CheckOutFor" hidden>260 {" "}261 CheckOut For262 </TableHeaderColumn>263 <TableHeaderColumn dataField="CheckOutTime" hidden>264 CheckOut Time265 </TableHeaderColumn>266 <TableHeaderColumn dataField="CheckOutLatitude" hidden>267 CheckOut Latitude268 </TableHeaderColumn>269 <TableHeaderColumn dataField="CheckOutLongitude" hidden>270 CheckOut Longitude271 </TableHeaderColumn>272 <TableHeaderColumn dataField="CheckOutIsMobile" hidden>273 CheckOut Mobile274 </TableHeaderColumn>275 <TableHeaderColumn276 dataField="CheckOutStatus"277 dataAlign="center"278 width="75"279 >280 Check Out Status281 </TableHeaderColumn>282 <TableHeaderColumn dataField="CheckOutIsOfflineSync" hidden>283 CheckOut Offline284 </TableHeaderColumn>285 </BootstrapTable>286 </div>287 )288 }289}290291CheckInOutTable.propTypes = propTypes ...

Full Screen

Full Screen

verify.config.js

Source:verify.config.js Github

copy

Full Screen

1function checkEmail(value) {2 if(value.length >= 50)3 return '长度过长';4 const boo = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/.test(value);5 return boo ? undefined : '邮箱格式不正确';6}7function checkName(value,min = 2) {8 if (value.length == 0)9 return '输入不能为空';10 if (value.length > value) {11 return `不得多于${value}个字符`;12 }13 if (value.length < min) {14 return `不得少于${min}个字符`;15 }16 return /^[a-zA-Z0-9]+$/.test(value) ? undefined : '不得含有特殊字符';17}18function checkStr(value,maxlen) {19 if(value.length == 0)20 return '输入不能为空';21 if(value.length > maxlen)22 return `输入字符串不能超过${maxlen}个字符`;23 return /^[^*$#<>]+$/.test(value) ? undefined : '含有特殊字符';24}25function checkNumber(value) {26 if (!value)27 return '输入不能为空';28 return isNaN(value) ? '请输入数字' : undefined;29}30function checkPhone(value) {31 return /^1[345789]\d{9}$/.test(value) ? undefined : '电话号码错误';32}33function testPro(keys, values) {34 for (let i = 0; i < keys.length; i++) {35 const element = keys[i];36 let res = this[element](values[i]) 37 if (res != undefined)38 return res;39 }40 return undefined;41}42const base = {43 id: function (value) {44 return checkNumber(value);45 },46 name: function (value) {47 return checkName(value);48 },49 test: function (keys, values) {50 return testPro.bind(this)(keys, values);51 }52}53const admins = {54 email: function (value) {55 return checkEmail(value);56 },57 ranks:function (ranks) {58 if(ranks !== 0 && ranks !== 1)59 return '权限错误'60 return;61 },62 password:function () {63 return;64 }65}66Object.assign(admins,base);67const checkinfor = Object.assign({}, admins, {68 studentid:function (value) {69 return /^[A-Za-z0-9]{3,11}$/.test(value) ? undefined : '不能包含特殊符号或字符过长';70 },71 name:function (value) {72 return value.length == 0 || value.length > 10 ? '非法字符' : undefined;73 }74});75const emails= Object.assign({},admins);76delete emails.rank;77const users = {78 status : function (value) {79 return value > 3 || value < 0 ? '状态错误' : undefined;80 },81 phonenumber : function (value) {82 return checkPhone(value);83 },84 password: function () {85 return;86 },87 studentid:function (value) {88 return /^[A-Za-z0-9]{3,11}$/.test(value) ? undefined : '不能包含特殊符号或字符过长';89 },90 code:function (value) {91 return;92 }93}94Object.assign(users, emails,{95 name: function (value) {96 if(value.length == 0)97 return '姓名不能为空!';98 if(value.length >= 10)99 return '不能超过十个字符!';100 return /[^\x00-\xff]/.test(value) ? undefined:'不能含有特殊字符';101 }102});103const infor = (Object.assign({},base));104Object.assign(infor,{105 applicant:function (value) {106 return checkNumber(value);107 },108 space:function (value) {109 return value != 1 && value != 0 ? '参数错误' : undefined;110 },111 organizer:function (value) {112 return checkStr(value,30);113 },114 title:function (value) {115 return checkStr(value,20);116 },117 send:function (value) {118 return value != 1 && value != 0 ? '参数错误' : undefined;119 },120 content:function (value) {121 return checkStr(value,100);122 },123 time:function (value) {124 return isNaN(value)?'时间错误!':undefined;125 },126 status:function (value) {127 return checkNumber(value);128 },129 reason:function (value) {130 if(value.length >50)131 return '长度不能超过50!';132 return;133 },134 picture:function (value) {135 return checkStr(value,250);136 }137});138delete infor.name;139let locks = {140 space:function (value) {141 if(value!== 1||value!==0)142 return '参数错误!';143 return; 144 }145}146locks = Object.assign(locks, checkinfor);147delete locks.inforid;148module.exports = {149 admins,150 checkinfor,151 emails,152 users,153 infor,154 locks...

Full Screen

Full Screen

index.js

Source:index.js Github

copy

Full Screen

1/**2 * Created by author on 2017/8/13.3 */4import React, { Component } from 'react';5// import { Router, Route, hashHistory, IndexRedirect } from 'react-router';6import { Route, Redirect, Switch } from 'react-router-dom';7import BasicInfor from '../components/business/BasicInfor'; //企业信息-基本信息8import PersonInfor from '../components/business/PersonInfor'; //企业信息-人才信息9import HouseInfor from '../components/business/HouseInfor'; //企业信息-住宿信息10import CheckInfor from '../components/check/CheckInfor'; //账单信息11import CheckInforDetail from '../components/check/CheckDetail'; //账单信息详情12import MaintainInfor from '../components/maintain/MaintainInfor'; //报修反馈13import MaintainDetail from '../components/maintain/MainTainDetail'; //报修反馈详情14import DataReport from '../components/report/DataReport'; //数据直报15export default class CRouter extends Component {16 requireAuth = (permission, component) => {17 const { auth } = this.props;18 const { permissions } = auth.data;19 // const { auth } = store.getState().httpData;20 if (!permissions || !permissions.includes(permission)) return <Redirect to={'404'} />;21 return component;22 };23 render() {24 return (25 <Switch>26 <Route exact path="/app/business/basicInfor" component={BasicInfor} />27 <Route exact path="/app/business/personInfor" component={PersonInfor} />28 <Route exact path="/app/business/houseInfor" component={HouseInfor} />29 <Route exact path="/app/checkInfor/detail" component={CheckInforDetail} />30 <Route exact path="/app/checkInfor" component={CheckInfor} />31 {/* <Route exact path="/app/maintain" component={MaintainInfor} /> */}32 <Route path="/app/maintain/:id" component={MaintainDetail} />33 <Route path="/app/maintain" component={MaintainInfor} />34 <Route exact path="/app/data/report" component={DataReport} />35 <Route render={() => <Redirect to="/404" />} />36 </Switch>37 )38 }...

Full Screen

Full Screen

mApi.js

Source:mApi.js Github

copy

Full Screen

1/Lưu dữ liệu đầu vào trên LocalStor/2function check_used() {3 let get_name = JSON.parse(localStorage.getItem("fullname"));4 console.log(get_name);5 if (localStorage.getItem("fullname")) {6 // window.location.replace("http://stackoverflow.com");7 }8}9check_used();10/-----------------------------------------------------------------------/11/*Khi log out ra*/12function logout() {13 localStorage.removeItem("fullname");14 localStorage.removeItem("mail");15 // window.location.replace("http://stackoverflow.com");16}17/-----------------------------------------------------------------------/18let urlApi = "https://616a37c716e7120017fa0edb.mockapi.io/api/account";19function createUser(data, callback) {20 let option = {21 method: 'POST',22 headers: {23 'Content-Type': 'application/json'24 },25 body: JSON.stringify(data)26 };27 fetch(urlApi, option)28 .then(function(response) {29 response.json();30 })31 .then(callback);32}33/-------------------------------------------------/34async function getUser(email) {35 let option = {36 method: 'GET',37 headers: {38 'Content-Type': 'application/json'39 },40 };41 let urlApi2 = `https://616a37c716e7120017fa0edb.mockapi.io/api/account?email=${email}`;42 let response = await fetch(urlApi2, option);43 return await response.json();44}45function checkInfor() {46 let logBtn = document.querySelector('#btnlogin');47 logBtn.onclick = async function() {48 let email = document.querySelector('#in_email').value;49 let password = document.querySelector('#in_password').value;50 let data = await getUser(email);51 if (data.length === 0) {52 alert("Tài khoản chưa được tạo!");53 } else if (data.length === 1) {54 if (data[0].password === password) {55 localStorage.setItem("fullname", JSON.stringify(data[0].fullname));56 localStorage.setItem("email", JSON.stringify(data[0].email));57 window.location.replace("http://127.0.0.1:5502/index.html");//chuyển link trang vào đây58 } else {59 alert("Tài khoản bị nhập sai!");60 }61 }62 }63}...

Full Screen

Full Screen

Check.js

Source:Check.js Github

copy

Full Screen

1const sqlhelper = require('../Utils/SqlHelper');2async function add(req,res) {3 let data;4 try {5 data = await sqlhelper.insertItems('checkinfor',req.body);6 res.send(JSON.stringify({7 code: 0,8 msg: "添加成功!",9 }));10 } catch (error) {11 if (error.code == 'ER_DUP_ENTRY') {12 res.send(JSON.stringify({13 code: 1,14 msg: "导入已存在的学生,学号为" + error.message.match(/entry '(.*)' for/)[1]15 }))16 } else17 res.send(JSON.stringify({18 code: error.code,19 msg: error.msg || '未知错误!'20 }))21 }22}23async function delcheck(req,res) {24 let ids = req.body.id,25 data;26 try {27 data = await sqlhelper.deleteItems('checkinfor', ids);28 res.send(JSON.stringify({29 code: 0,30 msg: '删除成功!'31 }))32 } catch (error) {33 res.send(JSON.stringify({34 code: error.code,35 msg: error.msg || '未知错误!'36 }))37 }38 39}40module.exports = {41 add,42 delcheck...

Full Screen

Full Screen

callback2.js

Source:callback2.js Github

copy

Full Screen

1function checkinfor(giveInor) {2 console.log("start");3 var infor = {4 startYear: "2017 ",5 startMonth: "September "6 };7 giveInor(infor.startYear + infor.startMonth);8}9function callback(infor) {10 console.log(infor);11}...

Full Screen

Full Screen

callback1.js

Source:callback1.js Github

copy

Full Screen

1function checkinfor(giveInor) {2 console.log("start");3 var infor = {4 startYear: "2017 ",5 startMonth: "September "6 };7 giveInor(infor.startYear + infor.startMonth);8}9function callback(infor) {10 console.log(infor);11}...

Full Screen

Full Screen

Using AI Code Generation

copy

Full Screen

1const { chromium } = require('playwright');2(async () => {3 const browser = await chromium.launch();4 const context = await browser.newContext();5 const page = await context.newPage();6 await page.checkInFor('test');7 await browser.close();8})();

Full Screen

Using AI Code Generation

copy

Full Screen

1const { chromium } = require('playwright');2(async () => {3 const browser = await chromium.launch({ headless: false });4 const context = await browser.newContext();5 const page = await context.newPage();6 await browser.close();7})();8const { chromium } = require('playwright');9(async () => {10 const browser = await chromium.launch({ headless: false });11 const context = await browser.newContext();12 const page = await context.newPage();13 await browser.close();14})();15const { chromium } = require('playwright');16(async () => {17 const browser = await chromium.launch({ headless: false });18 const context = await browser.newContext();19 const page = await context.newPage();20 await browser.close();21})();22const { chromium } = require('playwright');23(async () => {24 const browser = await chromium.launch({ headless: false });25 const context = await browser.newContext();26 const page = await context.newPage();

Full Screen

Using AI Code Generation

copy

Full Screen

1const { chromium } = require('playwright');2(async () => {3 const browser = await chromium.launch();4 const context = await browser.newContext();5 const page = await context.newPage();6 await page.pause();7 await browser.close();8})();9const { chromium } = require('playwright');10(async () => {11 const browser = await chromium.launch();12 const context = await browser.newContext();13 const page = await context.newPage();14 await page.pause();15 await browser.close();16})();17const { chromium } = require('playwright');18(async () => {19 const browser = await chromium.launch();20 const context = await browser.newContext();21 const page = await context.newPage();22 await page.pause();23 await browser.close();24})();25const { chromium } = require('playwright');26(async () => {27 const browser = await chromium.launch();28 const context = await browser.newContext();29 const page = await context.newPage();30 await page.pause();31 await browser.close();32})();33const { chromium } = require('playwright');34(async () => {35 const browser = await chromium.launch();36 const context = await browser.newContext();37 const page = await context.newPage();38 await page.pause();39 await browser.close();40})();41const { chromium } = require('playwright');42(async () => {43 const browser = await chromium.launch();44 const context = await browser.newContext();45 const page = await context.newPage();46 await page.pause();47 await browser.close();48})();49const { chromium } = require('playwright');

Full Screen

Using AI Code Generation

copy

Full Screen

1const { chromium } = require('playwright');2(async () => {3 const browser = await chromium.launch();4 const context = await browser.newContext();5 const page = await context.newPage();6 await page.checkInFor('page.goto');7 await browser.close();8})();9const { chromium } = require('playwright');10(async () => {11 const browser = await chromium.launch();12 const context = await browser.newContext();13 const page = await context.newPage();14 await page.checkInFor('page.goto');15 await browser.close();16})();17const { chromium } = require('playwright');18(async () => {19 const browser = await chromium.launch();20 const context = await browser.newContext();21 const page = await context.newPage();22 await page.checkInFor('page.goto');23 await browser.close();24})();25const { chromium } = require('playwright');26(async () => {27 const browser = await chromium.launch();28 const context = await browser.newContext();29 const page = await context.newPage();30 await page.checkInFor('page.goto');31 await browser.close();32})();33const { chromium } = require('playwright');34(async () => {35 const browser = await chromium.launch();36 const context = await browser.newContext();37 const page = await context.newPage();38 await page.checkInFor('page.goto');39 await browser.close();40})();41const { chromium } = require('playwright');42(async () => {43 const browser = await chromium.launch();44 const context = await browser.newContext();45 const page = await context.newPage();46 await page.checkInFor('page.goto');

Full Screen

Using AI Code Generation

copy

Full Screen

1const { chromium } = require('playwright');2(async () => {3 const browser = await chromium.launch({headless: false});4 const context = await browser.newContext();5 const page = await context.newPage();6 if (error) {7 console.log(error);8 }9 await browser.close();10})();11 at CDPSession.send (C:\Users\anish\Documents\playwright\playwright\lib\cdp.js:30:19)12 at CDPSession.send (C:\Users\anish\Documents\playwright\playwright\lib\cdp.js:30:19)13 at CDPSession.send (C:\Users\anish\Documents\playwright\playwright\lib\cdp.js:30:19)14 at CDPSession.send (C:\Users\anish\Documents\playwright\playwright\lib\cdp.js:30:19)15 at CDPSession.send (C:\Users\anish\Documents\playwright\playwright\lib\cdp.js:30:19)16 at CDPSession.send (C:\Users\anish\Documents\playwright\playwright\lib\cdp.js:30:19)17 at CDPSession.send (C:\Users\anish\Documents\playwright\playwright\lib\cdp.js:30:19)18 at CDPSession.send (C:\Users\anish\Documents\playwright\playwright\lib\cdp.js:30:19)19 at CDPSession.send (C:\Users\anish\Documents\playwright\playwright\lib\cdp.js:30:19)20 at CDPSession.send (C:\Users\anish\Documents\playwright\playwright\lib\cdp.js:30:19)

Full Screen

Using AI Code Generation

copy

Full Screen

1const { chromium } = require('playwright');2const { checkInFor } = require('playwright/internal');3(async () => {4 const browser = await chromium.launch();5 const context = await browser.newContext();6 const page = await context.newPage();7 await checkInFor(page);8 await page.screenshot({ path: 'google.png' });9 await browser.close();10})();

Full Screen

Using AI Code Generation

copy

Full Screen

1const { chromium } = require('playwright');2const { checkInFor } = require('playwright-internal');3(async () => {4 const browser = await chromium.launch();5 const context = await browser.newContext();6 const page = await context.newPage();7 await checkInFor(page);8 await browser.close();9})();10const { checkInFor } = require('./lib/checkInFor');11module.exports = {12};13const { checkInFor } = require('playwright');14module.exports = {15};

Full Screen

Using AI Code Generation

copy

Full Screen

1const { checkInFor } = require('playwright-core/lib/server/chromium/crConnection');2checkInFor('crBrowser', 10);3const { Browser } = require('playwright-core');4(async () => {5 const page = await browser.newPage();6 await page.screenshot({ path: 'example.png' });7 await browser.close();8})();9const { checkInFor } = require('playwright-core/lib/server/chromium/crConnection');10checkInFor('crBrowser', 10);11const { checkInFor } = require('playwright-core/lib/server/chromium/crConnection');12checkInFor('crBrowser', 10);13const { checkInFor } = require('playwright-core/lib/server/chromium/crConnection');14checkInFor('crBrowser', 10);15const { checkInFor } = require('playwright-core/lib/server/chromium/crConnection');16checkInFor('crBrowser', 10);

Full Screen

Playwright tutorial

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.

Chapters:

  1. What is Playwright : Playwright is comparatively new but has gained good popularity. Get to know some history of the Playwright with some interesting facts connected with it.
  2. How To Install Playwright : Learn in detail about what basic configuration and dependencies are required for installing Playwright and run a test. Get a step-by-step direction for installing the Playwright automation framework.
  3. Playwright Futuristic Features: Launched in 2020, Playwright gained huge popularity quickly because of some obliging features such as Playwright Test Generator and Inspector, Playwright Reporter, Playwright auto-waiting mechanism and etc. Read up on those features to master Playwright testing.
  4. What is Component Testing: Component testing in Playwright is a unique feature that allows a tester to test a single component of a web application without integrating them with other elements. Learn how to perform Component testing on the Playwright automation framework.
  5. Inputs And Buttons In Playwright: Every website has Input boxes and buttons; learn about testing inputs and buttons with different scenarios and examples.
  6. Functions and Selectors in Playwright: Learn how to launch the Chromium browser with Playwright. Also, gain a better understanding of some important functions like “BrowserContext,” which allows you to run multiple browser sessions, and “newPage” which interacts with a page.
  7. Handling Alerts and Dropdowns in Playwright : Playwright interact with different types of alerts and pop-ups, such as simple, confirmation, and prompt, and different types of dropdowns, such as single selector and multi-selector get your hands-on with handling alerts and dropdown in Playright testing.
  8. Playwright vs Puppeteer: Get to know about the difference between two testing frameworks and how they are different than one another, which browsers they support, and what features they provide.
  9. Run Playwright Tests on LambdaTest: Playwright testing with LambdaTest leverages test performance to the utmost. You can run multiple Playwright tests in Parallel with the LammbdaTest test cloud. Get a step-by-step guide to run your Playwright test on the LambdaTest platform.
  10. Playwright Python Tutorial: Playwright automation framework support all major languages such as Python, JavaScript, TypeScript, .NET and etc. However, there are various advantages to Python end-to-end testing with Playwright because of its versatile utility. Get the hang of Playwright python testing with this chapter.
  11. Playwright End To End Testing Tutorial: Get your hands on with Playwright end-to-end testing and learn to use some exciting features such as TraceViewer, Debugging, Networking, Component testing, Visual testing, and many more.
  12. Playwright Video Tutorial: Watch the video tutorials on Playwright testing from experts and get a consecutive in-depth explanation of Playwright automation testing.

Run Playwright Internal automation tests on LambdaTest cloud grid

Perform automation testing on 3000+ real desktop and mobile devices online.

Try LambdaTest Now !!

Get 100 minutes of automation test minutes FREE!!

Next-Gen App & Browser Testing Cloud

Was this article helpful?

Helpful

NotHelpful