Best JavaScript code snippet using testcafe
DeleteAttachmentsCVController.js
Source:DeleteAttachmentsCVController.js
1({2 handleDeleteEvent : function(component, event, helper) {3 var deleteFiles = event.getParam("toDeleteIds");4 if(deleteFiles.wCon){5 component.set("v.fileIds", deleteFiles.wCon);6 }7 console.log("deleteFiles",JSON.stringify(deleteFiles));8 9 if(deleteFiles.wCV != null){10 var attachIds = [];11 for(var i = 0; i < deleteFiles.wCV.length; i++){12 attachIds.push({13 Title : deleteFiles.wCV[i].Title, Id : deleteFiles.wCV[i].Title, ContentDocumentId : deleteFiles.wCV[i].ContentDocumentId14 });15 }16 component.set("v.aIds", attachIds);17 console.log("attachIds",attachIds);18 }19 else{20 var attachIds = [];21 component.set("v.aIds", attachIds);22 }23 //console.log("deleteFiles[0].Title::::"+deleteFiles.wCV[0].Title);24 if(deleteFiles.wCon === null){25 26 //Toast message on deletion if there are no records in list27 var toastEvent = $A.get("e.force:showToast");28 29 toastEvent.setParams({30 "title": "Attention!",31 "message": "There are no files to delete",32 "type" : "ERROR"33 });34 toastEvent.fire();35 }else{36 component.set("v.isOpen", true);37 }38 /*var deleteFiles = component.get("v.fileIds");39 console.log("deleteFiles");40 console.log(deleteFiles);*/41 42 },43 44 closeModal : function(component, event, helper) {45 component.set("v.isOpen", false);46 },47 48 openModal : function(component, event, helper) {49 component.set("v.isOpen", true);50 },51 52 deleteFile : function(component, event, helper) { 53 var fileToDelete = event.getSource().get("v.value"); 54 var action = component.get("c.deleteAttachments");55 action.setParams({56 attachId : fileToDelete57 });58 action.setCallback(this, function(response){ 59 var state = response.getState(); 60 if(state === "SUCCESS"){61 var result = response.getReturnValue();62 console.log(result);63 if(result === true){64 65 //alert(component.get("v.rowIndex"));66 var index = component.getEvent("deleteRow");67 index.setParams({68 "rowIndex" : component.get("v.sNo")69 });70 index.fire();71 }72 }73 });74 $A.enqueueAction(action);75 },76 77 deleteRow : function(component, event, helper) {78 var index = event.getParams("v.sNo");79 //alert(index);80 var AllRowsList = component.get("v.aIds");81 AllRowsList.splice(index, 1);82 component.set("v.aIds", AllRowsList);83 84 //Close Modal85 //component.set("v.isOpen", false);86 87 var delEvntNotify = component.getEvent("DeleteNotifyComponentEvent");88 delEvntNotify.fire();89 90 //Toast message on deletion91 var toastEvent = $A.get("e.force:showToast");92 93 toastEvent.setParams({94 "title": "Success!",95 "message": "File deleted successfully.",96 "type" : "SUCCESS"97 });98 toastEvent.fire();99 },100 101 UpdateContact : function(component, event, helper) {102 103 var updatedCon = component.get("v.fileIds")104 console.log("updatedCon::");105 console.log(JSON.stringify(updatedCon));106 107 var action = component.get("c.updateContact");108 action.setParams({109 con : updatedCon110 });111 112 action.setCallback(this, function(response){113 console.log("In call back");114 var state = response.getState();115 console.log(state);116 if(state === "SUCCESS"){117 var result = response.getReturnValue();118 console.log(result);119 if(result == true){120 //Toast message on deletion121 var toastEvent = $A.get("e.force:showToast");122 123 toastEvent.setParams({124 "title": "Success!",125 "message": "File Updated successfully.",126 "type" : "SUCCESS"127 });128 toastEvent.fire();129 // Event to notify parent about update130 var delEvntNotify = component.getEvent("DeleteNotifyComponentEvent");131 delEvntNotify.fire();132 //To close modal133 component.set("v.isOpen", false);134 }else{135 var toastEvent = $A.get("e.force:showToast");136 137 toastEvent.setParams({138 "title": "Failed!",139 "message": "File Updated Error.",140 "type" : "ERROR"141 });142 }143 }144 });145 $A.enqueueAction(action);146 }...
DeleteMovieModalContent.js
Source:DeleteMovieModalContent.js
1import PropTypes from 'prop-types';2import React, { Component } from 'react';3import FormGroup from 'Components/Form/FormGroup';4import FormInputGroup from 'Components/Form/FormInputGroup';5import FormLabel from 'Components/Form/FormLabel';6import Button from 'Components/Link/Button';7import ModalBody from 'Components/Modal/ModalBody';8import ModalContent from 'Components/Modal/ModalContent';9import ModalFooter from 'Components/Modal/ModalFooter';10import ModalHeader from 'Components/Modal/ModalHeader';11import { inputTypes, kinds } from 'Helpers/Props';12import translate from 'Utilities/String/translate';13import styles from './DeleteMovieModalContent.css';14class DeleteMovieModalContent extends Component {15 //16 // Lifecycle17 constructor(props, context) {18 super(props, context);19 this.state = {20 deleteFiles: false,21 addImportExclusion: false22 };23 }24 //25 // Listeners26 onDeleteFilesChange = ({ value }) => {27 this.setState({ deleteFiles: value });28 }29 onAddImportExclusionChange = ({ value }) => {30 this.setState({ addImportExclusion: value });31 }32 onDeleteMovieConfirmed = () => {33 const deleteFiles = this.state.deleteFiles;34 const addImportExclusion = this.state.addImportExclusion;35 this.setState({ deleteFiles: false, addImportExclusion: false });36 this.props.onDeleteSelectedPress(deleteFiles, addImportExclusion);37 }38 //39 // Render40 render() {41 const {42 movies,43 onModalClose44 } = this.props;45 const deleteFiles = this.state.deleteFiles;46 const addImportExclusion = this.state.addImportExclusion;47 return (48 <ModalContent onModalClose={onModalClose}>49 <ModalHeader>50 {translate('DeleteSelectedMovie')}51 </ModalHeader>52 <ModalBody>53 <div>54 <FormGroup>55 <FormLabel>{`Delete Movie Folder${movies.length > 1 ? 's' : ''}`}</FormLabel>56 <FormInputGroup57 type={inputTypes.CHECK}58 name="deleteFiles"59 value={deleteFiles}60 helpText={`Delete Movie Folder${movies.length > 1 ? 's' : ''} and all contents`}61 kind={kinds.DANGER}62 onChange={this.onDeleteFilesChange}63 />64 </FormGroup>65 <FormGroup>66 <FormLabel>{translate('AddListExclusion')}</FormLabel>67 <FormInputGroup68 type={inputTypes.CHECK}69 name="addImportExclusion"70 value={addImportExclusion}71 helpText={translate('AddImportExclusionHelpText')}72 kind={kinds.DANGER}73 onChange={this.onAddImportExclusionChange}74 />75 </FormGroup>76 </div>77 <div className={styles.message}>78 {`Are you sure you want to delete ${movies.length} selected movie(s)${deleteFiles ? ' and all contents' : ''}?`}79 </div>80 <ul>81 {82 movies.map((s) => {83 return (84 <li key={s.title}>85 <span>{s.title}</span>86 {87 deleteFiles &&88 <span className={styles.pathContainer}>89 -90 <span className={styles.path}>91 {s.path}92 </span>93 </span>94 }95 </li>96 );97 })98 }99 </ul>100 </ModalBody>101 <ModalFooter>102 <Button onPress={onModalClose}>103 {translate('Cancel')}104 </Button>105 <Button106 kind={kinds.DANGER}107 onPress={this.onDeleteMovieConfirmed}108 >109 {translate('Delete')}110 </Button>111 </ModalFooter>112 </ModalContent>113 );114 }115}116DeleteMovieModalContent.propTypes = {117 movies: PropTypes.arrayOf(PropTypes.object).isRequired,118 onModalClose: PropTypes.func.isRequired,119 onDeleteSelectedPress: PropTypes.func.isRequired120};...
deletion-user-rules-by-role.js
Source:deletion-user-rules-by-role.js
1const { db, roles } = require('../../../shared');2const deletionUserRulesByRole = {3 [roles.ROLE_PARENT]: [4 {5 modelName: db.names.parentStudent.modelName,6 fieldName: 'parent',7 deleteFiles: false,8 deleteMode: db.deleteModes.DELETE_MANY9 },10 {11 modelName: db.names.parentStudentInvitation.modelName,12 fieldName: 'parent',13 deleteFiles: false,14 deleteMode: db.deleteModes.DELETE_MANY15 },16 {17 modelName: db.names.parentFile.modelName,18 fieldName: 'user',19 deleteFiles: true,20 deleteMode: db.deleteModes.DELETE_MANY21 },22 {23 modelName: db.names.parentNote.modelName,24 fieldName: 'user',25 deleteFiles: false,26 deleteMode: db.deleteModes.DELETE_MANY27 }28 ],29 [roles.ROLE_STUDENT]: [30 {31 modelName: db.names.parentStudent.modelName,32 fieldName: 'student',33 deleteFiles: false,34 deleteMode: db.deleteModes.DELETE_MANY35 },36 {37 modelName: db.names.parentStudentInvitation.modelName,38 fieldName: 'student',39 deleteFiles: false,40 deleteMode: db.deleteModes.DELETE_MANY41 },42 {43 modelName: db.names.studentFile.modelName,44 fieldName: 'user',45 deleteFiles: true,46 deleteMode: db.deleteModes.DELETE_MANY47 },48 {49 modelName: db.names.classStudent.modelName,50 fieldName: 'user',51 deleteFiles: false,52 deleteMode: db.deleteModes.REMOVE53 },54 {55 modelName: db.names.classStudentInvitation.modelName,56 fieldName: 'user',57 deleteFiles: false,58 deleteMode: db.deleteModes.DELETE_MANY59 },60 {61 modelName: db.names.studentNote.modelName,62 fieldName: 'user',63 deleteFiles: false,64 deleteMode: db.deleteModes.DELETE_MANY65 }66 ],67 [roles.ROLE_TEACHER]: [68 {69 modelName: db.names.teacherFile.modelName,70 fieldName: 'user',71 deleteFiles: true,72 deleteMode: db.deleteModes.DELETE_MANY73 },74 {75 modelName: db.names.class.modelName,76 fieldName: 'user',77 deleteFiles: false,78 deleteMode: db.deleteModes.REMOVE79 },80 {81 modelName: db.names.teacherNote.modelName,82 fieldName: 'user',83 deleteFiles: false,84 deleteMode: db.deleteModes.DELETE_MANY85 }86 ]87};...
deleteController.js
Source:deleteController.js
...9 if (!numeroConsultation) {10 return next(new AppError('missing search data', 400));11 }12 const consult = await consultation.findOneAndRemove({ numeroConsultation });13 deleteFiles(consult.lettreConsultation);14 deleteFiles(consult.reglementConsultation);15 if (consult.offresConcurrents !== '') {16 deleteFiles(consult.offresConcurrents);17 }18 if (consult.pvOuverture !== '') {19 deleteFiles(consult.pvOuverture);20 }21 const com = await commande.find({ numeroConsultation });22 com.map(document => {23 deleteFiles(document.bonCommande);24 if (document.pvReception !== '') {25 deleteFiles(document.pvReception);26 }27 });28 await commande.deleteMany({ numeroConsultation });29 const fac = await facture.find({ numeroConsultation });30 fac.map(document => {31 deleteFiles(document.facture);32 });33 await facture.deleteMany({ numeroConsultation });34 res.status(200).json({35 status: 'success',36 message: 'all ok'37 });38});39exports.deleteCommande = catchAsync(async (req, res, next) => {40 const { numeroCommande } = req.body;41 if (!numeroCommande) {42 return next(new AppError('missing search data', 400));43 }44 const com = await commande.findOneAndRemove({ numeroCommande });45 deleteFiles(com.bonCommande);46 if (com.pvReception !== '') {47 deleteFiles(com.pvReception);48 }49 res.status(200).json({50 status: 'success',51 message: 'all ok'52 });53});54exports.deleteFacture = catchAsync(async (req, res, next) => {55 const { numeroFacture } = req.body;56 if (!numeroFacture) {57 return next(new AppError('missing search data', 400));58 }59 const fac = await facture.findOneAndRemove({ numeroFacture });60 deleteFiles(fac.facture);61 res.status(200).json({62 status: 'success',63 message: 'all ok'64 });...
index.js
Source:index.js
...4hexo.extend.deployer.register('delete-sth', function cosHelper(config) {5 // check configs6 let cfgs = checkConfigs(config);7 cfgs.publicDir = this.public_dir;8 deleteFiles(cfgs, this.public_dir);9});10function deleteFiles(cfgs, dir) {11 let files = fs.readdirSync(dir);12 let count = 0;13 files.forEach(function (file, index) {14 let fPath = path.join(dir, file);15 let info = fs.statSync(fPath);16 if (info.isDirectory()) {17 count += deleteFiles(cfgs, fPath);18 } else {19 let rPath = fPath.replace(cfgs.publicDir, '').replace(/\\/g, '/');20 if (checkRules(cfgs, rPath)) {21 fs.unlink(fPath, (err) => {22 if (err) throw err;23 });24 console.log("Delete file: ", rPath);25 } else {26 count += 1;27 }28 }29 });30 if (cfgs.deleteEmptyFolder && !count) {31 fs.rmdir(dir, (err) => {...
DeleteMovieView.js
Source:DeleteMovieView.js
1var vent = require('vent');2var Marionette = require('marionette');3module.exports = Marionette.ItemView.extend({4 template : 'Movies/Delete/DeleteMovieTemplate',5 events : {6 'click .x-confirm-delete' : 'removeSeries',7 'change .x-delete-files' : 'changeDeletedFiles'8 },9 ui : {10 deleteFiles : '.x-delete-files',11 deleteFilesInfo : '.x-delete-files-info',12 indicator : '.x-indicator',13 addExclusion : '.x-add-exclusion'14 },15 removeSeries : function() {16 var self = this;17 var deleteFiles = this.ui.deleteFiles.prop('checked');18 var addExclusion = this.ui.addExclusion.prop('checked');19 this.ui.indicator.show();20 this.model.set('deleted', true); 21 this.model.destroy({22 data : { 'deleteFiles' : deleteFiles,23 'addExclusion' : addExclusion },24 wait : true25 }).done(function() {26 vent.trigger(vent.Events.SeriesDeleted, { series : self.model });27 vent.trigger(vent.Commands.CloseModalCommand);28 });29 },30 changeDeletedFiles : function() {31 var deleteFiles = this.ui.deleteFiles.prop('checked');32 if (deleteFiles) {33 this.ui.deleteFilesInfo.show();34 } else {35 this.ui.deleteFilesInfo.hide();36 }37 }...
upload.js
Source:upload.js
1const config = require('../../../config');2const os = require('os');3const multer = require('multer');4const fs = require('fs-extra');5const common = require('../../../lib/common');6const upload = {7 enabledClear: config.get('uploadClear') || true,8 multer: multer({dest: os.tmpdir()})9};10const deleteSingleFile = file => fs.unlink(file.path).catch(err => common.logging.error(err));11const single = name => (req, res, next) => {12 const singleUpload = upload.multer.single(name);13 singleUpload(req, res, (err) => {14 if (err) {15 return next(err);16 }17 if (upload.enabledClear) {18 const deleteFiles = () => {19 res.removeListener('finish', deleteFiles);20 res.removeListener('close', deleteFiles);21 if (!req.disableUploadClear) {22 if (req.files) {23 return req.files.forEach(deleteSingleFile);24 }25 if (req.file) {26 return deleteSingleFile(req.file);27 }28 }29 };30 if (!req.disableUploadClear) {31 res.on('finish', deleteFiles);32 res.on('close', deleteFiles);33 }34 }35 next();36 });37};...
DeleteSeriesView.js
Source:DeleteSeriesView.js
1var vent = require('vent');2var Marionette = require('marionette');3module.exports = Marionette.ItemView.extend({4 template : 'Series/Delete/DeleteSeriesTemplate',5 events : {6 'click .x-confirm-delete' : 'removeSeries',7 'change .x-delete-files' : 'changeDeletedFiles'8 },9 ui : {10 deleteFiles : '.x-delete-files',11 deleteFilesInfo : '.x-delete-files-info',12 indicator : '.x-indicator'13 },14 removeSeries : function() {15 var self = this;16 var deleteFiles = this.ui.deleteFiles.prop('checked');17 this.ui.indicator.show();18 this.model.destroy({19 data : { 'deleteFiles' : deleteFiles },20 wait : true21 }).done(function() {22 vent.trigger(vent.Events.SeriesDeleted, { series : self.model });23 vent.trigger(vent.Commands.CloseModalCommand);24 });25 },26 changeDeletedFiles : function() {27 var deleteFiles = this.ui.deleteFiles.prop('checked');28 if (deleteFiles) {29 this.ui.deleteFilesInfo.show();30 } else {31 this.ui.deleteFilesInfo.hide();32 }33 }...
Using AI Code Generation
1import { Selector } from 'testcafe';2import { deleteFiles } from 'testcafe-browser-tools';3test('Delete files', async t => {4 await deleteFiles('C:/Users/user/Desktop/Report.txt');5});6import { Selector } from 'testcafe';7import { deleteFiles } from 'testcafe-browser-tools';8test('Delete files', async t => {9 await deleteFiles('C:/Users/user/Desktop/Report.txt');10});11import { Selector } from 'testcafe';12import { deleteFiles } from 'testcafe-browser-tools';13test('Delete files', async t => {14 await deleteFiles('C:/Users/user/Desktop/Report.txt');15});16import { Selector } from 'testcafe';17import { deleteFiles } from 'testcafe-browser-tools';18test('Delete files', async t => {19 await deleteFiles('C:/Users/user/Desktop/Report.txt');20});21import { Selector } from 'testcafe';22import { deleteFiles } from 'testcafe-browser-tools';23test('Delete files', async t => {24 await deleteFiles('C:/Users/user/Desktop/Report.txt');25});26import { Selector } from 'testcafe';27import { deleteFiles } from 'testcafe-browser-tools';28test('Delete files', async t => {29 await deleteFiles('C:/Users/user/Desktop/Report.txt');30});31import { Selector } from 'testcafe';32import { deleteFiles } from 'testcafe-browser-tools';
Using AI Code Generation
1import { Selector, t } from 'testcafe';2import { deleteFiles } from 'testcafe-browser-tools';3import { ClientFunction } from 'testcafe';4test('My first test', async t => {5 .typeText('#developer-name', 'John Smith')6 .click('#macos')7 .click('#submit-button');8 const getLocation = ClientFunction(() => document.location.href);9});10deleteFiles('C:\Users\username\Desktop\testcafe\testcafe\test.js');11deleteFiles('C:\Users\username\Desktop\testcafe\testcafe\test.js');12deleteFiles('C:\Users\username\Desktop\testcafe\testcafe\test.js');13deleteFiles('C:\Users\username\Desktop\testcafe\testcafe\test.js');14deleteFiles('C:\Users\username\Desktop\testcafe\testcafe\test.js');15deleteFiles('C:\Users\username\Desktop\testcafe\testcafe\test.js');16deleteFiles('C:\Users\username\Desktop\testcafe\testcafe\test.js');17deleteFiles('C:\Users\username\Desktop\testcafe\testcafe\test.js');18deleteFiles('C:\Users\username\Desktop\testcafe\testcafe\test.js');19deleteFiles('C:\Users\username\Desktop\testcafe\testcafe\test.js');20deleteFiles('C:\Users\username\Desktop\testcafe\testcafe\test.js');
Using AI Code Generation
1import { Selector, t } from 'testcafe';2import { deleteFiles } from 'testcafe-browser-provider-electron';3import { ClientFunction } from 'testcafe';4import { exec } from 'child_process';5import { promisify } from 'util';6import { join } from 'path';7import { platform } from 'os';8const execPromise = promisify(exec);9const appPath = join(__dirname, 'dist', 'electron', 'main.js');10const electronPath = join(__dirname, 'node_modules', '.bin', 'electron');11const getElectronPath = async () => {12 switch (platform()) {13 return `${electronPath}.cmd`;14 return `${electronPath}.cmd`;15 return electronPath;16 }17};18 .beforeEach(async (t) => {19 await deleteFiles(appPath, ['userData']);20 const electronPath = await getElectronPath();21 await execPromise(`${electronPath} ${appPath}`);22 });23test('Test', async t => {24 .wait(10000)25 .click(Selector('body > div > div > div > div > div > div > div > button'))26 .wait(10000)27 .click(Selector('body > div > div > div > div > div > div > div > button'))28 .wait(10000)29 .click(Selector('body > div > div > div > div > div > div > div > button'))30 .wait(10000)31 .click(Selector('body > div > div > div > div > div > div > div > button'))32 .wait(10000)33 .click(Selector('body > div > div > div > div > div > div > div > button'))34 .wait(10000)35 .click(Selector('body > div > div > div > div > div > div > div > button'))36 .wait(10000)37 .click(Selector('body > div > div > div > div > div > div > div > button'))38 .wait(10000)39 .click(Selector('body > div > div > div > div > div > div > div > button'))40 .wait(10000)
Using AI Code Generation
1import { Selector } from 'testcafe';2test('Delete Files', async t => {3 .click('a[href="/files"]')4 .wait(3000)5 .click('a[href="/files/delete"]')6 .wait(3000)7 .click('input[type="checkbox"]')8 .click('button[type="submit"]')9 .wait(3000)10 .click('a[href="/files"]')11 .wait(3000);12});13const deleteFiles = require('./test.js');14const login = require('./login.js');15const uploadFile = require('./uploadFile.js');16const logout = require('./logout.js');17const searchFile = require('./searchFile.js');18const downloadFile = require('./downloadFile.js');19test('Testcafe', async t => {20 await login.login(t);21 await uploadFile.uploadFile(t);22 await deleteFiles.deleteFiles(t);23 await searchFile.searchFile(t);24 await downloadFile.downloadFile(t);25 await logout.logout(t);26});27{28}29import { Selector } from 'testcafe';30export async function login(t) {31 .typeText('input[type="email"]', '
Learn to execute automation testing from scratch with LambdaTest Learning Hub. Right from setting up the prerequisites to run your first automation test, to following best practices and diving deeper into advanced test scenarios. LambdaTest Learning Hubs compile a list of step-by-step guides to help you be proficient with different test automation frameworks i.e. Selenium, Cypress, TestNG etc.
You could also refer to video tutorials over LambdaTest YouTube channel to get step by step demonstration from industry experts.
Get 100 minutes of automation test minutes FREE!!