Best JavaScript code snippet using playwright-internal
ReactIncrementalUpdates-test.internal.js
Source:ReactIncrementalUpdates-test.internal.js
...127 }128 }129 ReactNoop.render(<Foo />);130 ReactNoop.flush();131 function createUpdate(letter) {132 return () => {133 ReactNoop.yield(letter);134 return {135 [letter]: letter,136 };137 };138 }139 // Schedule some async updates140 instance.setState(createUpdate('a'));141 instance.setState(createUpdate('b'));142 instance.setState(createUpdate('c'));143 // Begin the updates but don't flush them yet144 ReactNoop.flushThrough(['a', 'b', 'c']);145 expect(ReactNoop.getChildren()).toEqual([span('')]);146 // Schedule some more updates at different priorities{147 instance.setState(createUpdate('d'));148 ReactNoop.flushSync(() => {149 instance.setState(createUpdate('e'));150 instance.setState(createUpdate('f'));151 });152 instance.setState(createUpdate('g'));153 // The sync updates should have flushed, but not the async ones154 expect(ReactNoop.getChildren()).toEqual([span('ef')]);155 // Now flush the remaining work. Even though e and f were already processed,156 // they should be processed again, to ensure that the terminal state157 // is deterministic.158 ReactNoop.clearYields();159 expect(ReactNoop.flush()).toEqual(['a', 'b', 'c', 'd', 'e', 'f', 'g']);160 expect(ReactNoop.getChildren()).toEqual([span('abcdefg')]);161 });162 it('can abort an update, schedule a replaceState, and resume', () => {163 let instance;164 class Foo extends React.Component {165 state = {};166 render() {167 instance = this;168 return (169 <span170 prop={Object.keys(this.state)171 .sort()172 .join('')}173 />174 );175 }176 }177 ReactNoop.render(<Foo />);178 ReactNoop.flush();179 function createUpdate(letter) {180 return () => {181 ReactNoop.yield(letter);182 return {183 [letter]: letter,184 };185 };186 }187 // Schedule some async updates188 instance.setState(createUpdate('a'));189 instance.setState(createUpdate('b'));190 instance.setState(createUpdate('c'));191 // Begin the updates but don't flush them yet192 ReactNoop.flushThrough(['a', 'b', 'c']);193 expect(ReactNoop.getChildren()).toEqual([span('')]);194 // Schedule some more updates at different priorities{195 instance.setState(createUpdate('d'));196 ReactNoop.flushSync(() => {197 instance.setState(createUpdate('e'));198 // No longer a public API, but we can test that it works internally by199 // reaching into the updater.200 instance.updater.enqueueReplaceState(instance, createUpdate('f'));201 });202 instance.setState(createUpdate('g'));203 // The sync updates should have flushed, but not the async ones. Update d204 // was dropped and replaced by e.205 expect(ReactNoop.getChildren()).toEqual([span('f')]);206 // Now flush the remaining work. Even though e and f were already processed,207 // they should be processed again, to ensure that the terminal state208 // is deterministic.209 ReactNoop.clearYields();210 expect(ReactNoop.flush()).toEqual(['a', 'b', 'c', 'd', 'e', 'f', 'g']);211 expect(ReactNoop.getChildren()).toEqual([span('fg')]);212 });213 it('passes accumulation of previous updates to replaceState updater function', () => {214 let instance;215 class Foo extends React.Component {216 state = {};...
ReactIncrementalUpdates-test.js
Source:ReactIncrementalUpdates-test.js
...123 }124 }125 ReactNoop.render(<Foo />);126 ReactNoop.flush();127 function createUpdate(letter) {128 return () => {129 ReactNoop.yield(letter);130 return {131 [letter]: letter,132 };133 };134 }135 // Schedule some async updates136 instance.setState(createUpdate('a'));137 instance.setState(createUpdate('b'));138 instance.setState(createUpdate('c'));139 // Begin the updates but don't flush them yet140 ReactNoop.flushThrough(['a', 'b', 'c']);141 expect(ReactNoop.getChildren()).toEqual([span('')]);142 // Schedule some more updates at different priorities{143 instance.setState(createUpdate('d'));144 ReactNoop.flushSync(() => {145 instance.setState(createUpdate('e'));146 instance.setState(createUpdate('f'));147 });148 instance.setState(createUpdate('g'));149 // The sync updates should have flushed, but not the async ones150 expect(ReactNoop.getChildren()).toEqual([span('ef')]);151 // Now flush the remaining work. Even though e and f were already processed,152 // they should be processed again, to ensure that the terminal state153 // is deterministic.154 expect(ReactNoop.flush()).toEqual(['a', 'b', 'c', 'd', 'e', 'f', 'g']);155 expect(ReactNoop.getChildren()).toEqual([span('abcdefg')]);156 });157 it('can abort an update, schedule a replaceState, and resume', () => {158 let instance;159 class Foo extends React.Component {160 state = {};161 render() {162 instance = this;163 return (164 <span165 prop={Object.keys(this.state)166 .sort()167 .join('')}168 />169 );170 }171 }172 ReactNoop.render(<Foo />);173 ReactNoop.flush();174 function createUpdate(letter) {175 return () => {176 ReactNoop.yield(letter);177 return {178 [letter]: letter,179 };180 };181 }182 // Schedule some async updates183 instance.setState(createUpdate('a'));184 instance.setState(createUpdate('b'));185 instance.setState(createUpdate('c'));186 // Begin the updates but don't flush them yet187 ReactNoop.flushThrough(['a', 'b', 'c']);188 expect(ReactNoop.getChildren()).toEqual([span('')]);189 // Schedule some more updates at different priorities{190 instance.setState(createUpdate('d'));191 ReactNoop.flushSync(() => {192 instance.setState(createUpdate('e'));193 // No longer a public API, but we can test that it works internally by194 // reaching into the updater.195 instance.updater.enqueueReplaceState(instance, createUpdate('f'));196 });197 instance.setState(createUpdate('g'));198 // The sync updates should have flushed, but not the async ones. Update d199 // was dropped and replaced by e.200 expect(ReactNoop.getChildren()).toEqual([span('f')]);201 // Now flush the remaining work. Even though e and f were already processed,202 // they should be processed again, to ensure that the terminal state203 // is deterministic.204 expect(ReactNoop.flush()).toEqual(['a', 'b', 'c', 'd', 'e', 'f', 'g']);205 expect(ReactNoop.getChildren()).toEqual([span('fg')]);206 });207 it('passes accumulation of previous updates to replaceState updater function', () => {208 let instance;209 class Foo extends React.Component {210 state = {};211 render() {...
LunoStream.js
Source:LunoStream.js
1var EventEmitter = require('events');2var util = require('util');3function LunoStream(user, key, keypair) {4 EventEmitter.call(this);5 const lunoStream = this;6 const WebSocketClient = require('websocket').w3cwebsocket;7 let lastMessageSequence = undefined;8 let orders = undefined;9 let descriptiveStatistics = undefined;10 const creds = {11 "api_key_id": user,12 "api_key_secret": key,13 };14 function connection() {15 lunoStream.emit('connecting');16 const ws = new WebSocketClient('wss://ws.luno.com/api/1/stream/' + keypair);17 ws.onopen = function open() {18 lunoStream.emit('connected');19 ws.send(JSON.stringify(creds));20 };21 ws.onmessage = (initialMessage) => {22 const message = JSON.parse(initialMessage.data);23 lastMessageSequence = parseInt(message.sequence, 10);24 processAndSaveInitialOrderState(message);25 ws.onmessage = (updateMessage) => {26 if (updateMessage.data.length <= 2) {27 lunoStream.emit('keep-alive');28 return;29 }30 const parsedMessage = JSON.parse(updateMessage.data);31 if (sequenceCheck(parsedMessage.sequence)) {32 processMessage(parsedMessage);33 } else {34 ws.close();35 }36 };37 lunoStream.emit('market-order-update', 'Initialized', message.timestamp);38 };39 ws.onclose = () => {40 lunoStream.emit('disconnected');41 };42 }43 connection();44 lunoStream.on('disconnected', connection);45 function convertStringToCents(stringAmount) {46 return Math.round(1e2 * stringAmount);47 }48 function convertStringToSatoshis(stringAmount) {49 return Math.round(1e8 * stringAmount);50 }51 function convertSpecificIntoGeneralOrder(order, type) {52 return {53 order_id: order.id,54 type,55 price: order.price,56 volume: convertStringToSatoshis(order.volume),57 };58 }59 function convertAskIntoGeneralOrder(ask) {60 return convertSpecificIntoGeneralOrder(ask, 'ASK');61 }62 function convertBidIntoGeneralOrder(bid) {63 return convertSpecificIntoGeneralOrder(bid, 'BID');64 }65 function processAndSaveInitialOrderState(message) {66 const asks = message.asks.map(convertAskIntoGeneralOrder);67 const bids = message.bids.map(convertBidIntoGeneralOrder);68 orders = asks.concat(bids);69 }70 function sequenceCheck(sequence) {71 sequence = parseInt(sequence);72 if ((sequence - lastMessageSequence) === 1) {73 lastMessageSequence = sequence;74 return true;75 } else {76 return false;77 }78 }79 function processMessage(message) {80 let tradeUpdates = message.trade_updates;81 if (tradeUpdates !== null) {82 tradeUpdates.timestamp = message.timestamp;83 processTradeUpdates(tradeUpdates);84 }85 let createUpdate = message.create_update;86 if (createUpdate !== null) {87 createUpdate.timestamp = message.timestamp;88 processCreateUpdate(createUpdate);89 }90 let deleteUpdate = message.delete_update;91 if (deleteUpdate !== null) {92 deleteUpdate.timestamp = message.timestamp;93 processDeleteUpdate(deleteUpdate);94 }95 }96 function deleteOrderByIndex(index) {97 return orders.splice(index, 1);98 }99 this.on('trade-executed', (tradeUpdate) => {100 let message = 'Traded: ';101 if (tradeUpdate.isFilled === true) {102 message = 'Filled: ';103 }104 lunoStream.emit('market-order-update', message + tradeUpdate.base, tradeUpdate.timestamp);105 });106 function processTradeUpdates(tradeUpdates) {107 if (tradeUpdates !== null) {108 tradeUpdates.forEach((tradeUpdate) => {109 tradeUpdate.timestamp = tradeUpdates.timestamp;110 const orderIndex = getOrderIndexById(tradeUpdate.order_id);111 orders[orderIndex].volume -= convertStringToSatoshis(tradeUpdate.base);112 if (orders[orderIndex].volume == 0) {113 deleteOrderByIndex(orderIndex);114 tradeUpdate.isFilled = true;115 }116 lunoStream.emit('trade-executed', tradeUpdate);117 });118 }119 }120 function processCreateUpdate(createUpdate) {121 if (createUpdate !== null) {122 createUpdate.volume = convertStringToSatoshis(createUpdate.volume);123 orders.push(createUpdate);124 lunoStream.emit('market-order-create', createUpdate);125 }126 }127 this.on('market-order-create', (createUpdate) => {128 lunoStream.emit('market-order-update', 'Created order: ' + createUpdate.order_id, createUpdate.timestamp);129 });130 function getOrderIndexById(id) {131 return orders.findIndex(order => (order.order_id === id));132 }133 function deleteOrderById(id) {134 const orderIndex = getOrderIndexById(id);135 if (orderIndex > -1) {136 return deleteOrderByIndex(orderIndex);137 }138 return false;139 }140 function processDeleteUpdate(deleteUpdate) {141 if (deleteUpdate !== null) {142 deleteOrderById(deleteUpdate.order_id);143 lunoStream.emit('market-order-delete', deleteUpdate);144 }145 }146 lunoStream.on('market-order-delete', (deleteUpdate) => {147 lunoStream.emit('market-order-update', 'Deleted order: ' + deleteUpdate.order_id, deleteUpdate.timestamp);148 });149 function aggregateOrders(accumulator, order, orderIndex) {150 const orderPrice = convertStringToCents(order.price);151 if (order.type === 'ASK') {152 accumulator.askCount++;153 accumulator.askVolume += order.volume;154 if (accumulator.minAsk > orderPrice || typeof accumulator.minAsk === 'undefined') {155 accumulator.minAsk = orderPrice;156 }157 } else if (order.type === 'BID') {158 accumulator.bidCount++;159 accumulator.bidVolume += order.volume;160 if (accumulator.maxBid < orderPrice || typeof accumulator.maxBid === 'undefined') {161 accumulator.maxBid = orderPrice;162 }163 }164 return accumulator;165 }166 function calculateDescriptiveStatistics(message, timestamp) {167 const updatedDescriptiveStatistics = orders.reduce(aggregateOrders, { askCount: 0, askVolume: 0, bidCount: 0, bidVolume: 0 });168 updatedDescriptiveStatistics.midMarketPrice = (updatedDescriptiveStatistics.minAsk + updatedDescriptiveStatistics.maxBid) / 2;169 updatedDescriptiveStatistics.spread = updatedDescriptiveStatistics.minAsk - updatedDescriptiveStatistics.maxBid;170 if (typeof descriptiveStatistics !== 'undefined') {171 if (updatedDescriptiveStatistics.midMarketPrice !== descriptiveStatistics.midMarketPrice) {172 lunoStream.emit('price-change', { previousPrice: descriptiveStatistics.midMarketPrice, price: updatedDescriptiveStatistics.midMarketPrice, timestamp});173 }174 if (updatedDescriptiveStatistics.spread !== descriptiveStatistics.spread) {175 lunoStream.emit('spread-change', { previousSpread: descriptiveStatistics.spread, spread: updatedDescriptiveStatistics.spread, timestamp});176 }177 }178 descriptiveStatistics = updatedDescriptiveStatistics;179 }180 lunoStream.on('market-order-update', calculateDescriptiveStatistics);181}182util.inherits(LunoStream, EventEmitter);183module.exports = {184 LunoStream,...
viewBenefits.js
Source:viewBenefits.js
1(function(){2 preConfigurations();3})();4function preConfigurations(){5 $("#benefitName").keydown(function(event){6 if(event.keyCode == 13){7 event.preventDefault();8 $("#createUpdate").click();9 }10 });11 $('#myModal').on('shown.bs.modal', function () {12 $('#benefitName').focus()13 });14 $('#benefit-table').dataTable(15 {16 "aoColumnDefs": [17 { "bSearchable": false, "bSortable":false, "aTargets": [ 2 ] }18 ] }19 );20}21var convertThymeleafObjectToJavascriptObject= function(thymeleafObject){22 /*pattern : objectName(key=value,key=value)*/23 var javascriptObject = {};24 thymeleafObject = thymeleafObject.replace("{","");25 thymeleafObject = thymeleafObject.replace("}","");26 $.each(thymeleafObject.split(","),function(key,value){27 var keyValue = value.split("=");28 javascriptObject[keyValue[0].trim()]=keyValue[1].trim()29 });30 return javascriptObject;31};32var hasError = false;33var reload = function(){34 window.location.reload();35};36var modalOptions = {37 backdrop:'static'38};39var openBenefitCreateModal = function(){40 $('#benefitName').val(null);41 $('#benefitCode').val(null);42 $('#benefitCode').hide();43 $('#benefitLabel').hide();44 $('#createUpdate').text('Create');45 $('#alert').hide();46 $('#alert-danger').hide();47 $('#createUpdate').unbind('click');48 $('#createUpdate').click(49 function(){50 createBenefit();51 }52 );53 $('#myModalLabel').text("Create Benefit");54 modalOptions.show = true;55 $('#myModal').modal(modalOptions);56};57var openBenefitUpdateModal = function(benefitId){58 // var benefitMap = convertThymeleafObjectToJavascriptObject(benefit);59//console.log("BENEFIT ID-->"+benefitId);60// console.log("BENEFIT NAME-->"+benefitName);61 // console.log("BENEFIT CODE-->"+benefitCode);62 $.get('/pla/core/benefit/getbenefitbyid/'+benefitId, function(data, status){63 console.log("Data: " + data + "\nStatus: " + status);64 $('#benefitName').val(data.benefitName).attr("disabled",false);65 $('#benefitCode').val(data.benefitCode).attr("disabled",true);66 });67 $('#createUpdate').text('Update');68 $('#alert').hide();69 $('#alert-danger').hide();70 $('#createUpdate').unbind('click');71 $('#createUpdate').click(72 function(){73 updateBenefit(benefitId);74 }75 );76 $('#myModalLabel').text("Update Benefit");77 modalOptions.show = true;78 $('#myModal').modal(modalOptions);79};80var updateBenefit = function(benefitId){81 console.log("benefitId"+benefitId);82 if(validate()){83 return;84 }85 var benefitData = {86 benefitId:benefitId87 };88 $('#createBenefit *').filter(':text').each(function(key,value){89 benefitData[$(value)[0].id]=$(value).val();90 });91 $.ajax({92 url: '/pla/core/benefit/update',93 type: 'POST',94 data: JSON.stringify(benefitData),95 contentType: 'application/json; charset=utf-8',96 success: function(msg) {97 if(msg.status=='200'){98 hideAlerts();99 $('#alert').text(msg.message).show();100 document.getElementById("benefitName").disabled = true;101 document.getElementById("benefitCode").disabled = true;102 $('#cancel-button').text('Done');103 $('#createUpdate').hide();104 }else if(msg.status=='500'){105 hideAlerts();106 $('#createUpdate').hide();107 $('#alert-danger').text(msg.message).show();108 document.getElementById("benefitName").disabled = true;109 }110 }111 });112};113var createBenefit = function(){114 if(validate()){115 return;116 }117 var benefitData = {118 };119 $('#createBenefit *').filter(':text').each(function(key,value){120 benefitData[$(value)[0].id]=$(value).val();121 });122 $.ajax({123 url: '/pla/core/benefit/create',124 type: 'POST',125 data: JSON.stringify(benefitData),126 contentType: 'application/json; charset=utf-8',127 success: function(msg, textStatus, jqXHR) {128 if(msg.status=='200'){129 hideAlerts();130 $('#alert').text(msg.message).show();131 document.getElementById("benefitName").disabled = true;132 document.getElementById("benefitCode").disabled = true;133 $('#cancel-button').text('Done');134 $('#createUpdate').hide();135 }else if(msg.status=='500'){136 hideAlerts();137 $('#alert-danger').text(msg.message).show();138 }139 }140 });141};142var resetError =function(ele){143 $(ele).parent().parent().removeClass("has-error");144 $(ele).siblings().hide();145};146var validate = function(){147 $('#benefitNameDiv *').filter(':text').each(function(key,value){148 if(($(value).val().trim().length<=0 || $(value).val().trim().length>100)){149 hasError=true;150 $(value).parent().parent().addClass("has-error");151 $(value).siblings().show()152 }153 });154 return hasError;155};156var hideAlerts = function(){157 $('#alert-danger').hide();158 $('#alert').hide();159 $('#inactivate-alert-danger').hide();160};161/*Value : actual benefit id to inactivate*/162/*flag(save or confirm): on click of inactivate button flag is set to save which saves the value to inactivate163 * on click of yes button in the modal window.we actually inactivate the value164 * */165var benefitToInactivate = '';166var inactivate=function(value,flag){167 hideAlerts();168 $('#approveButton').show();169 if(flag=='save'){170 benefitToInactivate = value;171 }else{172 $.ajax({173 url: '/pla/core/benefit/inactivate',174 type: 'POST',175 data: JSON.stringify({'benefitId':benefitToInactivate}),176 contentType: 'application/json; charset=utf-8',177 success: function(msg) {178 if(msg.status=='200'){179 $('#alert-modal').show();180 $('#confirmationMsg').hide();181 $('#approveButton').hide();182 $('#changeToOk').text('Ok');183 $("#successMessage").text(msg.message).show();184 window.setTimeout('location.reload()', 3000);185 //window.location.reload();186 }else{187 $('#approveButton').hide();188 $('#inactivate-alert-danger').text(msg.message).show();189 }190 }191 });192 }...
array.test.js
Source:array.test.js
...16 const VALUE = ['VALUE'];17 const state = [];18 const getState = () => state;19 const subscribe = actual => expect(actual).toBe(VALUE);20 const update = createUpdate({getState, subscribe});21 update.set(VALUE);22 });23 it('Can run an arrayOp', () => {24 expect.assertions(1);25 const getState = () => [];26 const subscribe = actual => expect(actual).toEqual(['hello']);27 const update = createUpdate({getState, subscribe});28 update.push('hello');29 });30 it('Can get the value from an array change', () => {31 expect.assertions(1);32 const getState = () => [];33 const subscribe = (_1, _2, value) => expect(value).toEqual(['hello']);34 const update = createUpdate({getState, subscribe});35 update.push('hello');36 });37 it('Can get the path from a zero depth change', () => {38 expect.assertions(1);39 const getState = () => [];40 const subscribe = (_1, path) => expect(path).toEqual([]);41 const update = createUpdate({getState, subscribe});42 update.push('hello');43 });44 it('arrayOp returns correct value', () => {45 const getState = () => ['hello'];46 const subscribe = () => null;47 const update = createUpdate({getState, subscribe});48 const actual = update.pop();49 const expected = 'hello';50 expect(actual).toBe(expected);51 });52 /* eslint-disable quote-props */53 it('arrayOp coerces non-array values to empty array', () => {54 expect.assertions(1);55 const getState = () => ({'0': 'hello', length: 5});56 const subscribe = actual => expect(actual).toEqual(['onlyValue']);57 const update = createUpdate({getState, subscribe});58 update.push('onlyValue');59 });60 /* eslint-enable quote-props */61 it('arrayOp does not mutate', () => {62 expect.assertions(2);63 const state = [];64 const getState = () => state;65 const subscribe = data => expect(state).not.toBe(data);66 const update = createUpdate({getState, subscribe});67 update.push('hello');68 const expected = [];69 expect(state).toEqual(expected);70 });71 it('Can replace state', () => {72 expect.assertions(1);73 const getState = () => [];74 const subscribe = data => expect(data).toEqual([1, 2, 3]);75 const update = createUpdate({getState, subscribe});76 update.set([1, 2, 3]);77 });78 it('Can replace state with undefined', () => {79 expect.assertions(1);80 const getState = () => [];81 const subscribe = data => expect(data).toBe(undefined);82 const update = createUpdate({getState, subscribe});83 update.set(undefined);84 });85 it('Can use get to set values in an array', () => {86 expect.assertions(1);87 const getState = () => ['value1', 'value2'];88 const subscribe = actual => expect(actual).toEqual(['value1', 'newValue']);89 const update = createUpdate({getState, subscribe});90 update(1).set('newValue');91 });92});93describe('deep tests', () => {94 const { createUpdate } = array(95 combineReducers({96 key: null,97 })98 );99 it('Can use get to set deep keys in an array', () => {100 expect.assertions(1);101 102 const getState = () => [{key: 'value1'}, {key: 'value2'}];103 const expected = [104 {key: 'value1'},105 {key: 'newValue'},106 ];107 const subscribe = actual => expect(actual).toEqual(expected);108 const update = createUpdate({getState, subscribe});109 update(1)('key').set('newValue');110 });111 it('Deep path works', () => {112 expect.assertions(1);113 114 const getState = () => [];115 const subscribe = (_, path) => expect(path).toEqual([1, 'key']);116 const update = createUpdate({getState, subscribe});117 update(1)('key').set('newValue');118 });119 it('Deep value works', () => {120 expect.assertions(1);121 122 const getState = () => [];123 const subscribe = (_1, _2, value) => expect(value).toEqual('newValue');124 const update = createUpdate({getState, subscribe});125 update(1)('key').set('newValue');126 });127});128it('Push the default shape with no args', () => {129 const VALUE = 'VALUE';130 const { createUpdate } = array({131 shape: () => VALUE,132 });133 const getState = () => [];134 const subscribe = actual => expect(actual).toEqual([VALUE]);135 const update = createUpdate({getState, subscribe});136 update.push();137});138it('Can push an explicit undefined', () => {139 const VALUE = 'VALUE';140 const { createUpdate } = array({141 shape: () => VALUE,142 });143 const getState = () => [];144 const subscribe = actual => expect(actual).toEqual([undefined]);145 const update = createUpdate({getState, subscribe});146 update.push(undefined);...
reduce.test.js
Source:reduce.test.js
...13 const data = {14 key: 'value',15 };16 const subscribe = actual => expect(actual).toBe(data);17 const update = createUpdate({getState, subscribe});18 update.set(data);19});20it('Can get keys', () => {21 const { createUpdate } = combineReducers({22 key: null,23 });24 const getState = () => ({});25 const subscribe = () => null;26 const update = createUpdate({getState, subscribe});27 const actual = update.keys();28 const expected = ['key'];29 expect(actual).toEqual(expected);30});31it('Can delete a key', () => {32 expect.assertions(1);33 const { createUpdate } = combineReducers({34 key: null,35 });36 const getState = () => ({37 key: 'value',38 });39 const subscribe = actual => expect(actual).toEqual({});40 const update = createUpdate({getState, subscribe});41 update.delete('key');42});43it('Can set a key value', () => {44 expect.assertions(1);45 const { createUpdate } = combineReducers({46 key: null,47 });48 const getState = () => ({});49 const subscribe = actual => {50 const expected = {51 key: 'hello',52 };53 expect(actual).toEqual(expected);54 };55 const update = createUpdate({getState, subscribe});56 update('key').set('hello');57});58it('Setting keys immutably updates objects', () => {59 expect.assertions(1);60 const { createUpdate } = combineReducers({61 key: null,62 });63 const state = {};64 const getState = () => state;65 const subscribe = actual => {66 expect(actual).not.toBe(state);67 };68 const update = createUpdate({getState, subscribe});69 update('key').set('hello');70});71it('Can set deep keys', () => {72 expect.assertions(1);73 const { createUpdate } = combineReducers({74 key: combineReducers({75 deep: null,76 }),77 });78 const getState = () => ({});79 const subscribe = actual => {80 const expected = {81 key: {82 deep: 'hello',83 },84 };85 expect(actual).toEqual(expected);86 };87 const update = createUpdate({getState, subscribe});88 update('key')('deep').set('hello');89});90it('Subscribe includes path and value', () => {91 expect.assertions(2);92 const { createUpdate } = combineReducers({93 key: combineReducers({94 deep: null,95 }),96 });97 const getState = () => ({});98 const subscribe = (_, path, value) => {99 expect(path).toEqual(['key', 'deep']);100 expect(value).toEqual('hello');101 };102 const update = createUpdate({getState, subscribe});103 update('key')('deep').set('hello');104});105it('Path and value can be in a mid-level of the state', () => {106 expect.assertions(2);107 const { createUpdate } = combineReducers({108 key: combineReducers({109 deep: null,110 }),111 });112 const getState = () => ({});113 const subscribe = (_, path, value) => {114 expect(path).toEqual(['key']);115 expect(value).toEqual({deep: 'hello'});116 };117 const update = createUpdate({getState, subscribe});118 update('key').set({deep: 'hello'});119});120it('Setting deep keys immutably updates objects', () => {121 expect.assertions(1);122 const { createUpdate } = combineReducers({123 key: combineReducers({124 deep: null,125 }),126 });127 const state = {};128 const getState = () => state;129 const subscribe = actual => expect(actual).not.toBe(state);130 const update = createUpdate({getState, subscribe});131 update('key')('deep').set('hello');132});133it('Deep changes can be performed on missing object fragments', () => {134 expect.assertions(1);135 const { createUpdate } = combineReducers({136 key: combineReducers({137 deep: null,138 }),139 });140 const state = null;141 const getState = () => state;142 const subscribe = actual => {143 const expected = {144 key: {145 deep: 'hello',146 },147 };148 expect(actual).toEqual(expected);149 };150 const update = createUpdate({getState, subscribe});151 update('key')('deep').set('hello');152});153it('Throws when unused key is accessed', () => {154 const { createUpdate } = combineReducers({});155 const getState = () => ({});156 const subscribe = () => null;157 const update = createUpdate({getState, subscribe});158 expect(() => update('key')).toThrow();...
map.test.js
Source:map.test.js
...16 const VALUE = ['VALUE'];17 const state = [];18 const getState = () => state;19 const subscribe = actual => expect(actual).toBe(VALUE);20 const update = createUpdate({getState, subscribe});21 update.set(VALUE);22 });23 it('Can replace state', () => {24 expect.assertions(1);25 const getState = () => [];26 const subscribe = data => expect(data).toEqual([1, 2, 3]);27 const update = createUpdate({getState, subscribe});28 update.set([1, 2, 3]);29 });30 it('Can replace state with undefined', () => {31 expect.assertions(1);32 const getState = () => [];33 const subscribe = data => expect(data).toBe(undefined);34 const update = createUpdate({getState, subscribe});35 update.set(undefined);36 });37 it('Can use get to set values in a map', () => {38 expect.assertions(1);39 const getState = () => ({40 key: 'value',41 });42 const subscribe = actual => expect(actual).toEqual({43 key: 'newValue',44 });45 const update = createUpdate({getState, subscribe});46 update('key').set('newValue');47 });48})();49it('Can use get to set deep keys in a map', () => {50 expect.assertions(1);51 const { createUpdate } = map(52 combineReducers({53 key: null,54 })55 );56 57 const getState = () => ({58 asdf: {},59 });60 const expected = {61 asdf: {62 key: 'newValue',63 },64 };65 const subscribe = actual => expect(actual).toEqual(expected);66 const update = createUpdate({getState, subscribe});67 update('asdf')('key').set('newValue');68});69it('Push the default shape with no args', () => {70 expect.assertions(1);71 72 const VALUE = 'VALUE';73 const { createUpdate } = map({74 shape: () => VALUE,75 });76 const getState = () => ({});77 const subscribe = actual => expect(actual).toEqual({78 key: VALUE,79 });80 const update = createUpdate({getState, subscribe});81 update.insert('key');...
Using AI Code Generation
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.screenshot({ path: `example.png` });7 await browser.close();8})();
Using AI Code Generation
1const playwright = require('playwright');2(async () => {3 const browser = await playwright.chromium.launch();4 const context = await browser.newContext();5 const page = await context.newPage();6 const update = await page._client.send('Page.createUpdate');7 console.log(update);8 await browser.close();9})();10const playwright = require('playwright');11(async () => {12 const browser = await playwright.chromium.launch();13 const context = await browser.newContext();14 const page = await context.newPage();15 const update = await page._client.send('Page.createUpdate');16 await page._client.send('Page.update', {update: update});17 await browser.close();18})();19const playwright = require('playwright');20(async () => {21 const browser = await playwright.chromium.launch();22 const context = await browser.newContext();23 const page = await context.newPage();24 const update = await page._client.send('Page.createUpdate');25 console.log(update);26 await page._client.send('Page.update', {update: update});27 await browser.close();28})();29const playwright = require('playwright');30(async () => {31 const browser = await playwright.chromium.launch();32 const context = await browser.newContext();33 const page = await context.newPage();34 const update = await page._client.send('Page.createUpdate');35 console.log(update);36 await page._client.send('Page.update', {update: update});37 await browser.close();38})();39const playwright = require('playwright');40(async () => {41 const browser = await playwright.chromium.launch();42 const context = await browser.newContext();43 const page = await context.newPage();44 const update = await page._client.send('Page.createUpdate');45 console.log(update);
Using AI Code Generation
1const {createUpdate} = require('@playwright/test/lib/server/updateServer');2const {chromium} = require('playwright');3(async () => {4 const browser = await chromium.launch();5 const context = await browser.newContext();6 const page = await context.newPage();7 await page.screenshot({ path: `example.png` });8 await browser.close();9 createUpdate();10})();11import { PlaywrightTestConfig } from '@playwright/test';12const config: PlaywrightTestConfig = {13 use: {14 viewport: { width: 1280, height: 720 }15 }16};17export default config;18{19 "scripts": {20 },21 "devDependencies": {22 }23}24import { PlaywrightTestConfig } from '@playwright/test';25const config: PlaywrightTestConfig = {26 use: {27 viewport: { width: 1280, height: 720 }28 }29};30export default config;
Using AI Code Generation
1const { chromium } = require('playwright');2const {createUpdate} = require('playwright/lib/server/browserType');3(async () => {4 const browser = await chromium.launch({ headless: false });5 const context = await browser.newContext();6 const page = await context.newPage();7 const update = createUpdate();8 update.set('hello', 'world');9 await page.evaluate(update);10 await browser.close();11})();12 at ExecutionContext._evaluateInternal (/Users/username/Downloads/playwright-test/node_modules/playwright/lib/server/frames.js:122:19)13 at ExecutionContext.evaluate (/Users/username/Downloads/playwright-test/node_modules/playwright/lib/server/frames.js:105:16)14 at Page.evaluate (/Users/username/Downloads/playwright-test/node_modules/playwright/lib/server/page.js:734:36)15 at run (/Users/username/Downloads/playwright-test/test.js:17:19)16 at processTicksAndRejections (internal/process/task_queues.js:93:5)
Using AI Code Generation
1import { chromium } from 'playwright';2import { createUpdate } from 'playwright/lib/server/update';3const browser = await chromium.launch();4const page = await browser.newPage();5await createUpdate();6await browser.close();
Using AI Code Generation
1const { createUpdate } = require('playwright');2const update = createUpdate({ version: '1.12.0' });3update.downloadAndInstall();4const { createUpdate } = require('playwright');5const update = createUpdate({ version: '1.12.0' });6update.downloadAndInstall();
Using AI Code Generation
1const { createUpdate } = require('playwright-core/lib/server/supplements/recorder/recorderSupplement');2const update = createUpdate('click', { selector: 'button' }, 'recorder');3console.log(update);4const { createUpdate } = require('playwright-core/lib/server/supplements/recorder/recorderSupplement');5const update = createUpdate('click', { selector: 'button' }, 'recorder');6console.log(update);7const { createUpdate } = require('playwright-core/lib/server/supplements/recorder/recorderSupplement');8const update = createUpdate('click', { selector: 'button' }, 'recorder');9console.log(update);10const { createUpdate } = require('playwright-core/lib/server/supplements/recorder/recorderSupplement');11const update = createUpdate('click', { selector: 'button' }, 'recorder');12console.log(update);13const { createUpdate } = require('playwright-core/lib/server/supplements/recorder/recorderSupplement');14const update = createUpdate('click', { selector: 'button' }, 'recorder');15console.log(update);16const { createUpdate } = require('playwright-core/lib/server/supplements/recorder/recorderSupplement');17const update = createUpdate('click', { selector: 'button' }, 'recorder');18console.log(update);19const { createUpdate } = require('playwright-core/lib/server/supplements/recorder/recorderSupplement');20const update = createUpdate('
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!!