Best JavaScript code snippet using playwright-internal
interface.js
Source:interface.js
1$(document).ready(() => {2 $('label').popover();3});4/**5 * Launches the parsing process by calling the parser with the data entered in the interface,6 * and processing the results.7 */8function parse() {9 const textToParse = $('#lojban-text-area').val();10 $('#result-row').slideDown();11 const start = new Date().getTime();12 subparse('Camxes: Beta CBM CKT', '#parser-camxes-beta-cbm-ckt', camxes_beta_cbm_ckt, textToParse);13 subparse('Camxes: Beta CBM', '#parser-camxes-beta-cbm', camxes_beta_cbm, textToParse);14 subparse('Camxes: Beta', '#parser-camxes-beta', camxes_beta, textToParse);15 subparse('Camxes: Experimental', '#parser-camxes-exp', camxes_exp, textToParse);16 subparse('Camxes: Standard', '#parser-camxes', camxes, textToParse);17 subparse('Maftufa 1.15', '#parser-maftufa-1-15', maftufa_1_15, textToParse);18 subparse('Maltufa 0.9', '#parser-maltufa-0-9', maltufa_0_9, textToParse);19 subparse('Maltufa 1.15', '#parser-maltufa-1-15', maltufa_1_15, textToParse);20 subparse('Zantufa 0.9', '#parser-zantufa-0-9', zantufa_0_9, textToParse);21 subparse('Zantufa 0.61', '#parser-zantufa-0-61', zantufa_0_61, textToParse);22 subparse('Zantufa 1.3', '#parser-zantufa-1-3', zantufa_1_3, textToParse);23 const end = new Date().getTime();24 $('#time-label').html(`ï¼å¦çæéï¼${end - start}ããªç§)`);25}26function subparse(parserName, parserId, parserFunction, textToParse) {27 parserTabId = `${parserId}-tab`;28 try {29 let parseResult = parserFunction.parse(textToParse)30 parseResult = removeMorphology(parseResult);31 parseResult = removeSpaces(parseResult);32 const simplified = simplifyTree(parseResult);33 numberSumti(simplified);34 if (parseResult) {35 tokens = [];36 findTokens(parseResult, tokens);37 const $parser = $(parserId);38 showBoxes(simplified, $parser);39 }40 $(parserTabId).html(`${parserName} â
`);41 } catch (e) {42 if (e.name && (e.name === 'SyntaxError' || e.name === 'minajimpe')) {43 $(parserTabId).html(`${parserName} â`);44 $(parserId).html('<span class="muted">Boxes</span>');45 showSyntaxError(e, textToParse, $(parserId));46 } else {47 $(parserTabId).html(`${parserName} ð`);48 // eslint-disable-next-line no-console49 console.error(e);50 }51 }52}53/**54 * Finds all tokens in the resulting parse tree, and puts them in the tokens array.55 */56function findTokens(parseResult, tokens) {57 if (parseResult instanceof Array) {58 if (parseResult.length === 2 && isString(parseResult[0]) && isString(parseResult[1])) {59 tokens.push(parseResult[1]);60 } else {61 parseResult.forEach(child => findTokens(parseResult[child], tokens));62 }63 }64}65/**66 * Shows the boxes in the interface.67 */68function showBoxes(simplified, $element) {69 let output = '';70 output += constructBoxesOutput(simplified[0], 0);71 /* output += "<p>Legend: ";72 var types = ["sentence", "prenex", "selbri", "sumti"];73 for (var type in types) {74 output += "<div class=\"" + boxClassForType({ type: types[type] }) + "\">" + types[type] + "</div>";75 }76 output += "</p>"; */77 $element.html(output);78}79function constructBoxesOutput(parseResult, depth) {80 // precaution against infinite recursion; this should not actually happen of course81 if (depth > 3000) {82 return '<b>too much recursion :-(</b>';83 }84 // if we get null, just print that85 if (parseResult === null) {86 return '<i>(none?)</i>';87 }88 // if we get undefined, just print that89 if (!parseResult) {90 return '<i>(undefined?)</i>';91 }92 let output = '';93 if (parseResult.word) {94 output += '<div class="box box-terminal">';95 // we have a terminal96 output += ` <b>${getVlasiskuLink(parseResult.word)}</b> `;97 output += ` ${parseResult.type} `;98 if (grosses[parseResult.word]) {99 output += `<span class="translation"> ${grosses[parseResult.word]} </span>`;100 } else {101 output += 'ä¸æ';102 }103 output += '</div>';104 } else {105 // we have a non-terminal106 output += `<div class="${boxClassForType(parseResult)}">`;107 if (visiable(parseResult)) {108 output += '<div class="box box-type">';109 if (parseResult.sumtiPlace) {110 output += `第${parseResult.sumtiPlace}ã¹ã ãã£ï¼sumti x${parseResult.sumtiPlace}ï¼`;111 } else if (parseResult.type) {112 output += parseResult.type;113 } else {114 output += '<div class="box box-undefined"></div>';115 }116 output += '</div>';117 } 118 parseResult.children.forEach(child => {119 output += constructBoxesOutput(child, depth + 1);120 })121 output += '</div>';122 }123 return output;124}125function boxClassForType(parseResult) {126 if (parseResult.type === 'æç« ï¼textï¼') {127 return 'box box-text';128 }129 if (parseResult.type === 'æï¼sentenceï¼') {130 return 'box box-sentence';131 }132 if (parseResult.type === '第xã¹ã ãã£ï¼sumti xï¼') {133 if (parseResult.sumtiPlace > 5) {134 return 'box box-sumti6';135 } if (parseResult.sumtiPlace === 'fai') {136 return 'box box-sumti-fai';137 }138 return `box box-sumti${parseResult.sumtiPlace}`;139 }140 if (parseResult.type === 'æ³å¶ã¹ã ãã£ï¼sumti modalï¼') {141 return 'box box-modal';142 }143 if (parseResult.type === 'ã¹ã ãã£ï¼sumtiï¼') {144 return 'box box-sumti';145 }146 if (parseResult.type === 'ã»ã«ããªï¼selbriï¼') {147 return 'box box-selbri';148 }149 if (parseResult.type === 'å é ï¼prenexï¼') {150 return 'box box-prenex';151 }152 if (!visiable(parseResult)) {153 return 'box box-not-shown';154 }155 return 'box box-thin';156}157function visiable(parseResult) {158 return !(/ï¼é表示ï¼/.test(parseResult.type) || (/ã³ã¬ã¯ã·ã§ã³|ä¸ä½/.test(parseResult.type) && parseResult.children.length <= 1));159}160/**161 * Shows a syntax error in the interface.162 */163function showSyntaxError(e, textToParse, $element) {164 const output = `${'<div class="alert">' +165 '<p><b>Syntax error</b> on line <b>'}${e.line166 }</b>, at column <b>${e.column167 }</b>: ${e.message168 }</p>` +169 `<p class="error-sentence">${generateErrorPosition(e, textToParse)170 }</p>${generateFixes(e)171 }</div>`;172 $element.html(output);173}174/**175 * Generates the text sample that shows the error position.176 */177function generateErrorPosition(e, textToParse) {178 // "mi vau <span class=\"error-marker\">▴</span> do cusku ..." +179 let before = textToParse.substring(e.offset - 20, e.offset);180 let after = textToParse.substring(e.offset + 0, e.offset + 20);181 if (e.offset > 20) {182 before = `...${before}`;183 }184 if (e.offset < textToParse.length - 20) {185 after += '...';186 }187 return `${before}<span class="error-marker">▴</span>${after}`;188}189function generateFixes(e) {190 if (!e.fix) {191 // return "<p><i>No quick fixes available.</i></p>";192 return '';193 }194 let fixes = '<p>Quick fixes:<ul>';195 e.fix.forEach(fix => {196 fixes += '<li>';197 if (fix.fixFunction) {198 fixes += '<a>';199 fixes += fix.name;200 fixes += '</a>';201 } else {202 fixes += fix.name;203 }204 fixes += '</li>';205 });206 fixes += '</ul></p>';207 return fixes;208}209/**210 * Shows the translation in the interface.211 */212function showTranslation(parseResult, text, $element) {213 let output = '<p class="muted">This translation feature tries to give an approximate translation of the Lojban text into English. However, it does only work for a few sentences as of now. (Try [mi gleki] or something simple like that...)</p>';214 // var translation = translate(parse);215 const translation = 'Sorry! Translation is switched off at the moment, to prevent crashes in the other parts :-(';216 output += `<center><big>${translation}</big></center>`;217 $element.html(output);218}219// Auxiliary220function isString(s) {221 return typeof (s) === 'string' || s instanceof String;222}223function getVlasiskuLink(word) {224 return `<a class="vlasisku-link" href="http://vlasisku.lojban.org/vlasisku/${word}">${outputWord(word, getSelectedMode())}</a>`;225}226function outputWord(word, mode) {227 if (mode === 1) { // Latin mode228 return addDotsToWord(word);229 } if (mode === 2) { // Cyrillic mode230 return wordToCyrillic(addDotsToWord(word));231 } if (mode === 3) { // Tengwar mode232 return wordToTengwar(addDotsToWord(word));233 } if (mode === 4) { // Hiragana mode234 return wordToHiragana(addDotsToWord(word));235 }236 return null;237}238function getSelectedMode() {239 if ($('#latin-button').hasClass('active')) {240 return 1;241 } if ($('#cyrillic-button').hasClass('active')) {242 return 2;243 } if ($('#tengwar-button').hasClass('active')) {244 return 3;245 } if ($('#hiragana-button').hasClass('active')) {246 return 4;247 }248 return null;249}250function endsWith(str, suffix) {251 return str.indexOf(suffix, str.length - suffix.length) !== -1;...
spyDetailMessageParser.test.js
Source:spyDetailMessageParser.test.js
1import fs from 'fs';2import path from 'path';3import { assert } from 'chai';4import { CODES } from '../lib/GameElements';5import { spyDetailMessageParser } from '../lib/GameClient/parsers/spyDetailMessageParser';6const messagePage = fs.readFileSync(path.resolve('testPages', 'spyMessageDetail.html'), { encoding: 'utf8' });7const messageFullPage = fs.readFileSync(path.resolve('testPages', 'spyMessageFullDetail.html'), { encoding: 'utf8' });8const messageEmptyPage = fs.readFileSync(path.resolve('testPages', 'spyMessageEmptyDetail.html'), { encoding: 'utf8' });9describe(__filename, () => {10 it('Should parse the test page', (done) => {11 const parseResult = spyDetailMessageParser(messagePage);12 assert.equal(parseResult.coordinates.galaxy, 2);13 assert.equal(parseResult.coordinates.system, 56);14 assert.equal(parseResult.coordinates.planet, 6);15 assert.equal(parseResult.resources.metal, 48977);16 assert.equal(parseResult.resources.crystal, 37323);17 assert.equal(parseResult.resources.deuterium, 13697);18 assert.equal(parseResult.resources.energy, 1658);19 assert.equal(parseResult.fleet[CODES.SMALL_CARGO], 6);20 assert.equal(parseResult.fleet[CODES.LIGHT_FIGHTER], 10);21 assert.equal(parseResult.fleet[CODES.HEAVY_FIGHTER], 8);22 assert.equal(parseResult.fleet[CODES.ESPIONAGE_PROBE], 1);23 assert.equal(parseResult.fleet[CODES.SOLAR_SATELLITE], 12);24 assert.equal(parseResult.defences[CODES.ROCKET_LAUNCHER], 4);25 assert.equal(parseResult.defences[CODES.LIGHT_LASER], 3);26 assert.equal(parseResult.buildings[CODES.METAL_MINE], 12);27 assert.equal(parseResult.buildings[CODES.CRYSTAL_MINE], 13);28 assert.equal(parseResult.buildings[CODES.DEUTERIUM_SYNTHESIZER], 12);29 assert.equal(parseResult.buildings[CODES.SOLAR_PLANT], 14);30 assert.equal(parseResult.buildings[CODES.FUSION_REACTOR], 4);31 assert.equal(parseResult.buildings[CODES.ROBOTICS_FACTORY], 5);32 assert.equal(parseResult.buildings[CODES.SHIPYARD], 4);33 assert.equal(parseResult.buildings[CODES.METAL_STORAGE], 4);34 assert.equal(parseResult.buildings[CODES.CRYSTAL_STORAGE], 2);35 assert.equal(parseResult.buildings[CODES.DEUTERIUM_TANK], 2);36 assert.equal(parseResult.buildings[CODES.RESEARCH_LAB], 5);37 assert.equal(parseResult.buildings[CODES.SPACE_DOCK], 3);38 assert.equal(parseResult.buildings[CODES.MISSILE_SILO], 1);39 assert(!parseResult.technologies);40 done();41 });42 it('Should parse the complete message', (done) => {43 const parseResult = spyDetailMessageParser(messageFullPage);44 assert.equal(parseResult.coordinates.galaxy, 2);45 assert.equal(parseResult.coordinates.system, 21);46 assert.equal(parseResult.coordinates.planet, 8);47 assert.equal(parseResult.resources.metal, 50136);48 assert.equal(parseResult.resources.crystal, 9967);49 assert.equal(parseResult.resources.deuterium, 4944);50 assert.equal(parseResult.resources.energy, 1505);51 assert.equal(parseResult.fleet[CODES.CRUISER], 6);52 assert.equal(parseResult.defences[CODES.ROCKET_LAUNCHER], 47);53 assert.equal(parseResult.buildings[CODES.METAL_MINE], 15);54 assert.equal(parseResult.buildings[CODES.CRYSTAL_MINE], 12);55 assert.equal(parseResult.buildings[CODES.DEUTERIUM_SYNTHESIZER], 11);56 assert.equal(parseResult.buildings[CODES.SOLAR_PLANT], 15);57 assert.equal(parseResult.buildings[CODES.FUSION_REACTOR], 5);58 assert.equal(parseResult.buildings[CODES.ROBOTICS_FACTORY], 4);59 assert.equal(parseResult.buildings[CODES.SHIPYARD], 6);60 assert.equal(parseResult.buildings[CODES.METAL_STORAGE], 6);61 assert.equal(parseResult.buildings[CODES.CRYSTAL_STORAGE], 4);62 assert.equal(parseResult.buildings[CODES.DEUTERIUM_TANK], 3);63 assert.equal(parseResult.buildings[CODES.RESEARCH_LAB], 6);64 assert.equal(parseResult.buildings[CODES.SPACE_DOCK], 2);65 assert.equal(parseResult.technologies[CODES.ESPIONAGE_TECHNOLOGY], 4);66 assert.equal(parseResult.technologies[CODES.COMPUTER_TECHNOLOGY], 2);67 assert.equal(parseResult.technologies[CODES.WEAPONS_TECHNOLOGY], 1);68 assert.equal(parseResult.technologies[CODES.ARMOUR_TECHNOLOGY], 6);69 assert.equal(parseResult.technologies[CODES.ENERGY_TECHNOLOGY], 6);70 assert.equal(parseResult.technologies[CODES.COMBUSTION_DRIVE], 4);71 assert.equal(parseResult.technologies[CODES.IMPULSE_DRIVE], 4);72 assert.equal(parseResult.technologies[CODES.LASER_TECHNOLOGY], 7);73 assert.equal(parseResult.technologies[CODES.ION_TECHNOLOGY], 2);74 assert.equal(parseResult.technologies[CODES.ASTROPHYSICS], 1);75 done();76 });77 it('Should parse the empty message', (done) => {78 const parseResult = spyDetailMessageParser(messageEmptyPage);79 assert.equal(parseResult.coordinates.galaxy, 2);80 assert.equal(parseResult.coordinates.system, 38);81 assert.equal(parseResult.coordinates.planet, 4);82 assert.equal(parseResult.resources.metal, 5151);83 assert.equal(parseResult.resources.crystal, 5075);84 assert.equal(parseResult.resources.deuterium, 0);85 assert.equal(parseResult.resources.energy, 0);86 assert(parseResult.fleet);87 assert(parseResult.defences);88 assert(parseResult.buildings);89 assert(parseResult.technologies);90 done();91 });...
resourcesPageParser.test.js
Source:resourcesPageParser.test.js
1import fs from 'fs';2import path from 'path';3import { assert } from 'chai';4import { resourcesPageParser } from '../lib/GameClient/parsers/resourcesPageParser';5import { CODES } from '../lib/GameElements';6const resourcesPage = fs.readFileSync(path.resolve('testPages', 'resources.html'), { encoding: 'utf8' });7const resourcesPageProduction = fs.readFileSync(path.resolve('testPages', 'resourcesProduction.html'), { encoding: 'utf8' });8describe(__filename, () => {9 it('Should parse the test page', (done) => {10 const parseResult = resourcesPageParser(resourcesPage);11 assert.equal(parseResult.timestamp.getTime(), 1477610828);12 assert.equal(parseResult.planets.length, 1);13 assert.equal(parseResult.planet.planetName, 'Homeworld');14 assert.equal(parseResult.planet.planetId, '33628551');15 assert.equal(parseResult.planet.buildingCountdown, 0);16 assert.equal(parseResult.planet.planetType, 'planet');17 assert.equal(parseResult.planet.coordinates.galaxy, 2);18 assert.equal(parseResult.planet.coordinates.system, 31);19 assert.equal(parseResult.planet.coordinates.planet, 12);20 assert.equal(parseResult.planet.resources.metal, 65);21 assert.equal(parseResult.planet.resources.crystal, 261);22 assert.equal(parseResult.planet.resources.deuterium, 0);23 assert.equal(parseResult.planet.resources.energy, 47);24 assert.equal(parseResult.planet.resourceBuildings[CODES.METAL_MINE], 4);25 assert.equal(parseResult.planet.resourceBuildings[CODES.CRYSTAL_MINE], 1);26 assert.equal(parseResult.planet.resourceBuildings[CODES.DEUTERIUM_SYNTHESIZER], 0);27 assert.equal(parseResult.planet.resourceBuildings[CODES.SOLAR_PLANT], 4);28 assert.equal(parseResult.planet.resourceBuildings[CODES.METAL_STORAGE], 0);29 assert.equal(parseResult.planet.resourceBuildings[CODES.CRYSTAL_STORAGE], 0);30 assert.equal(parseResult.planet.resourceBuildings[CODES.DEUTERIUM_TANK], 0);31 assert.equal(parseResult.planet.ships[CODES.SOLAR_SATELLITE], 0);32 done();33 });34 it('Should parse the building construction countdown', (done) => {35 const parseResult = resourcesPageParser(resourcesPageProduction);36 assert.equal(parseResult.planets.length, 1);37 assert.equal(parseResult.planet.planetName, 'Homeworld');38 assert.equal(parseResult.planet.planetId, '33628551');39 assert.equal(parseResult.planet.buildingCountdown, 2 * 60 + 28);40 assert.equal(parseResult.planet.coordinates.galaxy, 2);41 assert.equal(parseResult.planet.coordinates.system, 31);42 assert.equal(parseResult.planet.coordinates.planet, 12);43 assert.equal(parseResult.planet.resources.metal, 7065);44 assert.equal(parseResult.planet.resources.crystal, 6872);45 assert.equal(parseResult.planet.resources.deuterium, 1778);46 assert.equal(parseResult.planet.resources.energy, 9);47 assert.equal(parseResult.planet.resourceBuildings[CODES.METAL_MINE], 8);48 assert.equal(parseResult.planet.resourceBuildings[CODES.CRYSTAL_MINE], 5);49 assert.equal(parseResult.planet.resourceBuildings[CODES.DEUTERIUM_SYNTHESIZER], 3);50 assert.equal(parseResult.planet.resourceBuildings[CODES.SOLAR_PLANT], 8);51 assert.equal(parseResult.planet.resourceBuildings[CODES.METAL_STORAGE], 0);52 assert.equal(parseResult.planet.resourceBuildings[CODES.CRYSTAL_STORAGE], 0);53 assert.equal(parseResult.planet.resourceBuildings[CODES.DEUTERIUM_TANK], 0);54 assert.equal(parseResult.planet.ships[CODES.SOLAR_SATELLITE], 0);55 done();56 });...
overviewPageParser.test.js
Source:overviewPageParser.test.js
1import fs from 'fs';2import path from 'path';3import { assert } from 'chai';4import { overviewPageParser } from '../lib/GameClient/parsers/overviewPageParser';5const overviewPage = fs.readFileSync(path.resolve('testPages', 'overview.html'), { encoding: 'utf8' });6const overviewMultiplePlanetsPage = fs.readFileSync(path.resolve('testPages', 'overviewMultiplePlanets.html'), { encoding: 'utf8' });7const overviewAttackPage = fs.readFileSync(path.resolve('testPages', 'overviewAttack.html'), { encoding: 'utf8' });8describe(__filename, () => {9 it('Should parse the test page', (done) => {10 const parseResult = overviewPageParser(overviewPage);11 assert.equal(parseResult.timestamp.getTime(), 1477936188);12 assert.equal(parseResult.planets.length, 1);13 assert.equal(parseResult.planet.planetName, 'Homeworld');14 assert.equal(parseResult.planet.planetId, '33628551');15 assert.equal(parseResult.planet.planetType, 'planet');16 assert.equal(parseResult.planet.coordinates.galaxy, 2);17 assert.equal(parseResult.planet.coordinates.system, 31);18 assert.equal(parseResult.planet.coordinates.planet, 12);19 assert.equal(parseResult.planet.resources.metal, 20903);20 assert.equal(parseResult.planet.resources.crystal, 6827);21 assert.equal(parseResult.planet.resources.deuterium, 6535);22 assert.equal(parseResult.planet.resources.energy, 36);23 assert.equal(parseResult.planet.buildingCountdown, 16 * 60 + 37);24 assert.equal(parseResult.planet.researchCountdown, 11 * 60 + 28);25 assert.equal(parseResult.planet.shipyardCountdown, 39);26 assert.equal(parseResult.enemyAttacks.length, 0);27 done();28 });29 it('Should parse own planets list', (done) => {30 const parseResult = overviewPageParser(overviewMultiplePlanetsPage);31 assert.equal(parseResult.planets.length, 3);32 assert(parseResult.planets.indexOf('33628551') > -1);33 assert(parseResult.planets.indexOf('33632988') > -1);34 assert(parseResult.planets.indexOf('33633342') > -1);35 done();36 });37/*38 it('Should detect an attack', () => {39 const parseResult = overviewPageParser(overviewAttackPage);40 assert.equal(parseResult.enemyAttacks.length, 1);41 });42*/43 //TODO test more than just one mission...
loginPageParser.test.js
Source:loginPageParser.test.js
1import fs from 'fs';2import path from 'path';3import { assert } from 'chai';4import { loginPageParser } from '../lib/GameClient/parsers/loginPageParser';5const loginPage = fs.readFileSync(path.resolve('testPages', 'login.html'), { encoding: 'utf8' });6describe(__filename, () => {7 it('Should parse the test page', (done) => {8 const parseResult = loginPageParser(loginPage);9 assert(parseResult.universes);10 assert.equal(parseResult.universes['Event server'], 's205-en.ogame.gameforge.com');11 assert.equal(parseResult.universes.Betelgeuse, 's128-en.ogame.gameforge.com');12 assert.equal(parseResult.universes.Cygnus, 's129-en.ogame.gameforge.com');13 assert.equal(parseResult.universes.Deimos, 's130-en.ogame.gameforge.com');14 assert.equal(parseResult.universes.Eridanus, 's131-en.ogame.gameforge.com');15 assert.equal(parseResult.universes.Fidis, 's132-en.ogame.gameforge.com');16 assert.equal(parseResult.universes.Ganimed, 's133-en.ogame.gameforge.com');17 assert.equal(parseResult.universes.Hyperion, 's134-en.ogame.gameforge.com');18 assert.equal(parseResult.universes.Izar, 's135-en.ogame.gameforge.com');19 assert.equal(parseResult.universes.Japetus, 's136-en.ogame.gameforge.com');20 assert.equal(parseResult.universes.Kallisto, 's137-en.ogame.gameforge.com');21 assert.equal(parseResult.universes.Libra, 's138-en.ogame.gameforge.com');22 assert.equal(parseResult.universes.Nusakan, 's140-en.ogame.gameforge.com');23 assert.equal(parseResult.universes.Oberon, 's141-en.ogame.gameforge.com');24 assert.equal(parseResult.universes.Polaris, 's142-en.ogame.gameforge.com');25 assert.equal(parseResult.universes.Unity, 's139-en.ogame.gameforge.com');26 assert.equal(parseResult.universes.Quantum, 's117-en.ogame.gameforge.com');27 assert.equal(parseResult.universes.Rigel, 's118-en.ogame.gameforge.com');28 assert.equal(parseResult.universes.Taurus, 's120-en.ogame.gameforge.com');29 assert.equal(parseResult.universes.Vega, 's122-en.ogame.gameforge.com');30 assert.equal(parseResult.universes.Wasat, 's123-en.ogame.gameforge.com');31 assert.equal(parseResult.universes['1. Universe'], 's1-en.ogame.gameforge.com');32 done();33 });...
fleetOnePageParser.test.js
Source:fleetOnePageParser.test.js
1import fs from 'fs';2import path from 'path';3import { assert } from 'chai';4import { CODES } from '../lib/GameElements';5import { fleetOnePageParser } from '../lib/GameClient/parsers/fleetOnePageParser';6const fleetOnePage = fs.readFileSync(path.resolve('testPages', 'fleet1.html'), { encoding: 'utf8' });7describe(__filename, () => {8 it('Should parse the test page', (done) => {9 const parseResult = fleetOnePageParser(fleetOnePage);10 assert.equal(parseResult.planets.length, 1);11 assert.equal(parseResult.timestamp.getTime(), 1478028927);12 assert.equal(parseResult.planet.planetName, 'Homeworld');13 assert.equal(parseResult.planet.planetId, '33628551');14 assert.equal(parseResult.planet.planetType, 'planet');15 assert.equal(parseResult.planet.coordinates.galaxy, 2);16 assert.equal(parseResult.planet.coordinates.system, 31);17 assert.equal(parseResult.planet.coordinates.planet, 12);18 assert.equal(parseResult.planet.resources.metal, 64132);19 assert.equal(parseResult.planet.resources.crystal, 25272);20 assert.equal(parseResult.planet.resources.deuterium, 5241);21 assert.equal(parseResult.planet.resources.energy, 7);22 assert.equal(parseResult.planet.ships[CODES.LIGHT_FIGHTER], 0);23 assert.equal(parseResult.planet.ships[CODES.HEAVY_FIGHTER], 0);24 assert.equal(parseResult.planet.ships[CODES.CRUISER], 0);25 assert.equal(parseResult.planet.ships[CODES.BATTLESHIP], 0);26 assert.equal(parseResult.planet.ships[CODES.BATTLECRUISER], 0);27 assert.equal(parseResult.planet.ships[CODES.BOMBER], 0);28 assert.equal(parseResult.planet.ships[CODES.DESTROYER], 0);29 assert.equal(parseResult.planet.ships[CODES.DEATHSTAR], 0);30 assert.equal(parseResult.planet.ships[CODES.SMALL_CARGO], 3);31 assert.equal(parseResult.planet.ships[CODES.LARGE_CARGO], 0);32 assert.equal(parseResult.planet.ships[CODES.RECYCLER], 0);33 assert.equal(parseResult.planet.ships[CODES.COLONY_SHIP], 1);34 assert.equal(parseResult.planet.ships[CODES.ESPIONAGE_PROBE], 10);35 assert.equal(parseResult.maxOwnMissions, 4);36 assert.equal(parseResult.ownMissions, 0);37 assert.equal(parseResult.enemyAttacks.length, 0);38 done();39 });...
shipayardPageParser.test.js
Source:shipayardPageParser.test.js
1import fs from 'fs';2import path from 'path';3import { assert } from 'chai';4import { CODES } from '../lib/GameElements';5import { shipyardPageParser } from '../lib/GameClient/parsers/shipyardPageParser';6const shipyardPage = fs.readFileSync(path.resolve('testPages', 'shipyard.html'), { encoding: 'utf8' });7describe(__filename, () => {8 it('Should parse the test page', (done) => {9 const parseResult = shipyardPageParser(shipyardPage);10 assert.equal(parseResult.planets.length, 1);11 assert.equal(parseResult.timestamp.getTime(), 1478027776);12 assert.equal(parseResult.planet.planetName, 'Homeworld');13 assert.equal(parseResult.planet.planetId, '33628551');14 assert.equal(parseResult.planet.planetType, 'planet');15 assert.equal(parseResult.planet.coordinates.galaxy, 2);16 assert.equal(parseResult.planet.coordinates.system, 31);17 assert.equal(parseResult.planet.coordinates.planet, 12);18 assert.equal(parseResult.planet.resources.metal, 59960);19 assert.equal(parseResult.planet.resources.crystal, 23547);20 assert.equal(parseResult.planet.resources.deuterium, 4855);21 assert.equal(parseResult.planet.resources.energy, 7);22 assert.equal(parseResult.planet.ships[CODES.LIGHT_FIGHTER], 0);23 assert.equal(parseResult.planet.ships[CODES.HEAVY_FIGHTER], 0);24 assert.equal(parseResult.planet.ships[CODES.CRUISER], 0);25 assert.equal(parseResult.planet.ships[CODES.BATTLESHIP], 0);26 assert.equal(parseResult.planet.ships[CODES.BATTLECRUISER], 0);27 assert.equal(parseResult.planet.ships[CODES.BOMBER], 0);28 assert.equal(parseResult.planet.ships[CODES.DESTROYER], 0);29 assert.equal(parseResult.planet.ships[CODES.DEATHSTAR], 0);30 assert.equal(parseResult.planet.ships[CODES.SMALL_CARGO], 3);31 assert.equal(parseResult.planet.ships[CODES.LARGE_CARGO], 0);32 assert.equal(parseResult.planet.ships[CODES.RECYCLER], 0);33 assert.equal(parseResult.planet.ships[CODES.COLONY_SHIP], 1);34 assert.equal(parseResult.planet.ships[CODES.ESPIONAGE_PROBE], 10);35 assert.equal(parseResult.planet.ships[CODES.SOLAR_SATELLITE], 1);36 assert.equal(parseResult.enemyAttacks.length, 0);37 done();38 });...
defencePageParser.test.js
Source:defencePageParser.test.js
1import fs from 'fs';2import path from 'path';3import { assert } from 'chai';4import { CODES } from '../lib/GameElements';5import { defencePageParser } from '../lib/GameClient/parsers/defencePageParser';6const defencePage = fs.readFileSync(path.resolve('testPages', 'defense.html'), { encoding: 'utf8' });7describe(__filename, () => {8 it('Should parse the test page', (done) => {9 const parseResult = defencePageParser(defencePage);10 assert.equal(parseResult.planets.length, 1);11 assert.equal(parseResult.timestamp.getTime(), 1477961834);12 assert.equal(parseResult.planet.planetName, 'Homeworld');13 assert.equal(parseResult.planet.planetId, '33628551');14 assert.equal(parseResult.planet.planetType, 'planet');15 assert.equal(parseResult.planet.coordinates.galaxy, 2);16 assert.equal(parseResult.planet.coordinates.system, 31);17 assert.equal(parseResult.planet.coordinates.planet, 12);18 assert.equal(parseResult.planet.resources.metal, 16923);19 assert.equal(parseResult.planet.resources.crystal, 6193);20 assert.equal(parseResult.planet.resources.deuterium, 9580);21 assert.equal(parseResult.planet.resources.energy, 160);22 assert.equal(parseResult.planet.defences[CODES.ROCKET_LAUNCHER], 60);23 assert.equal(parseResult.planet.defences[CODES.LIGHT_LASER], 40);24 assert.equal(parseResult.planet.defences[CODES.HEAVY_LASER], 5);25 assert.equal(parseResult.planet.defences[CODES.GAUSS_CANNON], 0);26 assert.equal(parseResult.planet.defences[CODES.ION_CANNON], 0);27 assert.equal(parseResult.planet.defences[CODES.SMALL_SHIELD_DOME], 1);28 assert.equal(parseResult.planet.defences[CODES.LARGE_SHIELD_DOME], 0);29 assert.equal(parseResult.planet.defences[CODES.ANTI_BALLISTIC_MISSILE], 0);30 assert.equal(parseResult.planet.defences[CODES.INTERPLANETARY_MISSILE], 0);31 assert.equal(parseResult.enemyAttacks.length, 0);32 done();33 });...
Using AI Code Generation
1(async () => {2 const { chromium } = require('playwright');3 const browser = await chromium.launch({ headless: false });4 const context = await browser.newContext();5 const page = await context.newPage();6 const { parseResult } = require('playwright/lib/server/supplements/recorder/recorderApp');7 const result = await page.evaluate(parseResult, { type: 'click', selector: 'text=Google Search' });8 console.log(result);9 await browser.close();10})();11{12 position: { x: 108, y: 10 },13}
Using AI Code Generation
1const { parseResult } = require('playwright/lib/utils/stackTrace');2const { parseResult } = require('playwright/lib/utils/stackTrace');3const { parseResult } = require('playwright/lib/utils/stackTrace');4const { parseResult } = require('playwright/lib/utils/stackTrace');5 at Object.<anonymous> (/Users/user1/stack-trace-parser/test.js:6:9)6 at Module._compile (internal/modules/cjs/loader.js:1137:30)7 at Object.Module._extensions..js (internal/modules/cjs/loader.js:1157:10)8 at Module.load (internal/modules/cjs/loader.js:985:32)9 at Function.Module._load (internal/modules/cjs/loader.js:878:14)10 at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)11 `;12const result = parseResult(stackTrace);13console.log(result);14 {15 }16const { test, expect } = require('@playwright/test');17const { parseResult } = require('playwright/lib/utils/stackTrace');18test('test', async ({ page }) => {19 try {20 } catch (e) {21 const result = parseResult(e.stack);22 console.log(result);23 }24});25 {
Using AI Code Generation
1const { parseResult } = require('@playwright/test/lib/test/result');2const { createTestResult } = require('@playwright/test/lib/test/result');3const { createTest } = require('@playwright/test/lib/test/test');4const { createTestStep } = require('@playwright/test/lib/test/testStep');5const { createTestFixtures } = require('@playwright/test/lib/test/fixtures');6const { createTestSnapshotManager } = require('@playwright/test/lib/test/snapshot/snapshotManager');7const { createTestSnapshotter } = require('@playwright/test/lib/test/snapshot/snapshotter');8const { createTestSnapshotStorage } = require('@playwright/test/lib/test/snapshot/snapshotStorage');9const { createTestSnapshotterConfig } = require('@playwright/test/lib/test/snapshot/snapshotterConfig');10const { createTestSnapshotterState } = require('@playwright/test/lib/test/snapshot/snapshotterState');11const { createTestSnapshotterWorker } = require('@playwright/test/lib/test/snapshot/snapshotterWorker');12const { createTestSnapshotterWorkerState } = require('@playwright/test/lib/test/snapshot/snapshotterWorkerState');13const { createTestSnapshotterWorkerStorage } = require('@playwright/test/lib/test/snapshot/snapshotterWorkerStorage');14const { createTestSnapshotterWorkerConfig } = require('@playwright/test/lib/test/snapshot/snapshotterWorkerConfig');15const { createTestSnapshotterWorkerState } = require('@playwright
Using AI Code Generation
1const { parseResult } = require('playwright/lib/server/chromium/crNetworkManager');2const result = parseResult({3 headers: {4 'content-type': 'text/html; charset=utf-8',5 },6});7console.log(result);8### `parseResult(options)`
Using AI Code Generation
1const { parseResult } = require('playwright/lib/utils/stackTrace');2const stackTrace = require('stack-trace');3const stack = stackTrace.get();4const result = parseResult(stack);5console.log(result);6Please read [CONTRIBUTING.md](
Using AI Code Generation
1const { parseResult } = require('@playwright/test/lib/test/result');2const result = parseResult({3 { type: 'log', value: 'log message' },4 { type: 'info', value: 'info message' },5 { type: 'error', value: 'error message' },6 { type: 'warning', value: 'warning message' },7 { type: 'result', value: 'result message' },8 { type: 'step', value: 'step message' },9 { type: 'snapshot', value: 'snapshot message' }10 { title: 'step 1', annotations: [{ type: 'log', value: 'log message' }] },11 { title: 'step 2', annotations: [{ type: 'info', value: 'info message' }] },12 { title: 'step 3', annotations: [{ type: 'error', value: 'error message' }] },13 { title: 'step 4', annotations: [{ type: 'warning', value: 'warning message' }] },14 { title: 'step 5', annotations: [{ type: 'result', value: 'result message' }] },15 { title: 'step 6', annotations: [{ type: 'step', value: 'step message' }] },16 { title: 'step 7', annotations: [{ type: 'snapshot', value: 'snapshot message' }] }17});18console.log(result);
Using AI Code Generation
1const { parseResult } = require('playwright/lib/protocol/protocol');2const { test } = require('playwright/lib/test');3const { expect } = require('playwright/lib/utils/expect');4const { testFixtures } = require('playwright/lib/test/fixtures');5const { TestType } = require('playwright/lib/test/types');6const { TestError } = require('playwright/lib/test/testError');7const { TestResult } = require('playwright/lib/test/testResult');8const { TestStatus } = require('playwright/lib/test/testStatus');9const { TestStep } = require('playwright/lib/test/testStep');10const { Test } = require('playwright/lib/test/test');11const { TestRunner } = require('playwright/lib/test/testRunner');12const { RunnerConfig } = require('playwright/lib/test/runnerConfig');13const { RunnerSuite } = require('playwright/lib/test/runnerSuite');14const { RunnerWorker } = require('playwright/lib/test/runnerWorker');15const { RunnerWorkerPool } = require('playwright/lib/test/runnerWorkerPool');16const { Suite } = require('playwright/lib/test/suite');
Using AI Code Generation
1const { parseResult } = require('playwright/lib/utils/utils');2const result = {3 '0': {4 '0': {5 },6 '1': {7 }8 },9 '1': {10 '0': {11 },12 '1': {13 }14 }15};16const parsedResult = parseResult(result);17console.log(parsedResult);18const { parseResult } = require('playwright/lib/utils/utils');19const playwright = require('playwright');20const browser = await playwright.chromium.launch();21const context = await browser.newContext();22const page = await context.newPage();23const result = await page.evaluate(() => {24 return {25 '0': {26 '0': {27 },28 '1': {29 }30 },31 '1': {32 '0': {33 },34 '1': {35 }36 }37 }38});39const parsedResult = parseResult(result);40console.log(parsedResult);41[MIT](LICENSE)
Using AI Code Generation
1const { parseResult } = require('playwright/lib/locator');2const { Locator } = require('playwright/lib/locator');3const locator = new Locator(page, 'test');4const element = await locator.elementHandle();5const result = await parseResult(element, 'test');6console.log(result);7const { parseResult } = require('playwright/lib/locator');8const { Locator } = require('playwright/lib/locator');9const locator = new Locator(page, 'test');10const element = await locator.elementHandle();11const result = await parseResult(element, 'test');12console.log(result);13const { parseResult } = require('playwright/lib/locator');14const { Locator } = require('playwright/lib/locator');15const locator = new Locator(page, 'test');16const element = await locator.elementHandle();17const result = await parseResult(element, 'test');18console.log(result);19 OS: Linux 5.11 Ubuntu 21.04 (Hirsute Hippo)
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!!