Best JavaScript code snippet using mountebank
helpers.spec.ts
Source:helpers.spec.ts
...17import Parsimmon, { Parser } from 'parsimmon';18describe('helpers', () => {19 describe('upName', () => {20 it('should parse a name with first capital letter', () => {21 expect(upName.tryParse('Foo')).toBe('Foo');22 });23 it('should fail to parse a name that starts with a lower-case letter', () => {24 expect(() => upName.tryParse('foo')).toThrow();25 });26 it('should fail to parse a name that starts with a number', () => {27 expect(() => upName.tryParse('1foo')).toThrow();28 });29 });30 describe('loName', () => {31 it('should parse a name with first lowercase letter', () => {32 expect(loName.tryParse('a')).toBe('a');33 });34 it('should fail if the name is a reserved keyword', () => {35 expect(() => loName.tryParse('let')).toThrow();36 });37 it('should parse the underscore', () => {38 expect(loName.tryParse('_')).toBe('_');39 });40 });41 describe('moduleName', () => {42 it('should parse simple module name', () => {43 expect(moduleName.tryParse('Main')).toEqual(['Main']);44 });45 it('should parse a namespaced module name', () => {46 expect(moduleName.tryParse('App.View')).toEqual(['App', 'View']);47 });48 it('should parse a module name, surrounded by whitespace', () => {49 expect(moduleName.tryParse(' App.View ')).toEqual(['App', 'View']);50 });51 });52 describe('initialSymbol', () => {53 it('should parse the initial symbol with trailing whitespace', () => {54 expect(initialSymbol('module').tryParse('module ')).toBe('module');55 });56 it('should fail if trailing whitespace is missing', () => {57 expect(() => initialSymbol('module').tryParse('module')).toThrow();58 });59 });60 describe('operator', () => {61 it('should parse the built-in operator', () => {62 expect(operator.tryParse('+')).toBe('+');63 });64 it('should parse the valid operator', () => {65 expect(operator.tryParse('=>')).toBe('=>');66 });67 it('should fail to parse the reverved operator', () => {68 expect(() => operator.tryParse('=')).toThrow();69 });70 });71 describe('symbol', () => {72 it('should parse a symbol', () => {73 expect(() => symbol('foo').tryParse('foo')).not.toThrow();74 expect(symbol('foo').tryParse('foo')).toBe('foo');75 });76 it('should parse a symbol surrounded by whitespace', () => {77 expect(() => symbol('foo').tryParse(' foo ')).not.toThrow();78 expect(symbol('foo').tryParse('foo')).toBe('foo');79 });80 });81 describe('symbol_', () => {82 it('should parse a symbol with mandatory trailing whitespace', () => {83 expect(() => symbol_('foo').tryParse('foo ')).not.toThrow();84 expect(symbol_('foo').tryParse('foo ')).toBe('foo');85 });86 it('should parse a symbol surrounded by whitespace', () => {87 expect(() => symbol_('foo').tryParse(' foo ')).not.toThrow();88 expect(symbol_('foo').tryParse('foo ')).toBe('foo');89 });90 it('should parse a symbol surrounded by whitespace and line-break', () => {91 expect(() =>92 symbol_('foo').tryParse(`93 foo94 `)95 ).not.toThrow();96 expect(97 symbol_('foo').tryParse(`98 foo99 `)100 ).toBe('foo');101 });102 });103 describe('countIndent', () => {104 it('should parse empty string', () => {105 expect(countIndent.tryParse('')).toBe(0);106 });107 it('should parse one space', () => {108 expect(countIndent.tryParse(' ')).toBe(1);109 });110 it('should cont tabs', () => {111 expect(countIndent.tryParse('\t')).toBe(0);112 });113 it('should count ', () => {114 expect(countIndent.tryParse(' \n\t')).toBe(1);115 });116 });117 describe('commaSeparated', () => {118 it('should parse values separated by single comma', () => {119 expect(() => commaSeparated(integer).tryParse('1,2,3')).not.toThrow();120 });121 it('should not fail on nothing', () => {122 expect(() => commaSeparated(integer).tryParse('')).not.toThrow();123 });124 });125 describe('parens', () => {126 it('should parse a value inside parens', () => {127 expect(() => parens(integer).tryParse('(1)')).not.toThrow();128 });129 });130 describe('chainl', () => {131 const int = integer.map(({ value }) => value);132 const addop = Parsimmon.alt(133 Parsimmon.string('+').map(_ => (x: number, y: number) => x + y),134 Parsimmon.string('-').map(_ => (x: number, y: number) => x - y)135 );136 const mulop = Parsimmon.alt(137 Parsimmon.string('*').map(_ => (x: number, y: number) => x * y),138 Parsimmon.string('\\').map(_ => (x: number, y: number) => x / y)139 );140 const term: Parser<number> = Parsimmon.lazy(() => chainl(mulop, factor));141 const expr = Parsimmon.lazy(() => chainl(addop, term));142 const factor = parens(expr)143 .or(int)144 .trim(whitespace);145 const calc = expr.skip(Parsimmon.eof);146 it('should parse math operations', () => {147 expect(calc.tryParse('1')).toBe(1);148 expect(calc.tryParse('1 + 1')).toBe(2);149 expect(calc.tryParse('1 + 1 + 1')).toBe(3);150 expect(calc.tryParse('2 * 2')).toBe(4);151 });152 });153 describe('exactIndentation', () => {154 it('will not fail if not expected any indentation', () => {155 expect(() => exactIndentation(0).tryParse('')).not.toThrow();156 });157 it('will fail if there is not enough indentation', () => {158 expect(() => exactIndentation(1).tryParse('')).toThrow();159 });160 it('will not fail if there is enough indentation', () => {161 expect(() => exactIndentation(2).tryParse(' ')).not.toThrow();162 });163 it('will not if there is not enough indentation surrounded by newlines', () => {164 expect(() => exactIndentation(2).tryParse('\n \n')).not.toThrow();165 });166 });...
test.ts
Source:test.ts
...12} from "./mod.ts";13import { assertEquals, assertThrows, test } from "../../deps_test.ts";14import { VarAPGMExpr } from "../ast/var.ts";15test("parser: identifier", () => {16 const value = identifier.tryParse("abc");17 assertEquals(value, "abc");18});19test("parser: identifier empty fail", () => {20 assertThrows(() => {21 identifier.tryParse("");22 });23});24test("parser: identifier start number fail", () => {25 assertThrows(() => {26 identifier.tryParse("1abc");27 });28});29test("parser: identifier contains number", () => {30 const value = identifier.tryParse("abc1");31 assertEquals(value, "abc1");32});33test("parser: identifier whitespace", () => {34 assertThrows(() => {35 identifier.tryParse("abc def");36 });37});38test("parser: comment", () => {39 const array = [40 "abc def",41 "abc /* comment */ def",42 "abc/* comment */def",43 "abc/* comment *//* comment2 */def",44 "abc/* comment */ /* comment2 */ def",45 "abc/**//**/def",46 "abc/**/def",47 "abc/*\n*/def",48 "abc\ndef",49 "abc\n\ndef",50 "abc\n/*\n comment \n*/\ndef",51 ];52 for (const s of array) {53 const value = identifierOnly.skip(_).and(identifierOnly).tryParse(s);54 assertEquals(value, ["abc", "def"]);55 }56});57test("parser: comment", () => {58 const array = [59 "abc/* comment */ def /* comment2 */",60 ];61 for (const s of array) {62 const value = identifier.repeat().tryParse(s);63 assertEquals(value, ["abc", "def"]);64 }65});66test("parser: header", () => {67 assertEquals(header.tryParse("#REGISTERS {}").toString(), "#REGISTERS {}");68 assertEquals(69 header.tryParse("#COMPONENTS OUTPUT").toString(),70 "#COMPONENTS OUTPUT",71 );72});73test("parser: header no space", () => {74 assertEquals(header.tryParse("#REGISTERS{}").toString(), "#REGISTERS {}");75});76test("parser: func", () => {77 const array = [78 "f(a,b,c)",79 "f(a, b, c)",80 "f ( a, b , c )",81 "f ( a, /* comment */ b , c )",82 "f ( a, \n b , \n c )",83 "f \n(\n a\n,b,c)",84 ];85 for (const s of array) {86 const value = funcAPGMExpr().tryParse(s);87 assertEquals(value.name, "f");88 assertEquals(89 value.args.map((x) => x instanceof VarAPGMExpr ? x.name : ""),90 ["a", "b", "c"],91 );92 }93});94test("parser: stringLit", () => {95 const value = stringLit.tryParse(`"abc"`);96 assertEquals(value.value, "abc");97 const value2 = stringLit.tryParse(` "def"`);98 assertEquals(value2.value, "def");99});100test("parser: main", () => {101 assertThrows(() => {102 main().tryParse(`103 /* no ! */104 macro f(x) {105 x;106 }107 `);108 });109 assertThrows(() => {110 main().tryParse(`111 macrof!(x) {112 x;113 }114 `);115 });116 ifAPGMExpr().tryParse(`117 if_z(f(2)) {118 g(3);119 }120 `);121 const testCases = [122 ``,123 ` `,124 `f();`,125 `/* macro name must end with "!" */126 macro f!(x) {127 x;128 x;129 }130 macro h!( y ) {131 y;132 }133 macro g!( y ) {134 y;135 }136 f!(2);137 f!("2");138 f!({ g(3); });`,139 `if_z(f(2)) {140 g(3);141 }`,142 `if_z(f(2)) {143 g(3);144 } else {145 f(4);146 }`,147 `if_z(f(2)) {148 g(3);149 } else if_z(g(7)) {150 f(4);151 }`,152 `if_z(f(2)) {153 g(3);154 } else if_nz(g(7)) {155 f(4);156 } else {157 h(5);158 }`,159 `while_z(f(2)) {160 g(3);161 }162 while_nz(g("1")) {163 f(2);164 }`,165 `loop {166 g(3);167 }`,168 `loop {169 g ( 3 ) ;170 }`,171 `loop {172 g(3);173 }174 loop {175 g(3);176 }`,177 `f({178 g(2);179 g(3);180 });`,181 `macro f!() {182 output("1");183 }184 #REGISTERS {}185 f(2);`,186 `macro my_output!(x) {187 output(x);188 }189 #REGISTERS { "U0": 5 }190 inc_u(0);`,191 ];192 for (const c of testCases) {193 const m = main().tryParse(c);194 const mPretty = m.pretty();195 try {196 const m2 = main().tryParse(mPretty);197 assertEquals(mPretty, m2.pretty());198 } catch (error) {199 throw Error(`Parse Error for: "${c}" -> "${mPretty}"`, {200 cause: error instanceof Error ? error : undefined,201 });202 }203 }204});205test("parser: main hex", () => {206 const res = main().tryParse(`f(0x10);`);207 // @ts-ignore complex208 assertEquals(res.seqExpr.exprs[0].args[0].value, 16);209});210test("parser: pretty", () => {211 const value = apgmExpr().tryParse("f(a,b)");212 assertEquals(value.pretty(), "f(a, b)");213});214test("parser: pretty 2", () => {215 const value = apgmExpr().tryParse(`{ f(1); g("2"); }`);216 assertEquals(value.pretty(), `{f(1);\ng("2");}`);217});218test("parser: pretty loop", () => {219 const value = apgmExpr().tryParse(`loop { f(1); g("2"); }`);220 assertEquals(value.pretty(), `loop {f(1);\ng("2");}`);221});222test("parser: pretty macro", () => {223 const value = macro().tryParse(`macro f!() { output("3"); }`);224 assertEquals(value.pretty(), `macro f!() {output("3");}`);225});226test("parser: pretty macro args", () => {227 const value = macro().tryParse(`macro f!(x, y) { output("3"); }`);228 assertEquals(value.pretty(), `macro f!(x, y) {output("3");}`);...
evaluate.ts
Source:evaluate.ts
1import { Expr } from "../expression";2import { evaluate } from "../evaluate";3test("evaluation", () => {4 expect(evaluate(Expr.tryParse(`5 `))).toEqual(5);5 expect(evaluate(Expr.tryParse(` true`))).toEqual(true);6 expect(evaluate(Expr.tryParse(`false `))).toEqual(false);7 expect(evaluate(Expr.tryParse(` ( ( false)) `))).toEqual(false);8 expect(evaluate(Expr.tryParse(`"hello"`))).toEqual("hello");9 expect(evaluate(Expr.tryParse(` ""`))).toEqual("");10 expect(evaluate(Expr.tryParse(`'hello'`))).toEqual("hello");11 expect(evaluate(Expr.tryParse(`''`))).toEqual("");12 expect(evaluate(Expr.tryParse(`hello`))).toEqual(undefined);13 expect(evaluate(Expr.tryParse(`hello`), { hello: [] })).toEqual([]);14 expect(evaluate(Expr.tryParse(`a.b.c`))).toEqual(undefined);15 expect(evaluate(Expr.tryParse(`a.b.c`), { a: 4 })).toEqual(undefined);16 expect(evaluate(Expr.tryParse(`a.b.c`), { a: { b: { c: 4 } } })).toEqual(4);17 expect(evaluate(Expr.tryParse(`a.b.c == 4`), { a: { b: { c: 4 } } })).toEqual(18 true19 );20 expect(21 evaluate(Expr.tryParse(`arr contains a.b.c`), {22 arr: [2, 3, 4, 5],23 a: { b: { c: 4 } },24 })25 ).toEqual(true);26 expect(27 evaluate(Expr.tryParse(`ar contains a.b.c`), {28 arr: [2, 3, 4, 5],29 a: { b: { c: 4 } },30 })31 ).toEqual(undefined);32 expect(33 evaluate(Expr.tryParse(`arr contains a.b.c`), {34 arr: [2, 3, 5],35 a: { b: { c: 4 } },36 })37 ).toEqual(false);38 expect(39 evaluate(40 Expr.tryParse(41 `resource.fuelType == 'elektrisch' and (decisions.parkedAtChargingStation == 'yes' or resource.fuelLevel < 75 or resource.parkingType == 'parking_spot')`42 ),43 {44 resource: {45 fuelType: "elektrisch",46 fuelLevel: 70,47 parkingType: "zone",48 },49 decisions: {50 parkedAtChargingStation: "no",51 },52 }53 )54 ).toEqual(true);55 expect(56 evaluate(Expr.tryParse(`if(resource.fuelType == 'elektrisch', 25, 50)`), {57 resource: {58 fuelType: "elektrisch",59 },60 })61 ).toEqual(25);62 expect(63 evaluate(Expr.tryParse(`if(resource.fuelType == 'elektrisch', 25, 50)`), {64 resource: {65 fuelType: "benzine",66 },67 })68 ).toEqual(50);69 expect(70 evaluate(Expr.tryParse(`if(resource.fuelType == 'elektrisch', 25, 50)`))71 ).toEqual(50);...
Using AI Code Generation
1var fs = require('fs'),2 imposter = JSON.parse(fs.readFileSync('imposter.json', 'utf8'));3imposter.port = 4545;4imposter.protocol = 'http';5imposter.stub = [{6 responses: [{7 is: {8 }9 }]10}];11require('mb').create(imposter, function (error, imposter) {12 console.log('imposter running on port ' + imposter.port);13});14{15 "stub": [{16 "responses": [{17 "is": {18 }19 }]20 }]21}
Using AI Code Generation
1const mountebank = require('mountebank');2const { createLogger, transports, format } = require('winston');3const logger = createLogger({4 new transports.Console({ format: format.simple() })5});6const port = 2525;7const mb = mountebank.create({ port, allowInjection: true, logger });8mb.start()9 .then(() => mb.post('/imposters', {10 {11 {12 is: {13 headers: {14 },15 }16 }17 }18 }))19 .then(() => mb.get('/imposters'))20 .then(response => {21 const imposters = response.body;22 logger.info(`Created ${imposters.length} imposters`);23 return mb.del(`/imposters/${imposters[0].port}`);24 })25 .then(() => mb.stop())26 .catch(error => {27 logger.error(error);28 return mb.stop();29 });30{31 "scripts": {32 },33 "dependencies": {34 }35}
Using AI Code Generation
1const mb = require('mountebank');2const fs = require('fs');3const path = require('path');4const data = fs.readFileSync(path.join(__dirname, 'test.json'), 'utf8');5const obj = mb.helpers.tryParse(data);6console.log(obj);7{8}9const fs = require('fs');10const data = fs.readFileSync('/path/to/file.json', 'utf8');11JSON.parse(data);12const fs = require('fs');13const data = fs.readFileSync('test.json', 'utf8');14JSON.parse(data);15const fs = require('fs');16const data = fs.readFileSync('/path/to/file.json', 'utf8');17JSON.parse(data);18const fs = require('fs');19const data = fs.readFileSync('/path/to/file.json', 'utf8');20JSON.parse(data);21const fs = require('fs');22const data = fs.readFileSync('/path/to/file.json', 'utf8');23JSON.parse(data);24You can use the following code to parse the JSON file. const fs = require('fs'); const data = fs.readFileSync
Using AI Code Generation
1const mb = require('mountebank');2mb.start({ port: 2525, pidfile: 'mb.pid', logfile: 'mb.log' });3var imposterJson = {4 {5 {6 "is": {7 "headers": {8 },9 "body": JSON.stringify({ "name": "John", "age": 30, "city": "New York" })10 }11 }12 }13};14mb.createImposter(2525, imposterJson, function (error, imposter) {15 console.log(imposter);16});17const mb = require('mountebank');18mb.start({ port: 2525, pidfile: 'mb.pid', logfile: 'mb.log' });19var imposterJson = {20 {21 {22 "is": {23 "headers": {24 },25 "body": JSON.stringify({ "name": "John", "age": 30, "city": "New York" })26 }27 }28 }29};30mb.createImposter(2525, imposterJson, function (error, imposter) {31 console.log(imposter);32});33const mb = require('mountebank');34mb.start({ port: 2525, pidfile: 'mb.pid', logfile: 'mb.log' });35var imposterJson = {36 {37 {38 "is": {39 "headers": {40 },41 "body": JSON.stringify({ "name": "John", "age": 30, "city": "New York" })42 }43 }44 }45};46mb.createImposter(2525, imposterJson, function (error, imposter
Using AI Code Generation
1var mb = require('mountebank');2var json = mb.helpers.tryParse('{"a":1}');3console.log(json);4var mb = require('mountebank');5var json = mb.helpers.tryParse('{"a":1}');6console.log(json);7var mb = require('mountebank');8var json = mb.helpers.tryParse('{"a":1}');9console.log(json);10var mb = require('mountebank');11var json = mb.helpers.tryParse('{"a":1}');12console.log(json);13var mb = require('mountebank');14var json = mb.helpers.tryParse('{"a":1}');15console.log(json);16var mb = require('mountebank');17var json = mb.helpers.tryParse('{"a":1}');18console.log(json);19var mb = require('mountebank');20var json = mb.helpers.tryParse('{"a":1}');21console.log(json);22var mb = require('mountebank');23var json = mb.helpers.tryParse('{"a":1}');24console.log(json);25var mb = require('mountebank');26var json = mb.helpers.tryParse('{"a":1}');27console.log(json);28var mb = require('mountebank');29var json = mb.helpers.tryParse('{"a":1}');30console.log(json);31var mb = require('mountebank');32var json = mb.helpers.tryParse('{"a":1}');33console.log(json);34var mb = require('mountebank');
Using AI Code Generation
1var imposter = require('mountebank').create();2imposter.post('/test', function (request, response) {3 var data = JSON.parse(request.body);4 var name = data.name;5 response.statusCode = 200;6 response.body = "Hello " + name;7});8imposter.get('/test', function (request, response) {9 response.statusCode = 200;10 response.body = "Hello ";11});12imposter.put('/test', function (request, response) {13 var data = JSON.parse(request.body);14 var name = data.name;15 response.statusCode = 200;16 response.body = "Hello " + name;17});18imposter.delete('/test', function (request, response) {19 var data = JSON.parse(request.body);20 var name = data.name;21 response.statusCode = 200;22 response.body = "Hello " + name;23});24imposter.start(4545);25var imposter = require('mountebank').create();26imposter.post('/test', function (request, response) {27 var data = request.tryParse(request.body);28 var name = data.name;29 response.statusCode = 200;30 response.body = "Hello " + name;31});32imposter.get('/test', function (request, response) {33 response.statusCode = 200;34 response.body = "Hello ";35});36imposter.put('/test', function (request, response) {37 var data = request.tryParse(request.body);38 var name = data.name;39 response.statusCode = 200;40 response.body = "Hello " + name;41});42imposter.delete('/test', function (request, response) {43 var data = request.tryParse(request.body);44 var name = data.name;45 response.statusCode = 200;46 response.body = "Hello " + name;47});48imposter.start(4545);
Using AI Code Generation
1var mb = require('mountebank');2var assert = require('assert');3var Q = require('q');4var mbHelper = require('mb-helper');5var mbHelperOptions = {6};7var mbHelper = new mbHelper(mbHelperOptions);8mbHelper.mb.start()9 .then(function () {10 return mbHelper.mb.createImposter({protocol: 'http', port: 2525});11 })12 .then(function (imposter) {13 return mbHelper.mb.getImposter(imposter.port);14 })15 .then(function (imposter) {16 assert.equal(imposter.protocol, 'http');17 return mbHelper.mb.deleteImposter(imposter.port);18 })19 .then(function () {20 return mbHelper.mb.stop();21 })22 .then(function () {23 console.log('All tests passed!');24 })25 .catch(function (error) {26 console.error('Test failed with error: ' + error.message);27 process.exit(1);28 });
Using AI Code Generation
1var imposter = require('mountebank').imposter;2var fs = require('fs');3var data = fs.readFileSync("imposters.json");4var imposters = imposter.tryParse(data);5imposters.forEach(function (imposter) {6 imposter.create();7});8imposters.forEach(function (imposter) {9 imposter.remove();10});
Using AI Code Generation
1var mb = require('mountebank');2mb.start({port:2525, pidfile: "pidfile", logfile: "logfile", ipWhitelist:['*']})3.then(function(){4 console.log("Mountebank server started");5 return mb.post('/imposters', {6 {7 {8 is: {9 }10 }11 }12 });13})14.then(function (response) {15 console.log(response.body);16})17.catch(function (error) {18 console.error(error);19});20mb.post('/imposters', {21 {22 {23 is: {24 }25 }26 }27});
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!!