Best JavaScript code snippet using wpt
clamAvWrapper.js
Source: clamAvWrapper.js
...28 this.#connectionError = true;29 let responseFromClamAVStream = Buffer.concat(this.#responsesFromClamAVStream);30 console.log('Unable to connect to ClamAV,', responseFromClamAVStream.toString(), err.message);31 if (this.#rejectHandler) {32 this.#destroySocket();33 this.#rejectHandler({34 success: false,35 error: true,36 message: 'Unable to connect to ClamAV, ' + responseFromClamAVStream.toString().replace('\x00', '') + ', ' + err.message37 })38 }39 }40 #streamChkTransformer() {41 return new Transform(42 {43 transform(chunk, encoding, callback) {44 const chunkLength = Buffer.alloc(4);45 chunkLength.writeUInt32BE(chunk.length, 0);46 this.push(chunkLength);47 this.push(chunk);48 callback();49 },50 flush(callback) {51 const flushBuff = Buffer.alloc(4);52 flushBuff.writeUInt32BE(0, 0);53 this.push(flushBuff);54 callback();55 }56 })57 }58 /**59 * @typedef ScanResponse60 * @type {object}61 * @property {boolean} error62 * @property {boolean} success63 * @property {string} message64 */65 /**66 * Scan stream67 * @param {ReadableStream} stream - Readable stream to scan68 * @param {Object} [options] - Scan options69 * @param {number} [options.connectionTimeOut = 600000] - Connection timeout for socket. default 600000 70 * @returns {Promise<ScanResponse>}71 */72 scanStream(stream, options) {73 let defaultOptions = {74 connectionTimeOut: 600000 //10 minutes75 }76 options = {77 ...defaultOptions,78 ...options79 };80 this.#responsesFromClamAVStream = [];8182 this.#clamAVSocket = net.createConnection({83 host: this.#host,84 port: this.#port85 }, () => { this.#onClamAVSocketConnect() }).on('error', (err) => {8687 this.#onClamAVSocketConnectError(err)88 });89 this.#clamAVSocket.setKeepAlive(true);9091 return new Promise((resolve, reject) => {92 this.#rejectHandler = reject;93 clearTimeout(this.#connectionTimeLimit);94 if (!this.#connectionError && this.#clamAVSocket != null) {95 this.#clamAVSocket.write('zINSTREAM\0');96 let hasCompleteStreaminFileToClamAV = false;97 let streamReadingStarted = false;98 stream.pipe(this.#streamChkTransformer()).pipe(this.#clamAVSocket);99100 stream101 .on('data', () => {102 //clearTimeout(this.#connectionTimeLimit);103 streamReadingStarted = true;104 })105 .on('end', () => {106 hasCompleteStreaminFileToClamAV = true;107 //stream.destroy();108 }).on('error', (err) => {109 this.#destroySocket();110 reject({111 success: false,112 error: true,113 message: 'Unable to read stream,' + err.message114 })115 });116 this.#responsesFromClamAVStream = [];117 this.#clamAVSocket.setTimeout(options.connectionTimeOut);118119 this.#clamAVSocket120 .on('data', (respChunk) => {121 clearTimeout(this.#connectionTimeLimit);122 if (!stream.isPaused()) {123 stream.pause();124 }125 this.#responsesFromClamAVStream.push(respChunk);126 }).on('end', () => {127 clearTimeout(this.#connectionTimeLimit);128 let responseFromClamAVStream = Buffer.concat(this.#responsesFromClamAVStream);129 if (!hasCompleteStreaminFileToClamAV) {130 this.#destroySocket();131 reject({132 success: false,133 error: true,134 message: 'Scan aborted,' + responseFromClamAVStream.toString().trim()135 });136 } else {137 this.#clamAVSocket.destroy();138 var respMessage = this.#processResponseMessage(responseFromClamAVStream.toString().trim());139 if (respMessage.success) {140 this.#destroySocket();141 resolve(respMessage);142 } else {143 this.#destroySocket();144 reject(respMessage);145 }146147 }148 });149150 } else {151 this.#destroySocket();152 reject({153 error: true,154 success: false,155 message: 'Unable to connect Clamd'156 })157 }158159 this.#connectionTimeLimit = setTimeout(() => {160 if (this.#clamAVSocket != null) {161 this.#destroySocket();162 console.log('ClamAV socket destroyed...')163 }164 }, options.connectionTimeOut)165166 })167 }168 #destroySocket() {169 this.#clamAVSocket.end();170 this.#clamAVSocket.destroy();171 }172 #processResponseMessage(rawMessage) {173 let message = String(rawMessage).trim();174 message = message.replace('\x00', '');175 if (message.indexOf('stream: OK') == 0) {176 return {177 success: true,178 message: message179 }180 } else {181 return {182 success: false,
...
socketFunction.test.js
Source: socketFunction.test.js
...45 test('Test Create Room', async () => {46 const socketClient = await initSocket();47 const serverResponse = new Promise((resolve, reject) => {48 socketClient.on('updatedRoom', (rooms) => {49 destroySocket(socketClient);50 resolve(rooms);51 });52 setTimeout(() => {53 reject(new Error('Failed to get reponse, connection timed out...'));54 }, 5000);55 });56 const room = {57 roomName: 'test_room',58 users: [],59 admin: 'test_admin',60 };61 socketClient.emit('createRoom', room);62 const rooms = await serverResponse;63 expect(rooms).toHaveLength(1);64 expect(rooms[0]).toHaveProperty('name', 'test_room');65 });66 test('Test Create Second Room', async () => {67 const socketClient = await initSocket();68 const serverResponse = new Promise((resolve, reject) => {69 socketClient.on('updatedRoom', (rooms) => {70 destroySocket(socketClient);71 resolve(rooms);72 });73 setTimeout(() => {74 reject(new Error('Failed to get reponse, connection timed out...'));75 }, 5000);76 });77 const room = {78 roomName: 'test_room_2',79 users: [],80 admin: 'test_user_2',81 };82 socketClient.emit('createRoom', room);83 const rooms = await serverResponse;84 expect(rooms).toHaveLength(2);85 expect(rooms[1]).toHaveProperty('name', 'test_room_2');86 });87});88describe('Test Suit: Update Room', () => {89 test('Test Update Room', async () => {90 const socketClient = await initSocket();91 const serverResponse = new Promise((resolve, reject) => {92 socketClient.on('sendUpdateRoom', (rooms) => {93 destroySocket(socketClient);94 resolve(rooms);95 });96 setTimeout(() => {97 reject(new Error('Failed to get reponse, connection timed out...'));98 }, 5000);99 });100 socketClient.emit('updateRoom');101 const rooms = await serverResponse;102 expect(rooms).toHaveLength(2);103 expect(rooms[1]).toHaveProperty('name', 'test_room_2');104 });105});106describe('Test Suit: Join Room', () => {107 test('Test Join Room', async () => {108 const socketClient = await initSocket();109 const serverResponse = new Promise((resolve, reject) => {110 socketClient.on('roomDetail', (room) => {111 destroySocket(socketClient);112 resolve(room);113 });114 setTimeout(() => {115 reject(new Error('Failed to get reponse, connection timed out...'));116 }, 5000);117 });118 const payload = {119 username: 'test_user_2',120 roomName: 'test_room_2',121 };122 socketClient.emit('joinRoom', payload);123 const room = await serverResponse;124 expect(room).toHaveProperty('users');125 expect(room.users).toHaveLength(1);126 });127 test('Test Join Room Second Player', async () => {128 const socketClient = await initSocket();129 const serverResponse = new Promise((resolve, reject) => {130 socketClient.on('roomDetail', (room) => {131 destroySocket(socketClient);132 resolve(room);133 });134 setTimeout(() => {135 reject(new Error('Failed to get reponse, connection timed out...'));136 }, 5000);137 });138 const payload = {139 username: 'test_user_second_player',140 roomName: 'test_room_2',141 };142 socketClient.emit('joinRoom', payload);143 const room = await serverResponse;144 expect(room).toHaveProperty('users');145 expect(room.users).toHaveLength(2);146 });147 test('Test Join Full Room', async () => {148 const socketClient = await initSocket();149 const serverResponse = new Promise((resolve, reject) => {150 socketClient.on('roomDetail', (room) => {151 destroySocket(socketClient);152 resolve(room);153 });154 setTimeout(() => {155 reject(new Error('Failed to get reponse, connection timed out...'));156 }, 5000);157 });158 const payload = {159 username: 'user_test_third_player',160 roomName: 'test_room_2',161 };162 socketClient.emit('joinRoom', payload);163 const room = await serverResponse;164 // console.log(room, 'ini roommmmm');165 expect(room).toHaveProperty('users');...
socket.js
Source: socket.js
1function destroySocket(client, retries = 0) {2 client.socket.destroy()3 if (!client.socket.destroyed) {4 if (retries === 5) {5 console.error('[SOCKET] Unable to destroy socket connection. Crashing ...')6 throw new Error("Zombie socket")7 }8 console.error(`[SOCKET] Error while trying to destroy connection. Retry ${retries + 1} out of 5`)9 setTimeout(() => destroySocket(client, retries + 1), 5000)10 } else {11 console.info("[SOCKET] Socket destroyed successfully")12 }13}...
Using AI Code Generation
1var wpt = require('webpagetest');2var wptClient = wpt('www.webpagetest.org');3 if (err) {4 console.log('error: ' + err);5 }6});
Using AI Code Generation
1var wpt = require('webpagetest');2var wpt = new WebPageTest('www.webpagetest.org');3wpt.destroySocket();4console.log('socket destroyed');5var wpt = require('webpagetest');6var wpt = new WebPageTest('www.webpagetest.org');7wpt.destroySocket();8console.log('socket destroyed');9var wpt = require('webpagetest');10var wpt = new WebPageTest('www.webpagetest.org');11wpt.destroySocket();12console.log('socket destroyed');13var wpt = require('webpagetest');14var wpt = new WebPageTest('www.webpagetest.org');15wpt.destroySocket();16console.log('socket destroyed');17var wpt = require('webpagetest');18var wpt = new WebPageTest('www.webpagetest.org');19wpt.destroySocket();20console.log('socket destroyed');21var wpt = require('webpagetest');22var wpt = new WebPageTest('www.webpagetest.org');23wpt.destroySocket();24console.log('socket destroyed');25var wpt = require('webpagetest');26var wpt = new WebPageTest('www.webpagetest.org');27wpt.destroySocket();28console.log('socket destroyed');29var wpt = require('webpagetest');30var wpt = new WebPageTest('www.webpagetest.org');31wpt.destroySocket();32console.log('socket destroyed');33var wpt = require('webpagetest');34var wpt = new WebPageTest('www.webpagetest.org');35wpt.destroySocket();36console.log('socket destroyed');37var wpt = require('webpagetest');38var wpt = new WebPageTest('www.webpagetest.org');39wpt.destroySocket();40console.log('socket destroyed');
Using AI Code Generation
1var socket = require('./socket.js');2var wpt = require('wpt');3var wpt = new wpt('your api key');4wpt.destroySocket(socket, function(err, data) {5 if (err) {6 console.log(err);7 } else {8 console.log(data);9 }10});11var wpt = require('wpt');12var wpt = new wpt('your api key');13var socket = wpt.createSocket();14module.exports = socket;
Check out the latest blogs from LambdaTest on this topic:
Testing is a critical step in any web application development process. However, it can be an overwhelming task if you don’t have the right tools and expertise. A large percentage of websites still launch with errors that frustrate users and negatively affect the overall success of the site. When a website faces failure after launch, it costs time and money to fix.
We launched LT Browser in 2020, and we were overwhelmed by the response as it was awarded as the #5 product of the day on the ProductHunt platform. Today, after 74,585 downloads and 7,000 total test runs with an average of 100 test runs each day, the LT Browser has continued to help developers build responsive web designs in a jiffy.
Smartphones have changed the way humans interact with technology. Be it travel, fitness, lifestyle, video games, or even services, it’s all just a few touches away (quite literally so). We only need to look at the growing throngs of smartphone or tablet users vs. desktop users to grasp this reality.
As part of one of my consulting efforts, I worked with a mid-sized company that was looking to move toward a more agile manner of developing software. As with any shift in work style, there is some bewilderment and, for some, considerable anxiety. People are being challenged to leave their comfort zones and embrace a continuously changing, dynamic working environment. And, dare I say it, testing may be the most ‘disturbed’ of the software roles in agile development.
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!!