Best JavaScript code snippet using mountebank
RateLimiterStoreAbstract.js
Source:RateLimiterStoreAbstract.js
1const RateLimiterAbstract = require('./RateLimiterAbstract');2const BlockedKeys = require('./BlockedKeys');3const RateLimiterRes = require('./RateLimiterRes');4module.exports = class RateLimiterStoreAbstract extends RateLimiterAbstract {5 /**6 *7 * @param opts Object Defaults {8 * ... see other in RateLimiterAbstract9 *10 * inmemoryBlockOnConsumed: 40, // Number of points when key is blocked11 * inmemoryBlockDuration: 10, // Block duration in seconds12 * insuranceLimiter: RateLimiterAbstract13 * }14 */15 constructor(opts = {}) {16 super(opts);17 this.inmemoryBlockOnConsumed = opts.inmemoryBlockOnConsumed;18 this.inmemoryBlockDuration = opts.inmemoryBlockDuration;19 this.insuranceLimiter = opts.insuranceLimiter;20 this._inmemoryBlockedKeys = new BlockedKeys();21 }22 get client() {23 return this._client;24 }25 set client(value) {26 if (typeof value === 'undefined') {27 throw new Error('storeClient is not set');28 }29 this._client = value;30 }31 /**32 * Have to be launched after consume33 * It blocks key and execute evenly depending on result from store34 *35 * It uses _getRateLimiterRes function to prepare RateLimiterRes from store result36 *37 * @param resolve38 * @param reject39 * @param rlKey40 * @param changedPoints41 * @param storeResult42 * @param {Object} options43 * @private44 */45 _afterConsume(resolve, reject, rlKey, changedPoints, storeResult, options = {}) {46 const res = this._getRateLimiterRes(rlKey, changedPoints, storeResult);47 if (this.inmemoryBlockOnConsumed > 0 && !(this.inmemoryBlockDuration > 0)48 && res.consumedPoints >= this.inmemoryBlockOnConsumed49 ) {50 this._inmemoryBlockedKeys.addMs(rlKey, res.msBeforeNext);51 if (res.consumedPoints > this.points) {52 return reject(res);53 } else {54 return resolve(res)55 }56 } else if (res.consumedPoints > this.points) {57 let blockPromise = Promise.resolve();58 // Block only first time when consumed more than points59 if (this.blockDuration > 0 && res.consumedPoints <= (this.points + changedPoints)) {60 res.msBeforeNext = this.msBlockDuration;61 blockPromise = this._block(rlKey, res.consumedPoints, this.msBlockDuration, options);62 }63 if (this.inmemoryBlockOnConsumed > 0 && res.consumedPoints >= this.inmemoryBlockOnConsumed) {64 // Block key for this.inmemoryBlockDuration seconds65 this._inmemoryBlockedKeys.add(rlKey, this.inmemoryBlockDuration);66 res.msBeforeNext = this.msInmemoryBlockDuration;67 }68 blockPromise69 .then(() => {70 reject(res);71 })72 .catch((err) => {73 reject(err);74 });75 } else if (this.execEvenly && res.msBeforeNext > 0 && !res.isFirstInDuration) {76 let delay = Math.ceil(res.msBeforeNext / (res.remainingPoints + 2));77 if (delay < this.execEvenlyMinDelayMs) {78 delay = res.consumedPoints * this.execEvenlyMinDelayMs;79 }80 setTimeout(resolve, delay, res);81 } else {82 resolve(res);83 }84 }85 _handleError(err, funcName, resolve, reject, key, data = false, options = {}) {86 if (!(this.insuranceLimiter instanceof RateLimiterAbstract)) {87 reject(err);88 } else {89 this.insuranceLimiter[funcName](key, data, options)90 .then((res) => {91 resolve(res);92 })93 .catch((res) => {94 reject(res);95 });96 }97 }98 getInmemoryBlockMsBeforeExpire(rlKey) {99 if (this.inmemoryBlockOnConsumed > 0) {100 return this._inmemoryBlockedKeys.msBeforeExpire(rlKey);101 }102 return 0;103 }104 get inmemoryBlockOnConsumed() {105 return this._inmemoryBlockOnConsumed;106 }107 set inmemoryBlockOnConsumed(value) {108 this._inmemoryBlockOnConsumed = value ? parseInt(value) : 0;109 if (this.inmemoryBlockOnConsumed > 0 && this.points > this.inmemoryBlockOnConsumed) {110 throw new Error('inmemoryBlockOnConsumed option must be greater or equal "points" option');111 }112 }113 get inmemoryBlockDuration() {114 return this._inmemoryBlockDuration;115 }116 set inmemoryBlockDuration(value) {117 this._inmemoryBlockDuration = value ? parseInt(value) : 0;118 if (this.inmemoryBlockDuration > 0 && this.inmemoryBlockOnConsumed === 0) {119 throw new Error('inmemoryBlockOnConsumed option must be set up');120 }121 }122 get msInmemoryBlockDuration() {123 return this._inmemoryBlockDuration * 1000;124 }125 get insuranceLimiter() {126 return this._insuranceLimiter;127 }128 set insuranceLimiter(value) {129 if (typeof value !== 'undefined' && !(value instanceof RateLimiterAbstract)) {130 throw new Error('insuranceLimiter must be instance of RateLimiterAbstract');131 }132 this._insuranceLimiter = value;133 if (this._insuranceLimiter) {134 this._insuranceLimiter.blockDuration = this.blockDuration;135 this._insuranceLimiter.execEvenly = this.execEvenly;136 }137 }138 /**139 * Block any key for secDuration seconds140 *141 * @param key142 * @param secDuration143 * @param {Object} options144 *145 * @return Promise<RateLimiterRes>146 */147 block(key, secDuration, options = {}) {148 const msDuration = secDuration * 1000;149 return this._block(this.getKey(key), this.points + 1, msDuration, options);150 }151 /**152 * Set points by key for any duration153 *154 * @param key155 * @param points156 * @param secDuration157 * @param {Object} options158 *159 * @return Promise<RateLimiterRes>160 */161 set(key, points, secDuration, options = {}) {162 const msDuration = (secDuration >= 0 ? secDuration : this.duration) * 1000;163 return this._block(this.getKey(key), points, msDuration, options);164 }165 /**166 *167 * @param key168 * @param pointsToConsume169 * @param {Object} options170 * @returns Promise<RateLimiterRes>171 */172 consume(key, pointsToConsume = 1, options = {}) {173 return new Promise((resolve, reject) => {174 const rlKey = this.getKey(key);175 const inmemoryBlockMsBeforeExpire = this.getInmemoryBlockMsBeforeExpire(rlKey);176 if (inmemoryBlockMsBeforeExpire > 0) {177 return reject(new RateLimiterRes(0, inmemoryBlockMsBeforeExpire));178 }179 this._upsert(rlKey, pointsToConsume, this._getKeySecDuration(options) * 1000, false, options)180 .then((res) => {181 this._afterConsume(resolve, reject, rlKey, pointsToConsume, res);182 })183 .catch((err) => {184 this._handleError(err, 'consume', resolve, reject, key, pointsToConsume, options);185 });186 });187 }188 /**189 *190 * @param key191 * @param points192 * @param {Object} options193 * @returns Promise<RateLimiterRes>194 */195 penalty(key, points = 1, options = {}) {196 const rlKey = this.getKey(key);197 return new Promise((resolve, reject) => {198 this._upsert(rlKey, points, this._getKeySecDuration(options) * 1000, false, options)199 .then((res) => {200 resolve(this._getRateLimiterRes(rlKey, points, res));201 })202 .catch((err) => {203 this._handleError(err, 'penalty', resolve, reject, key, points, options);204 });205 });206 }207 /**208 *209 * @param key210 * @param points211 * @param {Object} options212 * @returns Promise<RateLimiterRes>213 */214 reward(key, points = 1, options = {}) {215 const rlKey = this.getKey(key);216 return new Promise((resolve, reject) => {217 this._upsert(rlKey, -points, this._getKeySecDuration(options) * 1000, false, options)218 .then((res) => {219 resolve(this._getRateLimiterRes(rlKey, -points, res));220 })221 .catch((err) => {222 this._handleError(err, 'reward', resolve, reject, key, points, options);223 });224 });225 }226 /**227 *228 * @param key229 * @param {Object} options230 * @returns Promise<RateLimiterRes>|null231 */232 get(key, options = {}) {233 const rlKey = this.getKey(key);234 return new Promise((resolve, reject) => {235 this._get(rlKey, options)236 .then((res) => {237 if (res === null) {238 resolve(res);239 } else {240 resolve(this._getRateLimiterRes(rlKey, 0, res));241 }242 })243 .catch((err) => {244 this._handleError(err, 'get', resolve, reject, key, options);245 });246 });247 }248 /**249 *250 * @param key251 * @param {Object} options252 * @returns Promise<boolean>253 */254 delete(key, options = {}) {255 const rlKey = this.getKey(key);256 return new Promise((resolve, reject) => {257 this._delete(rlKey, options)258 .then((res) => {259 resolve(res);260 })261 .catch((err) => {262 this._handleError(err, 'delete', resolve, reject, key, options);263 });264 });265 }266 /**267 * Get RateLimiterRes object filled depending on storeResult, which specific for exact store268 *269 * @param rlKey270 * @param changedPoints271 * @param storeResult272 * @private273 */274 _getRateLimiterRes(rlKey, changedPoints, storeResult) { // eslint-disable-line no-unused-vars275 throw new Error("You have to implement the method '_getRateLimiterRes'!");276 }277 /**278 * Block key for this.msBlockDuration milliseconds279 * Usually, it just prolongs lifetime of key280 *281 * @param rlKey282 * @param initPoints283 * @param msDuration284 * @param {Object} options285 *286 * @return Promise<any>287 */288 _block(rlKey, initPoints, msDuration, options = {}) {289 return new Promise((resolve, reject) => {290 this._upsert(rlKey, initPoints, msDuration, true, options)291 .then(() => {292 resolve(new RateLimiterRes(0, msDuration > 0 ? msDuration : -1, initPoints));293 })294 .catch((err) => {295 this._handleError(err, 'block', resolve, reject, this.parseKey(rlKey), msDuration / 1000, options);296 });297 });298 }299 /**300 * Have to be implemented in every limiter301 * Resolve with raw result from Store OR null if rlKey is not set302 * or Reject with error303 *304 * @param rlKey305 * @param {Object} options306 * @private307 *308 * @return Promise<any>309 */310 _get(rlKey, options = {}) { // eslint-disable-line no-unused-vars311 throw new Error("You have to implement the method '_get'!");312 }313 /**314 * Have to be implemented315 * Resolve with true OR false if rlKey doesn't exist316 * or Reject with error317 *318 * @param rlKey319 * @param {Object} options320 * @private321 *322 * @return Promise<any>323 */324 _delete(rlKey, options = {}) { // eslint-disable-line no-unused-vars325 throw new Error("You have to implement the method '_delete'!");326 }...
apollo-cache-inmemory_vx.x.x.js
Source:apollo-cache-inmemory_vx.x.x.js
1// flow-typed signature: ec5ac7299c73aff7f057dcb1266dde0b2// flow-typed version: <<STUB>>/apollo-cache-inmemory_v^1.6.2/flow_v0.104.03/**4 * This is an autogenerated libdef stub for:5 *6 * 'apollo-cache-inmemory'7 *8 * Fill this stub out by replacing all the `any` types.9 *10 * Once filled out, we encourage you to share your work with the11 * community by sending a pull request to:12 * https://github.com/flowtype/flow-typed13 */14declare module 'apollo-cache-inmemory' {15 declare module.exports: any;16}17/**18 * We include stubs for each file inside this npm package in case you need to19 * require those files directly. Feel free to delete any files that aren't20 * needed.21 */22declare module 'apollo-cache-inmemory/jest.config' {23 declare module.exports: any;24}25declare module 'apollo-cache-inmemory/lib/__tests__/cache' {26 declare module.exports: any;27}28declare module 'apollo-cache-inmemory/lib/__tests__/diffAgainstStore' {29 declare module.exports: any;30}31declare module 'apollo-cache-inmemory/lib/__tests__/fragmentMatcher' {32 declare module.exports: any;33}34declare module 'apollo-cache-inmemory/lib/__tests__/mapCache' {35 declare module.exports: any;36}37declare module 'apollo-cache-inmemory/lib/__tests__/objectCache' {38 declare module.exports: any;39}40declare module 'apollo-cache-inmemory/lib/__tests__/readFromStore' {41 declare module.exports: any;42}43declare module 'apollo-cache-inmemory/lib/__tests__/recordingCache' {44 declare module.exports: any;45}46declare module 'apollo-cache-inmemory/lib/__tests__/roundtrip' {47 declare module.exports: any;48}49declare module 'apollo-cache-inmemory/lib/__tests__/writeToStore' {50 declare module.exports: any;51}52declare module 'apollo-cache-inmemory/lib/bundle.cjs' {53 declare module.exports: any;54}55declare module 'apollo-cache-inmemory/lib/bundle.cjs.min' {56 declare module.exports: any;57}58declare module 'apollo-cache-inmemory/lib/bundle.esm' {59 declare module.exports: any;60}61declare module 'apollo-cache-inmemory/lib/bundle.umd' {62 declare module.exports: any;63}64declare module 'apollo-cache-inmemory/lib/depTrackingCache' {65 declare module.exports: any;66}67declare module 'apollo-cache-inmemory/lib/fixPolyfills' {68 declare module.exports: any;69}70declare module 'apollo-cache-inmemory/lib/fragmentMatcher' {71 declare module.exports: any;72}73declare module 'apollo-cache-inmemory/lib/fragmentMatcherIntrospectionQuery' {74 declare module.exports: any;75}76declare module 'apollo-cache-inmemory/lib' {77 declare module.exports: any;78}79declare module 'apollo-cache-inmemory/lib/inMemoryCache' {80 declare module.exports: any;81}82declare module 'apollo-cache-inmemory/lib/mapCache' {83 declare module.exports: any;84}85declare module 'apollo-cache-inmemory/lib/objectCache' {86 declare module.exports: any;87}88declare module 'apollo-cache-inmemory/lib/readFromStore' {89 declare module.exports: any;90}91declare module 'apollo-cache-inmemory/lib/types' {92 declare module.exports: any;93}94declare module 'apollo-cache-inmemory/lib/writeToStore' {95 declare module.exports: any;96}97// Filename aliases98declare module 'apollo-cache-inmemory/jest.config.js' {99 declare module.exports: $Exports<'apollo-cache-inmemory/jest.config'>;100}101declare module 'apollo-cache-inmemory/lib/__tests__/cache.js' {102 declare module.exports: $Exports<'apollo-cache-inmemory/lib/__tests__/cache'>;103}104declare module 'apollo-cache-inmemory/lib/__tests__/diffAgainstStore.js' {105 declare module.exports: $Exports<106 'apollo-cache-inmemory/lib/__tests__/diffAgainstStore'107 >;108}109declare module 'apollo-cache-inmemory/lib/__tests__/fragmentMatcher.js' {110 declare module.exports: $Exports<111 'apollo-cache-inmemory/lib/__tests__/fragmentMatcher'112 >;113}114declare module 'apollo-cache-inmemory/lib/__tests__/mapCache.js' {115 declare module.exports: $Exports<116 'apollo-cache-inmemory/lib/__tests__/mapCache'117 >;118}119declare module 'apollo-cache-inmemory/lib/__tests__/objectCache.js' {120 declare module.exports: $Exports<121 'apollo-cache-inmemory/lib/__tests__/objectCache'122 >;123}124declare module 'apollo-cache-inmemory/lib/__tests__/readFromStore.js' {125 declare module.exports: $Exports<126 'apollo-cache-inmemory/lib/__tests__/readFromStore'127 >;128}129declare module 'apollo-cache-inmemory/lib/__tests__/recordingCache.js' {130 declare module.exports: $Exports<131 'apollo-cache-inmemory/lib/__tests__/recordingCache'132 >;133}134declare module 'apollo-cache-inmemory/lib/__tests__/roundtrip.js' {135 declare module.exports: $Exports<136 'apollo-cache-inmemory/lib/__tests__/roundtrip'137 >;138}139declare module 'apollo-cache-inmemory/lib/__tests__/writeToStore.js' {140 declare module.exports: $Exports<141 'apollo-cache-inmemory/lib/__tests__/writeToStore'142 >;143}144declare module 'apollo-cache-inmemory/lib/bundle.cjs.js' {145 declare module.exports: $Exports<'apollo-cache-inmemory/lib/bundle.cjs'>;146}147declare module 'apollo-cache-inmemory/lib/bundle.cjs.min.js' {148 declare module.exports: $Exports<'apollo-cache-inmemory/lib/bundle.cjs.min'>;149}150declare module 'apollo-cache-inmemory/lib/bundle.esm.js' {151 declare module.exports: $Exports<'apollo-cache-inmemory/lib/bundle.esm'>;152}153declare module 'apollo-cache-inmemory/lib/bundle.umd.js' {154 declare module.exports: $Exports<'apollo-cache-inmemory/lib/bundle.umd'>;155}156declare module 'apollo-cache-inmemory/lib/depTrackingCache.js' {157 declare module.exports: $Exports<158 'apollo-cache-inmemory/lib/depTrackingCache'159 >;160}161declare module 'apollo-cache-inmemory/lib/fixPolyfills.js' {162 declare module.exports: $Exports<'apollo-cache-inmemory/lib/fixPolyfills'>;163}164declare module 'apollo-cache-inmemory/lib/fragmentMatcher.js' {165 declare module.exports: $Exports<'apollo-cache-inmemory/lib/fragmentMatcher'>;166}167declare module 'apollo-cache-inmemory/lib/fragmentMatcherIntrospectionQuery.js' {168 declare module.exports: $Exports<169 'apollo-cache-inmemory/lib/fragmentMatcherIntrospectionQuery'170 >;171}172declare module 'apollo-cache-inmemory/lib/index' {173 declare module.exports: $Exports<'apollo-cache-inmemory/lib'>;174}175declare module 'apollo-cache-inmemory/lib/index.js' {176 declare module.exports: $Exports<'apollo-cache-inmemory/lib'>;177}178declare module 'apollo-cache-inmemory/lib/inMemoryCache.js' {179 declare module.exports: $Exports<'apollo-cache-inmemory/lib/inMemoryCache'>;180}181declare module 'apollo-cache-inmemory/lib/mapCache.js' {182 declare module.exports: $Exports<'apollo-cache-inmemory/lib/mapCache'>;183}184declare module 'apollo-cache-inmemory/lib/objectCache.js' {185 declare module.exports: $Exports<'apollo-cache-inmemory/lib/objectCache'>;186}187declare module 'apollo-cache-inmemory/lib/readFromStore.js' {188 declare module.exports: $Exports<'apollo-cache-inmemory/lib/readFromStore'>;189}190declare module 'apollo-cache-inmemory/lib/types.js' {191 declare module.exports: $Exports<'apollo-cache-inmemory/lib/types'>;192}193declare module 'apollo-cache-inmemory/lib/writeToStore.js' {194 declare module.exports: $Exports<'apollo-cache-inmemory/lib/writeToStore'>;...
Using AI Code Generation
1const mb = require('mountebank');2mb.create({3 {4 {5 {6 equals: {7 }8 }9 {10 is: {11 headers: { 'Content-Type': 'application/json' },12 body: { 'key': 'value' }13 }14 }15 }16 }17}, function (error, server) {18});
Using AI Code Generation
1var imposter = {2 {3 {4 equals: {5 }6 }7 {8 is: {9 headers: {10 },11 body: {12 }13 }14 }15 }16};17var request = require('request');18var mb = require('mountebank');19mb.create(imposter)20 .then(function (server) {21 console.log(body);22 server.close();23 });24 });
Using AI Code Generation
1var mb = require('mountebank');2var imposter = mb.create({3 stubs: [{4 predicates: [{5 equals: {6 }7 }],8 responses: [{9 is: {10 }11 }]12 }]13});14imposter.then(function (imposter) {15 console.log('Imposter running at ' + imposter.url);16});17var mb = require('mountebank');18var imposter = mb.create({19});20imposter.then(function (imposter) {21 console.log('Imposter running at ' + imposter.url);22});23{24 "stubs": [{25 "predicates": [{26 "equals": {27 }28 }],29 "responses": [{30 "is": {31 }32 }]33 }]34}35var mb = require('mountebank');36var imposter = mb.create({37});38imposter.then(function (imposter) {39 console.log('Imposter running at ' + imposter.url);40});41{42 "stubs": [{43 "predicates": [{44 "equals": {45 }46 }],47 "responses": [{48 "is": {49 }50 }]51 }]52}53var mb = require('mountebank');54var imposter = mb.create({
Using AI Code Generation
1var mb = require('mountebank'),2 assert = require('assert'),3 Q = require('q'),4 stub = {5 {6 is: {7 headers: { 'Content-Type': 'application/json' },8 body: JSON.stringify({ status: 'OK' })9 }10 }11 };12Q.all([mb.create(port), mb.post('/imposters', { protocol: protocol, stubs: [stub] })])13 .then(function (results) {14 var imposters = results[1].body;15 assert.equal(imposters.length, 1);16 assert.equal(imposters[0].port, 80);17 assert.equal(imposters[0].protocol, protocol);18 assert.deepEqual(imposters[0].stubs, [stub]);19 console.log('OK');20 })21 .done(mb.stop);22var mb = require('mountebank'),23 assert = require('assert'),24 Q = require('q'),25 stub = {26 {27 is: {28 headers: { 'Content-Type': 'application/json' },29 body: JSON.stringify({ status: 'OK' })30 }31 }32 };33Q.all([mb.create(port), mb.post('/imposters', { protocol: protocol, stubs: [stub] })])34 .then(function (results) {35 var imposters = results[1].body;36 assert.equal(imposters.length, 1);37 assert.equal(imposters[0].port, 80);38 assert.equal(imposters[0].protocol, protocol);39 assert.deepEqual(imposters[0].stubs, [stub]);40 console.log('OK');41 })42 .done(mb.stop);43var mb = require('mountebank'),44 assert = require('assert'),45 Q = require('q
Using AI Code Generation
1var mb = require('mountebank');2mb.start({3}, function (error) {4 if (error) {5 console.error('Failed to start server', error);6 }7 else {8 console.log('Server started');9 }10});
Using AI Code Generation
1var imposterPort = 2525;2var imposterProtocol = 'http';3var imposterName = 'testImposter';4var imposterStub = {5 {6 is: {7 }8 }9};10var imposter = {11};12var mb = require('mountebank');13mb.create(imposter).then(function (result) {14}).catch(function (error) {15});16### create(imposter)17### get(port)18### getAll()19### delete(port)20### deleteAll()21### reset()22### resetScenarios()23### resetProxies()24### addStub(port, stub)25### addStubs(port, stubs)26### addProxy(port, proxy)
Using AI Code Generation
1var mb = require('mountebank');2var imposters = require('./imposters.json');3mb.create({port: 2525, pidfile: 'mb.pid', logfile: 'mb.log', imposters: imposters}, function (error, mbServer) {4 if (error) {5 console.error(error);6 } else {7 console.log('mbServer started');8 mbServer.on('close', function () {9 console.log('mbServer closed');10 });11 }12});13{14 {15 {16 "is": {17 "headers": {18 },19 "body": "{\"message\":\"Hello World\"}"20 }21 }22 }23}24var mb = require('mountebank');25var imposters = require('./imposters.json');26mb.create({port: 2525, pidfile: 'mb.pid', logfile: 'mb.log', imposters: imposters}, function (error, mbServer) {27 if (error) {28 console.error(error);29 } else {30 console.log('mbServer started');31 mbServer.on('close', function () {32 console.log('mbServer closed');33 });34 var request = require('request');35 if (error) {36 console.error(error);37 } else {38 console.log(body);39 }40 });41 }42});
Using AI Code Generation
1var mb = require('mountebank');2var port = 2525;3var inMemory = mb.create({ port: port, allowInjection: true });4inMemory.start().then(function () {5 return inMemory.post('/imposters', {6 {7 {8 is: {9 headers: { 'Content-Type': 'text/html' },10 }11 }12 }13 });14}).then(function () {15 return inMemory.get('/imposters');16}).then(function (response) {17 console.log(JSON.stringify(response.body, null, 2));18 return inMemory.del('/imposters');19}).then(function () {20 return inMemory.stop();21}).then(function () {22 console.log('done');23}).catch(function (error) {24 console.error(JSON.stringify(error, null, 2));25 console.error(error.stack);26});27var mb = require('mountebank');28var port = 2525;29var remote = mb.create({ port: port, allowInjection: true });30remote.start().then(function () {31 return remote.post('/imposters', {32 {33 {34 is: {35 headers: { 'Content-Type': 'text/html' },36 }37 }38 }39 });40}).then(function () {41 return remote.get('/imposters');42}).then(function (response) {43 console.log(JSON.stringify(response.body, null, 2));44 return remote.del('/imposters');45}).then(function () {46 return remote.stop();47}).then(function () {48 console.log('done');49}).catch(function (error) {50 console.error(JSON.stringify(error, null, 2));51 console.error(error.stack);52});53var mb = require('mountebank');54var port = 2525;55var cmd = mb.create({ port: port, allowInjection: true });56cmd.start().then
Using AI Code Generation
1const { mbtest } = require('mbtest');2const mb = new mbtest.Imposter({ port: 4545 });3const test = async () => {4 await mb.start();5 await mb.post('/test', { body: { name: 'test' } });6 await mb.get('/test', { body: { name: 'test' } });7 await mb.stop();8};9test();10const { mbtest } = require('mbtest');11const mb = new mbtest.Imposter({ port: 4545, protocol: 'http', stubs: 'test.json' });12const test = async () => {13 await mb.start();14 await mb.post('/test', { body: { name: 'test' } });15 await mb.get('/test', { body: { name: 'test' } });16 await mb.stop();17};18test();19const { mbtest } = require('mbtest');20const mb = new mbtest.Imposter({ port: 4545, protocol: 'http', stubs: 'test.js' });21const test = async () => {22 await mb.start();23 await mb.post('/test', { body: { name: 'test' } });24 await mb.get('/test', { body: { name: 'test' } });25 await mb.stop();26};27test();28const { mbtest } = require('mbtest');29const mb = new mbtest.Imposter({ port: 4545, protocol: 'http', stubs: 'test.js' });30const test = async () => {31 await mb.start();32 await mb.post('/test', { body: { name: 'test' } });33 await mb.get('/test', { body: { name: 'test' } });34 await mb.stop();35};36test();37const { mbtest } = require('mbtest');38const mb = new mbtest.Imposter({
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!!