Best JavaScript code snippet using sinon
muya_implementations.js
Source:muya_implementations.js
1/*jshint esversion: 6 */2var LOCAL = (function () {3 "use strict";4 return {5 RDVisible: false,6 RDTVisible: false,7 prepareDisplayString: function (string) {8 return string;9 },10 prepareNormalisedString: function (string) {11 return string;12 },13 project_witness_sort: function(witnesses) {14 return witnesses.sort(LOCAL.sort_witnesses);15 },16 //used before moving to order readings to make sure that a decision has been made on all top line overlapped readings17 are_no_duplicate_statuses: function() {18 var i, j;19 for (i = 0; i < CL.data.apparatus.length; i += 1) {20 for (j = 0; j < CL.data.apparatus[i].readings.length; j += 1) {21 if (CL.data.apparatus[i].readings[j].hasOwnProperty('overlap_status') &&22 CL.data.apparatus[i].readings[j].overlap_status === 'duplicate') {23 return false;24 }25 }26 }27 return true;28 },29 check_om_overlap_problems: function() {30 var i, unit, j, witnesses, key, ol_unit;31 //check to see if any readings labelled 'overlapped' don't have any text in the overlapped reading32 //if they do then that needs fixing.33 for (i = 0; i < CL.data.apparatus.length; i += 1) {34 unit = CL.data.apparatus[i];35 if ('overlap_units' in unit) {36 witnesses = [];37 for (j = 0; j < unit.readings.length; j += 1) {38 if ('overlap_status' in unit.readings[j] &&39 unit.readings[j].overlap_status === 'overlapped') {40 witnesses.push.apply(witnesses, unit.readings[j].witnesses);41 }42 }43 //for each witness we've collected44 for (j = 0; j < witnesses.length; j += 1) {45 for (key in unit.overlap_units) {46 if (unit.overlap_units[key].indexOf(witnesses[j]) != -1) {47 ol_unit = CL.findOverlapUnitById(key);48 if (ol_unit.readings[1].text.length > 0) { //hard coded 1 is fine as at this stage there is only one reading and its always here49 return true;50 }51 }52 }53 }54 }55 }56 return false;57 },58 are_no_disallowed_overlaps: function() {59 var key, main_apparatus_data, unit, i;60 main_apparatus_data = [];61 for (i = 0; i < CL.data.apparatus.length; i += 1) {62 unit = CL.data.apparatus[i];63 main_apparatus_data.push(unit.start + '-' + unit.end);64 }65 for (key in CL.data) {66 if (key.indexOf('apparatus') !== -1 && key !== 'apparatus') {67 for (i = 0; i < CL.data[key].length; i += 1) {68 unit = CL.data[key][i];69 if (main_apparatus_data.indexOf(unit.start + '-' + unit.end) !== -1) {70 return false;71 }72 }73 }74 }75 return true;76 },77 compare_witness_suffixes: function(a, b) {78 if (a[0] === '-' && b[0] === '-') {79 return a.replace('-', '') - b.replace('-', '');80 }81 if (a[0] === '*') {82 return -1;83 }84 if (b[0] === '*') {85 return 1;86 }87 return 0;88 //could do more tests here for other suffixes but this is probably enough for now89 },90 sort_witnesses: function (a, b) {91 var dig_regex, suf_regex, numberA, numberB, suffixA, suffixB;92 if ($.isPlainObject(a)) {93 a = a.hand;94 }95 if ($.isPlainObject(b)) {96 b = b.hand;97 }98 dig_regex = /\d+/;99 suf_regex = /\D+\d*/;100 //extract just the number101 if (!a.match(dig_regex)) {102 return 1;103 } if (!b.match(dig_regex)) {104 return -1;105 }106 numberA = parseInt(a.match(dig_regex)[0], 10);107 numberB = parseInt(b.match(dig_regex)[0], 10);108 //if the numbers are the same deal with the suffixes109 if (numberA === numberB) {110 if (a.match(suf_regex)) {111 suffixA = a.match(suf_regex)[0];112 } else {113 suffixA = [''];114 }115 if (b.match(suf_regex)) {116 suffixB = b.match(suf_regex)[0];117 } else {118 suffixB = [''];119 }120 return LOCAL.compare_witness_suffixes(suffixA, suffixB);121 }122 //if the numbers are not the same sort them123 return numberA - numberB;124 },125 showRitualDirections: function () {126 if (LOCAL.RDVisible === true) {127 LOCAL.RDVisible = false;128 LOCAL.RDTVisible = true;129 } else if (LOCAL.RDTVisible === true) {130 LOCAL.RDVisible = false;131 LOCAL.RDTVisible = false;132 } else {133 LOCAL.RDVisible = true;134 LOCAL.RDTVisible = false;135 }136 if (CL.stage === 'regularise') {137 RG.showVerseCollation(CL.data, CL.context, CL.container);138 } else if (CL.stage === 'set') {139 SV.showSetVariants({'container': CL.container});140 } else if (CL.stage === 'ordered') {141 OR.showOrderReadings({'container': CL.container});142 } else if (CL.stage === 'approved') {143 OR.showApprovedVersion({'container': CL.container});144 }145 },146 extractWordsForHeader: function(data) {147 var word, words = [];148 for (let i = 0; i < data.length; i += 1) {149 word = [];150 if (LOCAL.RDVisible && data[i].hasOwnProperty('rd_before')) {151 word.push(data[i].rd_before);152 word.push(' ');153 }154 if (LOCAL.RDTVisible && data[i].hasOwnProperty('rdt_before')) {155 word.push(data[i].rdt_before);156 word.push(' ');157 }158 if (data[i].hasOwnProperty('pc_before')) {159 word.push(data[i].pc_before);160 }161 if (data[i].hasOwnProperty('original')) {162 word.push(data[i].original);163 } else {164 word.push(data[i].t);165 }166 if (data[i].hasOwnProperty('pc_after')) {167 word.push(data[i].pc_after);168 }169 if (LOCAL.RDVisible && data[i].hasOwnProperty('rd_after')) {170 word.push(' ');171 word.push(data[i].rd_after);172 }173 if (LOCAL.RDTVisible && data[i].hasOwnProperty('rdt_after')) {174 word.push(' ');175 word.push(data[i].rdt_after);176 }177 if (data[i].hasOwnProperty('type')) {178 words.push([word.join(''), data[i].type]);179 } else {180 words.push([word.join(''), '']);181 }182 }183 return words;184 },185 };...
diff.analyzer.cron.server.controller.js
Source:diff.analyzer.cron.server.controller.js
1'use strict';2const fs = require('fs');3const path = require('path');4const util = require('util');5module.exports = {6 makeDiffAggregateDoc : makeDiffAggregateDoc7}8function makeDiffAggregateDoc(config, lang) {9 if(config == undefined) return Promise.reject('err_config_is_undefined');10 if(config.saveSuffix == undefined) return Promise.reject('err_saveSuffix_is_undefined');11 if(config.suffixA == undefined) return Promise.reject('err_suffixA_is_undefined');12 if(config.suffixB == undefined) return Promise.reject('err_suffixB_is_undefined');13 14 // no need to below15 // const statMap = loadStatMap();16 const statMap = require('../../const/stat-map.json');17 if(statMap == undefined) return Promise.resolve(`err_can_not_read__statmap.json`); //TODO: how to handle this, if this code is reject other on tick will not excutes18 const saveSuffix = config.saveSuffix;19 const suffixA = config.suffixA;20 const suffixB = config.suffixB;21 const aggregateDocs = [];22 aggregateDocs.push(appendLookupPipeLine(suffixA));23 aggregateDocs.push(appendLookupPipeLine(suffixB));24 aggregateDocs.push(appendReplaceRootPipeLine());25 aggregateDocs.push(appendUnwindPipeLine(suffixA));26 aggregateDocs.push(appendUnwindPipeLine(suffixB));27 aggregateDocs.push(appendSubtractProject(statMap, suffixA, suffixB, lang));28 aggregateDocs.push(appendOutPipeLine(saveSuffix));29 return aggregateDocs;30}31function loadStatMap() {32 let result = undefined;33 try {34 const obj = fs.readFileSync(path.join(__dirname, `./stat-map.json`));35 result = JSON.parse(obj);36 } catch (error) {37 console.log(error);38 }39 return result;40}41function appendLookupPipeLine(suffix) {42 return {43 $lookup : {44 from : `crawl-datas-${suffix}`,45 localField : "_id",46 foreignField : "_id",47 as : `temp.${suffix}`,48 }49 }50}51function appendReplaceRootPipeLine() {52 return {53 $replaceRoot : {54 newRoot : "$temp"55 }56 }57}58function appendUnwindPipeLine(suffix) {59 return {60 $unwind : `$${suffix}`61 }62}63function appendSubtractProject(statMap, suffixA, suffixB, lang) {64 const denominators = statMap.denominators;65 const commonStats = statMap.common;66 const heroes = statMap.heroes;67 const projectObj = {};68 projectObj._id = `$${suffixA}._id`;69 projectObj.cptpt = `$${suffixA}.cptpt`;70 projectObj.diffCptpt = getMetaProjectOberation(suffixA, suffixB, 'cptpt');71 for(let hero in heroes) {72 // subtract denominator area73 for(let obj of denominators) {74 const id = obj.id;75 const crawledField = obj[lang];76 77 // projectObj[`${hero}.${id}`] = getSubtractOperation(suffixA, suffixB, hero, crawledField);78 projectObj[`${hero}.${id}`] = getValueProjectOperation(suffixA, suffixB, hero, crawledField);79 }80 // subtract common area81 for(let obj of commonStats) {82 const id = obj.id;83 const crawledField = obj[lang];84 // projectObj[`${hero}.${id}`] = getSubtractOperation(suffixA, suffixB, hero, field);85 projectObj[`${hero}.${id}`] = getValueProjectOperation(suffixA, suffixB, hero, crawledField);86 }87 const heroStats = heroes[hero];88 for(let obj of heroStats) {89 const id = obj.id;90 const crawledField = obj[lang];91 // projectObj[`${hero}.${id}`] = getSubtractOperation(suffixA, suffixB, hero, field);92 projectObj[`${hero}.${id}`] = getValueProjectOperation(suffixA, suffixB, hero, crawledField);93 }94 }95 return { $project : projectObj}96}97function getMetaProjectOberation(suffixA, suffixB, metaField) {98 const fieldA = `$${suffixA}._meta.${metaField}`;99 const fieldB = `$${suffixB}._meta.${metaField}`;100 const subtractOperation = getSubtractOperation(fieldA, fieldB);101 return wrapConditionOperationForCptpt(fieldA, fieldB, subtractOperation);102}103function getValueProjectOperation(suffixA, suffixB, hero, crawledField) {104 const fieldA = `$${suffixA}._value.${hero}.${crawledField}`;105 const fieldB = `$${suffixB}._value.${hero}.${crawledField}`;106 const subtractOperation = getSubtractOperation(fieldA, fieldB);107 return wrapConditionOperation(fieldA, fieldB, subtractOperation);108}109function appendOutPipeLine(saveSuffix) {110 const collectionName = `diff-datas-${saveSuffix}`;111 return {112 $out : collectionName,113 }114}115function getSubtractOperation(fieldA, fieldB) {116 return {117 $subtract : [118 `${fieldA}`,119 `${fieldB}`120 ]121 }122}123function wrapConditionOperationForCptpt(fieldA, fieldB, subtractOperation) {124 return {125 $cond : [126 {127 $or : [128 {$eq : ['string', {$type : fieldA}]},129 {$eq : ['string', {$type : fieldB}]},130 {$lt : [fieldA, 1]},131 {$lt : [fieldB, 1]},132 ]133 }134 , null135 , subtractOperation136 ]137 }138}139function wrapConditionOperation(fieldA, fieldB, subtractOperation) {140 return {141 $cond : [142 {143 $or : [144 {$eq : ['string', {$type : fieldA}]},145 {$eq : ['string', {$type : fieldB}]},146 ]147 }148 , null149 , subtractOperation150 ]151 }...
journal-list.js
Source:journal-list.js
1import React, { Component } from 'react';2import { TransitionGroup, CSSTransition } from 'react-transition-group';3import Journal from './journal';4import Book from './book';5import testData from './test-data';6if (build.mode === 'development' && !localStorage.getItem('journal-test-data')) {7 localStorage.setItem('journal-test-data', JSON.stringify({ entries: testData }));8}9const journalPrefix = "journal-";10class JournalList extends Component {11 constructor(props) {12 super(props);13 this.state = {14 journalIds: Object.keys(localStorage).filter(key => key.match(journalPrefix)),15 addingJournal: false16 };17 this.addJournal = this.addJournal.bind(this);18 this.deleteJournal = this.deleteJournal.bind(this);19 this.refreshJournalIds = this.refreshJournalIds.bind(this);20 }21 addJournal(e) {22 e.preventDefault();23 this.setState({24 addingJournal: true25 });26 }27 refreshJournalIds(callback) {28 this.setState({29 journalIds: Object.keys(localStorage).filter(key => key.match(journalPrefix))30 }, callback);31 }32 deleteJournal(journalId) {33 localStorage.removeItem(journalId);34 this.refreshJournalIds();35 }36 componentDidUpdate() {37 // If we just added a journal, switch this off and update journal ids38 if (this.state.addingJournal) {39 this.refreshJournalIds(() => {40 this.setState({41 addingJournal: false42 });43 });44 }45 }46 render() {47 const journals = this.state.journalIds48 .sort((idA, idB) => {49 const suffixA = Number(idA.replace(journalPrefix, ''));50 const suffixB = Number(idB.replace(journalPrefix, ''));51 if (Number.isNaN(suffixA))52 return -1;53 if (Number.isNaN(suffixB))54 return 1;55 return suffixB - suffixA;56 })57 .map(id => (58 <CSSTransition timeout={500} classNames="journal" key={id}>59 <Journal key={id} journalId={id} deleteJournal={this.deleteJournal} />60 </CSSTransition>61 ));62 return (63 <div className="journal-list cn mv5 vw6-l vw8-m vw-s oxh">64 <h1 className="bb lhs pb2">Journals</h1>65 <TransitionGroup>66 {journals}67 </TransitionGroup>68 {this.state.addingJournal && <Journal deleteJournal={this.deleteJournal} />}69 <button className="bg-blanc ba db wf f2 fwb pv2" onClick={this.addJournal}>New Journal +</button>70 </div>71 )72 }73}...
Using AI Code Generation
1var sinon = require('sinon');2var obj = {3 suffixA: function (str) {4 return str + 'a';5 }6};7var spy = sinon.spy(obj, 'suffixA');8obj.suffixA('foo');9var sinon = require('sinon');10var obj = {11 suffixB: function (str) {12 return str + 'b';13 }14};15var spy = sinon.spy(obj, 'suffixB');16obj.suffixB('foo');17var sinon = require('sinon');18var obj = {19 suffixA: function (str) {20 return str + 'a';21 }22};23var stub = sinon.stub(obj, 'suffixA');24stub.withArgs('foo').returns('bar');25var sinon = require('sinon');26var obj = {27 suffixB: function (str) {28 return str + 'b';29 }30};31var stub = sinon.stub(obj, 'suffixB');32stub.withArgs('foo').returns('bar');33var sinon = require('sinon');34var obj = {35 suffixA: function (str) {36 return str + 'a';37 }38};39var mock = sinon.mock(obj);40mock.expects('suffixA').once().withArgs('foo').returns('bar');41mock.verify();42var sinon = require('sinon');43var obj = {44 suffixB: function (str) {45 return str + 'b';46 }47};48var mock = sinon.mock(obj);49mock.expects('suffix
Using AI Code Generation
1var suffixA = sinon.stub().returns('A');2var suffixB = sinon.stub().returns('B');3var suffixA = sinon.stub().returns('A');4var suffixB = sinon.stub().returns('B');5var suffixA = sinon.stub().returns('A');6var suffixB = sinon.stub().returns('B');7var suffixA = sinon.stub().returns('A');8var suffixB = sinon.stub().returns('B');9var suffixA = sinon.stub().returns('A');10var suffixB = sinon.stub().returns('B');11var suffixA = sinon.stub().returns('A');12var suffixB = sinon.stub().returns('B');13var suffixA = sinon.stub().returns('A');14var suffixB = sinon.stub().returns('B');15var suffixA = sinon.stub().returns('A');16var suffixB = sinon.stub().returns('B');17var suffixA = sinon.stub().returns('A');18var suffixB = sinon.stub().returns('B');19var suffixA = sinon.stub().returns('A');20var suffixB = sinon.stub().returns('B');21var suffixA = sinon.stub().returns('A');
Using AI Code Generation
1var sinon = require('sinon');2var assert = require('assert');3var myObj = {4 suffixA: function (str) {5 return str + 'A';6 }7};8var stub = sinon.stub(myObj, 'suffixA');9stub.withArgs('foo').returns('fooA');10stub.withArgs('bar').returns('barA');11assert.equal(myObj.suffixA('foo'), 'fooA');12assert.equal(myObj.suffixA('bar'), 'barA');13var sinon = require('sinon');14var assert = require('assert');15var myObj = {16 suffixA: function (str) {17 return str + 'A';18 }19};20var stub = sinon.stub(myObj, 'suffixB');21stub.withArgs('foo').returns('fooB');22stub.withArgs('bar').returns('barB');23assert.equal(myObj.suffixB('foo'), 'fooB');24assert.equal(myObj.suffixB('bar'), 'barB');
Using AI Code Generation
1var sinon = require('sinon');2var assert = require('assert');3var foo = {4 bar: function() {5 console.log('bar');6 }7};8var spy = sinon.spy(foo, 'bar');9foo.bar();10assert(spy.calledOnce);11assert(spy.calledWith());12assert(spy.calledOn(foo));13spy.restore();14foo.bar();15var sinon = require('sinon');16var assert = require('assert');17var foo = function() {18 console.log('bar');19};20var spy = sinon.spy(foo);21foo();22assert(spy.calledOnce);23assert(spy.calledWith());24assert(spy.calledOn(foo));25spy.restore();26foo();
Using AI Code Generation
1var sinon = require('sinon');2var obj = {3 suffixA: function () {4 return 'foo';5 }6};7var spy = sinon.spy(obj, 'suffixA');8console.log(obj.suffixA());9var sinon = require('sinon');10var obj = {11 suffixB: function () {12 return 'bar';13 }14};15var spy = sinon.spy(obj, 'suffixB');16console.log(obj.suffixB());
Using AI Code Generation
1var sinon = require('sinon');2var test = require('test');3var stub = sinon.stub(test, "suffixA");4stub.withArgs("foo").returns("foo-a");5stub.withArgs("bar").returns("bar-a");6stub.withArgs("baz").returns("baz-a");7stub.withArgs("fizz").returns("fizz-a");
Using AI Code Generation
1var sinon = require('sinon');2var assert = require('assert');3var myObj = {4 suffixA: function (str) {5 return str + 'A';6 }7};8var spy = sinon.spy(myObj, "suffixA");9myObj.suffixA('foo');10assert(spy.called);11assert(spy.calledWith('foo'));12assert(spy.returned('fooA'));13var sinon = require('sinon');14var assert = require('assert');15var myObj = {16 suffixA: function (str) {17 return str + 'A';18 }19};20var stub = sinon.stub(myObj, "suffixA").returns('bar');21var result = myObj.suffixA('foo');22assert(stub.called);23assert(stub.calledWith('foo'));24assert(stub.returned('bar'));25assert.equal(result, 'bar');
Using AI Code Generation
1sinon.stub(sinon, 'suffixA').returns('foo');2sinon.stub(sinon, 'suffixB').returns('bar');3var stub = sinon.stub(, 'myFunction').returns('foo');4var stub = sinon.stub(, 'myFunction').returns('foo');5var stub = sinon.stub(, 'myFunction').returns('foo');6var stub = sinon.stub(, 'myFunction').returns('foo');7var stub = sinon.stub(, 'myFunction').returns('foo');8var stub = sinon.stub(,
Using AI Code Generation
1var sinon = require('sinon');2var assert = require('assert');3var suffixA = sinon.stub();4suffixA.returns('a');5assert.equal(suffixA(), 'a');6var sinon = require('sinon');7var assert = require('assert');8var suffixA = sinon.stub();9suffixA.returns('a');10assert.equal(suffixA(), 'a');11var sinon = require('sinon');12var assert = require('assert');13var suffixA = sinon.stub();14suffixA.returns('a');15assert.equal(suffixA(), 'a');16var sinon = require('sinon');17var assert = require('assert');
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!!