Best JavaScript code snippet using sinon
request.js
Source:request.js  
...24    let nexmo;25    let request;26    let response;27    beforeEach(() => {28      client   = sinon.createStubInstance(Client);29      config   = sinon.createStubInstance(Config);30      response = sinon.createStubInstance(Response);31      request  = new Request(config, client, response);32    });33    describe('.accountSetup', () => {34      it('should verifiy the credentials', test(function(){35        nexmo = {};36        nexmo.account = sinon.createStubInstance(Account);37        client.instanceWith.returns(nexmo);38        response.accountSetup.returns(()=>{});39        request.accountSetup('123', 'abc', false);40        expect(nexmo.account.checkBalance).to.have.been.called;41        expect(response.accountSetup).to.have.been.called;42      }));43    });44    describe('.accountInfo', () => {45      it('should read the credentials', test(function() {46        nexmo = { credentials: 'credentials' };47        client.instance.returns(nexmo);48        request.accountInfo();49        expect(response.accountInfo).to.have.been.calledWith({ credentials: 'credentials' });50      }));51    });52    describe('.accountBalance', () => {53      it('should call nexmo.account.checkBalance', test(function() {54        nexmo = {};55        nexmo.account = sinon.createStubInstance(Account);56        client.instance.returns(nexmo);57        request.accountBalance();58        expect(nexmo.account.checkBalance).to.have.been.called;59      }));60    });61    describe('.priceVoice', () => {62      it('should call nexmo.number.getPhonePricing', test(function() {63        nexmo = {};64        nexmo.number = sinon.createStubInstance(Number);65        client.instance.returns(nexmo);66        request.priceVoice();67        expect(nexmo.number.getPhonePricing).to.have.been.called;68      }));69      it('should accept a + in the number', test(function() {70        nexmo = {};71        nexmo.number = sinon.createStubInstance(Number);72        client.instance.returns(nexmo);73        request.priceVoice('+123123123123');74        expect(nexmo.number.getPhonePricing).to.have.been.calledWith('voice', '123123123123');75      }));76    });77    describe('.priceSms', () => {78      it('should call nexmo.number.getPhonePricing', test(function() {79        nexmo = {};80        nexmo.number = sinon.createStubInstance(Number);81        client.instance.returns(nexmo);82        request.priceSms();83        expect(nexmo.number.getPhonePricing).to.have.been.called;84      }));85    });86    describe('.priceCountry', () => {87      it('should call nexmo.number.getPricing', test(function() {88        nexmo = {};89        nexmo.number = sinon.createStubInstance(Number);90        client.instance.returns(nexmo);91        request.priceCountry();92        expect(nexmo.number.getPricing).to.have.been.called;93      }));94    });95    describe('.numbersList', () => {96      it('should call nexmo.number.get', test(function() {97        nexmo = {};98        nexmo.number = sinon.createStubInstance(Number);99        client.instance.returns(nexmo);100        response.numbersList.returns(()=>{});101        request.numbersList({});102        expect(nexmo.number.get).to.have.been.called;103        expect(nexmo.number.get).to.have.been.calledWith({ size: 100 });104      }));105      it('should parse a page flag', test(function() {106        nexmo = {};107        nexmo.number = sinon.createStubInstance(Number);108        client.instance.returns(nexmo);109        response.numbersList.returns(()=>{});110        request.numbersList({ page: 2 });111        expect(nexmo.number.get).to.have.been.calledWith({ index: 2, size: 100 });112      }));113      it('should parse a size flag', test(function() {114        nexmo = {};115        nexmo.number = sinon.createStubInstance(Number);116        client.instance.returns(nexmo);117        response.numbersList.returns(()=>{});118        request.numbersList({ size: 25 });119        expect(nexmo.number.get).to.have.been.calledWith({ size: 25 });120      }));121      it('should handle search with a default search_pattern of 1', test(function() {122        nexmo = {};123        nexmo.number = sinon.createStubInstance(Number);124        client.instance.returns(nexmo);125        response.numbersList.returns(()=>{});126        const pattern = '123';127        request.numbersList({ pattern: pattern });128        expect(nexmo.number.get).to.have.been.calledWith({ pattern: pattern, search_pattern: 1, size: 100 });129      }));130      it('should handle search with a search_pattern of 2 when * is the first pattern char', test(function() {131        nexmo = {};132        nexmo.number = sinon.createStubInstance(Number);133        client.instance.returns(nexmo);134        response.numbersList.returns(()=>{});135        const pattern = '*123';136        request.numbersList({ pattern: pattern });137        expect(nexmo.number.get).to.have.been.calledWith({ pattern: pattern, search_pattern: 2, size: 100 });138      }));139      it('should handle search with a search_pattern of 0 when * is the last pattern char', test(function() {140        nexmo = {};141        nexmo.number = sinon.createStubInstance(Number);142        client.instance.returns(nexmo);143        response.numbersList.returns(()=>{});144        const pattern = '123*';145        request.numbersList({ pattern: pattern });146        expect(nexmo.number.get).to.have.been.calledWith({ pattern: pattern, search_pattern: 0, size: 100 });147      }));148    });149    describe('.numberSearch', () => {150      it('should call nexmo.number.search', test(function() {151        nexmo = {};152        nexmo.number = sinon.createStubInstance(Number);153        client.instance.returns(nexmo);154        response.numberSearch.returns(()=>{});155        request.numberSearch('GB', {});156        expect(nexmo.number.search).to.have.been.calledWith('GB', { features: [], size: 100 });157      }));158      it('should parse a voice flag', test(function() {159        nexmo = {};160        nexmo.number = sinon.createStubInstance(Number);161        client.instance.returns(nexmo);162        response.numberSearch.returns(()=>{});163        request.numberSearch('GB', { voice: true });164        expect(nexmo.number.search).to.have.been.calledWith('GB', { features: ['VOICE'], size: 100 });165      }));166      it('should parse a sms flag', test(function() {167        nexmo = {};168        nexmo.number = sinon.createStubInstance(Number);169        client.instance.returns(nexmo);170        response.numberSearch.returns(()=>{});171        request.numberSearch('GB', { sms: true });172        expect(nexmo.number.search).to.have.been.calledWith('GB', { features: ['SMS'], size: 100 });173      }));174      it('should parse both the sms and voice flag', test(function() {175        nexmo = {};176        nexmo.number = sinon.createStubInstance(Number);177        client.instance.returns(nexmo);178        response.numberSearch.returns(()=>{});179        request.numberSearch('GB', { sms: true, voice: true });180        expect(nexmo.number.search).to.have.been.calledWith('GB', { features: ['VOICE','SMS'], size: 100 });181      }));182      it('should parse a page flag', test(function() {183        nexmo = {};184        nexmo.number = sinon.createStubInstance(Number);185        client.instance.returns(nexmo);186        response.numberSearch.returns(()=>{});187        request.numberSearch('GB', { page: 2 });188        expect(nexmo.number.search).to.have.been.calledWith('GB', { features: [], index: 2, size: 100 });189      }));190      it('should parse a size flag', test(function() {191        nexmo = {};192        nexmo.number = sinon.createStubInstance(Number);193        client.instance.returns(nexmo);194        response.numberSearch.returns(()=>{});195        request.numberSearch('GB', { size: 25 });196        expect(nexmo.number.search).to.have.been.calledWith('GB', { features: [], size: 25 });197      }));198      it('should pass the pattern flag without a wildcard', test(function() {199        nexmo = {};200        nexmo.number = sinon.createStubInstance(Number);201        client.instance.returns(nexmo);202        response.numberSearch.returns(()=>{});203        request.numberSearch('GB', { pattern: '020'});204        expect(nexmo.number.search).to.have.been.calledWith('GB', { features: [], pattern: '020', search_pattern: 1, size: 100 });205      }));206      it('should pass the pattern flag with a start-of wildcard', test(function() {207        nexmo = {};208        nexmo.number = sinon.createStubInstance(Number);209        client.instance.returns(nexmo);210        response.numberSearch.returns(()=>{});211        request.numberSearch('GB', { pattern: '*020'});212        expect(nexmo.number.search).to.have.been.calledWith('GB', { features: [], pattern: '*020', search_pattern: 2, size: 100 });213      }));214    });215    describe('.numberBuy', () => {216      it('should call the library', test(function() {217        nexmo = {};218        nexmo.numberInsight = sinon.createStubInstance(NumberInsight);219        client.instance.returns(nexmo);220        request.numberBuy('123', { confirm: true });221        expect(nexmo.numberInsight.get).to.have.been.calledWith({ level: 'basic', number: '123' });222      }));223      it('should handle search with a default search_pattern of 1', test(function() {224        nexmo = {};225        nexmo.number = sinon.createStubInstance(Number);226        client.instance.returns(nexmo);227        const country_code = 'GB';228        const pattern = '123';229        request.numberBuy(pattern, { country_code: country_code });230        expect(nexmo.number.search).to.have.been.calledWith(231          country_code,232          {233            features: ['VOICE'],234            pattern: pattern,235            search_pattern: 1236          }237        );238      }));239      it('should handle search with a search_pattern of 2 when * is the first pattern char', test(function() {240        nexmo = {};241        nexmo.number = sinon.createStubInstance(Number);242        client.instance.returns(nexmo);243        const country_code = 'GB';244        const pattern = '*123';245        request.numberBuy(pattern, { country_code: country_code });246        expect(nexmo.number.search).to.have.been.calledWith(247          country_code,248          {249            features: ['VOICE'],250            pattern: pattern,251            search_pattern: 2252          }253        );254      }));255      it('should handle search with a search_pattern of 0 when * is the last pattern char', test(function() {256        nexmo = {};257        nexmo.number = sinon.createStubInstance(Number);258        client.instance.returns(nexmo);259        const country_code = 'GB';260        const pattern = '123*';261        request.numberBuy(pattern, { country_code: country_code });262        expect(nexmo.number.search).to.have.been.calledWith(263          country_code,264          {265            features: ['VOICE'],266            pattern: pattern,267            search_pattern: 0268          }269        );270      }));271      it('should buy the first number only country_code flag is set', () => {272        nexmo = {};273        nexmo.number = sinon.createStubInstance(Number);274        client.instance.returns(nexmo);275        const country_code = 'GB';276        request.numberBuy(null, { country_code: country_code });277        expect(nexmo.number.search).to.have.been.calledWith(278          country_code,279          {280            features: ['VOICE']281          }282        );283      });284    });285    describe('.numberCancel', () => {286      it('should call nexmo.numberInsight.get', test(function() {287        nexmo = {};288        nexmo.numberInsight = sinon.createStubInstance(NumberInsight);289        client.instance.returns(nexmo);290        request.numberCancel('123', { confirm: true });291        expect(nexmo.numberInsight.get).to.have.been.called;292      }));293      it('should call nexmo.number.cancel if the country code was forced', test(function() {294        nexmo = {};295        nexmo.number = sinon.createStubInstance(Number);296        nexmo.response = sinon.createStubInstance(Response);297        client.instance.returns(nexmo);298        response.numberCancel.returns(()=>{});299        request.numberCancel('123', { country_code: 'GB', confirm: true });300        expect(nexmo.number.cancel).to.have.been.called;301      }));302    });303    describe('.applicationsList', () => {304      it('should call nexmo.app.get', test(function() {305        nexmo = {};306        nexmo.app = sinon.createStubInstance(App);307        client.instance.returns(nexmo);308        response.applicationsList.returns(()=>{});309        request.applicationsList({});310        expect(nexmo.app.get).to.have.been.calledWith({page_size: 100});311      }));312      it('should parse a page flag', test(function() {313        nexmo = {};314        nexmo.app = sinon.createStubInstance(App);315        client.instance.returns(nexmo);316        response.applicationsList.returns(()=>{});317        request.applicationsList({ page: 2 });318        expect(nexmo.app.get).to.have.been.calledWith({ index: 2, page_size: 100 });319      }));320      it('should parse a size flag', test(function() {321        nexmo = {};322        nexmo.app = sinon.createStubInstance(App);323        client.instance.returns(nexmo);324        response.applicationsList.returns(()=>{});325        request.applicationsList({ size: 25 });326        expect(nexmo.app.get).to.have.been.calledWith({ page_size: 25 });327      }));328    });329    describe('.applicationCreate', () => {330      it('should call nexmo.app.create', test(function() {331        nexmo = {};332        nexmo.app = sinon.createStubInstance(App);333        client.instance.returns(nexmo);334        request.applicationCreate('name', 'answer_url', 'event_url', { type: 'voice' });335        expect(nexmo.app.create).to.have.been.called;336      }));337      it('should parse a answer_method flag', test(function() {338        nexmo = {};339        nexmo.app = sinon.createStubInstance(App);340        client.instance.returns(nexmo);341        request.applicationCreate('name', 'answer_url', 'event_url', { type: 'voice', answer_method: 'POST' });342        expect(nexmo.app.create).to.have.been.calledWith('name', 'voice', 'answer_url', 'event_url', { answer_method : 'POST' });343      }));344      it('should parse a event_method flag', test(function() {345        nexmo = {};346        nexmo.app = sinon.createStubInstance(App);347        client.instance.returns(nexmo);348        request.applicationCreate('name', 'answer_url', 'event_url', { type: 'voice', event_method: 'POST' });349        expect(nexmo.app.create).to.have.been.calledWith('name', 'voice', 'answer_url', 'event_url', { event_method : 'POST' });350      }));351    });352    describe('.applicationShow', () => {353      it('should call the library', test(function() {354        nexmo = {};355        nexmo.app = sinon.createStubInstance(App);356        client.instance.returns(nexmo);357        request.applicationShow('app_id');358        expect(nexmo.app.get).to.have.been.called;359      }));360    });361    describe('.applicationUpdate', () => {362      it('should call the library', test(function() {363        nexmo = {};364        nexmo.app = sinon.createStubInstance(App);365        client.instance.returns(nexmo);366        request.applicationUpdate('app_id', 'name', 'answer_url', 'event_url', { type: 'voice' });367        expect(nexmo.app.update).to.have.been.called;368      }));369      it('should parse a answer_method flag', test(function() {370        nexmo = {};371        nexmo = {};372        nexmo.app = sinon.createStubInstance(App);373        client.instance.returns(nexmo);374        request.applicationUpdate('app_id', 'name', 'answer_url', 'event_url', { type: 'voice', answer_method: 'POST' });375        expect(nexmo.app.update).to.have.been.calledWith('app_id', 'name', 'voice', 'answer_url', 'event_url', { answer_method : 'POST' });376      }));377      it('should parse a event_method flag', test(function() {378        nexmo = {};379        nexmo.app = sinon.createStubInstance(App);380        client.instance.returns(nexmo);381        request.applicationUpdate('app_id', 'name', 'answer_url', 'event_url', { type: 'voice', event_method: 'POST' });382        expect(nexmo.app.update).to.have.been.calledWith('app_id', 'name', 'voice', 'answer_url', 'event_url', { event_method : 'POST' });383      }));384    });385    describe('.applicationDelete', () => {386      it('should call the library', test(function() {387        nexmo = {};388        nexmo.app = sinon.createStubInstance(App);389        client.instance.returns(nexmo);390        request.applicationDelete('123', { confirm: true });391        expect(nexmo.app.delete).to.have.been.called;392      }));393    });394    describe('.applicationNumbers', () => {395      it('should call nexmo.number.get', test(function() {396        nexmo = {};397        nexmo.number = sinon.createStubInstance(Number);398        client.instance.returns(nexmo);399        response.applicationNumbers.returns(()=>{});400        request.applicationNumbers('app_id', {});401        expect(nexmo.number.get).to.have.been.called;402      }));403      it('should parse a page flag', test(function() {404        nexmo = {};405        nexmo.number = sinon.createStubInstance(Number);406        client.instance.returns(nexmo);407        response.applicationNumbers.returns(()=>{});408        request.applicationNumbers('app_id', { page: 2 });409        expect(nexmo.number.get).to.have.been.calledWith({ index: 2 });410      }));411      it('should parse a size flag', test(function() {412        nexmo = {};413        nexmo.number = sinon.createStubInstance(Number);414        client.instance.returns(nexmo);415        response.applicationNumbers.returns(()=>{});416        request.applicationNumbers('app_id', { size: 25 });417        expect(nexmo.number.get).to.have.been.calledWith({ size: 25 });418      }));419    });420    describe('.linkApp', () => {421      it('should call the nexmo.number.get({level:"basic"})', test(function() {422        nexmo = {};423        nexmo.numberInsight = sinon.createStubInstance(NumberInsight);424        client.instance.returns(nexmo);425        request.linkApp('123', 'abc');426        expect(nexmo.numberInsight.get).to.have.been.calledWithMatch({level:'basic'});427      }));428    });429    describe('.unlinkApp', () => {430      it('should call nexmo.numberInsight.get', test(function() {431        nexmo = {};432        nexmo.numberInsight = sinon.createStubInstance(NumberInsight);433        client.instance.returns(nexmo);434        request.unlinkApp('123');435        expect(nexmo.numberInsight.get).to.have.been.calledWithMatch({level:'basic'});436      }));437    });438    describe('.linkSms', () => {439      it('should call the library', test(function() {440        nexmo = {};441        nexmo.numberInsight = sinon.createStubInstance(NumberInsight);442        client.instance.returns(nexmo);443        request.linkSms('123', 'abc');444        expect(nexmo.numberInsight.get).to.have.been.calledWithMatch({level:'basic'});445      }));446    });447    describe('.unlinkSms', () => {448      it('should call nexmo.numberInsight.get', test(function() {449        nexmo = {};450        nexmo.numberInsight = sinon.createStubInstance(NumberInsight);451        client.instance.returns(nexmo);452        request.unlinkSms('123');453        expect(nexmo.numberInsight.get).to.have.been.calledWithMatch({level:'basic'});454      }));455    });456    describe('.linkTel', () => {457      it('should call nexmo.numberInsight.get', test(function() {458        nexmo = {};459        nexmo.numberInsight = sinon.createStubInstance(NumberInsight);460        client.instance.returns(nexmo);461        request.linkTel('123', 'abc', {});462        expect(nexmo.numberInsight.get).to.have.been.calledWithMatch({level:'basic'});463      }));464    });465    describe('.unlinkTel', () => {466      it('should call nexmo.numberInsight.get', test(function() {467        nexmo = {};468        nexmo.numberInsight = sinon.createStubInstance(NumberInsight);469        client.instance.returns(nexmo);470        request.unlinkTel('123');471        expect(nexmo.numberInsight.get).to.have.been.calledWithMatch({level:'basic'});472      }));473      describe('.linkVxml', () => {474        it('should call nexmo.numberInsight.get', test(function() {475          nexmo = {};476          nexmo.numberInsight = sinon.createStubInstance(NumberInsight);477          client.instance.returns(nexmo);478          request.linkVxml('123', 'abc', {});479          expect(nexmo.numberInsight.get).to.have.been.calledWithMatch({level:'basic'});480        }));481      });482      describe('.unlinkVxml', () => {483        it('should call nexmo.numberInsight.get', test(function() {484          nexmo = {};485          nexmo.numberInsight = sinon.createStubInstance(NumberInsight);486          client.instance.returns(nexmo);487          request.unlinkVxml('123');488          expect(nexmo.numberInsight.get).to.have.been.calledWithMatch({level:'basic'});489        }));490      });491      describe('.linkSip', () => {492        it('should call nexmo.numberInsight.get', test(function() {493          nexmo = {};494          nexmo.numberInsight = sinon.createStubInstance(NumberInsight);495          client.instance.returns(nexmo);496          request.linkSip('123', 'abc', {});497          expect(nexmo.numberInsight.get).to.have.been.calledWithMatch({level:'basic'});498        }));499      });500      describe('.unlinkSip', () => {501        it('should call nexmo.numberInsight.get', test(function() {502          nexmo = {};503          nexmo.numberInsight = sinon.createStubInstance(NumberInsight);504          client.instance.returns(nexmo);505          request.unlinkSip('123');506          expect(nexmo.numberInsight.get).to.have.been.calledWithMatch({level:'basic'});507        }));508      });509    });510    describe('.insightBasic', () => {511      it('should call nexmo.numberInsight.get', test(function() {512        nexmo = {};513        nexmo.numberInsight = sinon.createStubInstance(NumberInsight);514        client.instance.returns(nexmo);515        request.insightBasic('4555555', { confirm: true });516        expect(nexmo.numberInsight.get).to.have.been.calledWithMatch({level:'basic'});517      }));518    });519    describe('.insightStandard', () => {520      it('should call nexmo.numberInsight.get', test(function() {521        nexmo = {};522        nexmo.numberInsight = sinon.createStubInstance(NumberInsight);523        client.instance.returns(nexmo);524        request.insightStandard('4555555', { confirm: true });525        expect(nexmo.numberInsight.get).to.have.been.calledWithMatch({level:'standard'});526      }));527    });528    describe('.sendSms', () => {529      it('should call nexmo.message.sendSms', test(function() {530        nexmo = {};531        nexmo.message = sinon.createStubInstance(Message);532        client.instance.returns(nexmo);533        request.sendSms('to', ['Hello', 'World'], { 'from' : 'from', 'confirm' : true });534        expect(nexmo.message.sendSms).to.have.been.calledWith('from', 'to', 'Hello World');535      }));536    });537    describe('.generateJwt', () => {538      it('should call Nexmo.generateJwt', test(function() {539        var Nexmo = {540          generateJwt: sinon.spy()541        };542        client.definition.returns(Nexmo);543        request.generateJwt('path/to/private.key', [], {});544        expect(Nexmo.generateJwt).to.have.been.calledWith('path/to/private.key' );545      }));546      it('should deal with Nexmo.generateJwt with null claims', test(function() {547        var Nexmo = {548          generateJwt: sinon.spy()549        };550        client.definition.returns(Nexmo);551        request.generateJwt('path/to/private.key', [], {app_id: 'application_id'});552        expect(Nexmo.generateJwt).to.have.been.calledWith('path/to/private.key', {application_id: 'application_id'});553      }));554      it('should call Nexmo.generateJwt with additional claims', test(function() {555        var Nexmo = {556          generateJwt: sinon.spy()557        };558        client.definition.returns(Nexmo);559        request.generateJwt('path/to/private.key', ['subject=leggetter', 'jti=1475861732'], {app_id: 'application_id'});560        expect(Nexmo.generateJwt).to.have.been.calledWith('path/to/private.key', {application_id: 'application_id', subject: 'leggetter', jti: '1475861732'});561      }));562      it('should call pass generated token to response.generateJwt', test(function() {563        var Nexmo = {564          generateJwt: () => {565            return 'a token!';566          }567        };568        client.definition.returns(Nexmo);569        request.generateJwt('path/to/private.key', ['subject=leggetter', 'jti=1475861732'], {app_id: 'application_id'});570        expect(response.generateJwt).to.have.been.calledWith(null, 'a token!');571      }));572      it('should call response with an exception when singular values are provided for claims', test(function() {573        var Nexmo = {574          generateJwt: sinon.spy()575        };576        client.definition.returns(Nexmo);577        request.generateJwt('path/to/private.key', 'application_id', ['subject']);578        expect(response.generateJwt).to.have.been.calledWith(sinon.match.instanceOf(Error), null);579      }));580      it('should call response with an exception when more than one = is supplied', test(function() {581        var Nexmo = {582          generateJwt: sinon.spy()583        };584        client.definition.returns(Nexmo);585        request.generateJwt('path/to/private.key', 'application_id', ['subject=fish=monkey']);586        expect(response.generateJwt).to.have.been.calledWith(sinon.match.instanceOf(Error), null);587      }));588    });589    describe('.getCountryCode', () => {590      it('should return the country code if provided', test(function() {591        const callback = sinon.spy();592        request.getCountryCode('44555666777', { country_code: 'GB' }, callback);593        expect(callback).to.have.been.calledWith('GB');594      }));595      it('should call number insight if no country code was provided', test(function() {596        nexmo = {};597        const callback = sinon.spy();598        nexmo.numberInsight = sinon.createStubInstance(NumberInsight);599        client.instance.returns(nexmo);600        request.getCountryCode('44555666777', {}, callback);601        expect(nexmo.numberInsight.get).to.have.been.calledWith({ level: 'basic', number: '44555666777' });602      }));603    });604  });...hud_test.js
Source:hud_test.js  
...27      done();28    });29  });30  setup(function() {31    this.app = sinon.createStubInstance(this.App);32    this.app.camera = sinon.createStubInstance(this.Camera);33    this.app.settings = sinon.createStubInstance(this.Settings);34    this.app.views = {35      viewfinder: sinon.createStubInstance(this.ViewfinderView),36      controls: sinon.createStubInstance(this.ControlsView),37      hud: sinon.createStubInstance(this.HudView)38    };39    // Stub 'cameras' setting40    this.app.settings.cameras = sinon.createStubInstance(this.Setting);41    this.app.settings.flashModes = sinon.createStubInstance(this.Setting);42    this.app.settings.cameras.get.withArgs('options').returns([]);43    this.app.settings.get.withArgs('cameras')44      .returns(this.app.settings.cameras);45    this.app.settings.get.withArgs('flashModes')46      .returns(this.app.settings.flashModes);47    // For convenience48    this.hud = this.app.views.hud;49    this.controls = this.app.views.controls;50    this.viewfinder = this.app.views.viewfinder;51    this.camera = this.app.camera;52    // Our test instance53    this.hudController = new this.HudController(this.app);54  });55  suite('HudController()', function() {...camera_test.js
Source:camera_test.js  
...27      done();28    });29  });30  setup(function() {31    this.app = sinon.createStubInstance(this.App);32    this.app.activity = new this.Activity();33    this.app.camera = sinon.createStubInstance(this.Camera);34    this.app.views = {35      filmstrip: sinon.createStubInstance(this.View),36      viewfinder: sinon.createStubInstance(this.View)37    };38    this.app.views.filmstrip.clear = sinon.spy();39    // Settings40    this.app.settings = sinon.createStubInstance(this.Settings);41    this.app.settings.cameras = sinon.createStubInstance(this.Setting);42    this.app.settings.get43      .withArgs('cameras')44      .returns(this.app.settings.cameras);45    this.app.storage = sinon.createStubInstance(this.Storage);46    this.camera = this.app.camera;47  });48  suite('CameraController()', function() {49    setup(function() {50      sinon.stub(this.CameraController.prototype, 'teardownCamera');51    });52    teardown(function() {53      this.CameraController.prototype.teardownCamera.restore();54    });55    test('Should set the capture mode to \'camera\' by default', function() {56      this.app.settings.value.withArgs('mode').returns('picture');57      this.controller = new this.CameraController(this.app);58      assert.isTrue(this.app.camera.setMode.calledWith('picture'));59    });...Using AI Code Generation
1var sinon = require('sinon');2var assert = require('assert');3var MyClass = require('./myclass');4var myStub = sinon.createStubInstance(MyClass);5myStub.method1.returns(42);6assert.equal(42, myStub.method1());7var stub = sinon.stub();8stub.withArgs(100).returns(200);9stub.withArgs(300).returns(400);10assert.equal(200, stub(100));11assert.equal(400, stub(300));Using AI Code Generation
1var sinon = require('sinon');2var stub = sinon.createStubInstance(OriginalConstructor);3var sinon = require('sinon');4var stub = sinon.createStubInstance(OriginalConstructor);5var sinon = require('sinon');6var stub = sinon.createStubInstance(OriginalConstructor);7var sinon = require('sinon');8var stub = sinon.createStubInstance(OriginalConstructor);9var sinon = require('sinon');10var stub = sinon.createStubInstance(OriginalConstructor);11var sinon = require('sinon');12var stub = sinon.createStubInstance(OriginalConstructor);13var sinon = require('sinon');14var stub = sinon.createStubInstance(OriginalConstructor);15var sinon = require('sinon');16var stub = sinon.createStubInstance(OriginalConstructor);17var sinon = require('sinon');18var stub = sinon.createStubInstance(OriginalConstructor);Using AI Code Generation
1var sinon = require('sinon');2var assert = require('assert');3var MyClass = function() {4  this.method = function() {5  };6  this.property = "property";7};8var stub = sinon.createStubInstance(MyClass);9assert(stub instanceof MyClass);10assert(typeof stub.method === 'function');11assert(stub.property === undefined);12var sinon = require('sinon');13var assert = require('assert');14var MyClass = function() {15  this.method = function() {16  };17  this.property = "property";18};19var stub = sinon.createStubInstance(MyClass);20assert(stub instanceof MyClass);21assert(typeof stub.method === 'function');22assert(stub.property === undefined);23assert(stub.method() === undefined);24var sinon = require('sinon');25var assert = require('assert');26var MyClass = function() {27  this.method = function() {28  };29  this.property = "property";30};31var stub = sinon.createStubInstance(MyClass);32assert(stub instanceof MyClass);33assert(typeof stub.method === 'function');34assert(stub.property === undefined);35assert(stub.method() === undefined);36assert(stub.method() === undefined);37assert(stub.method() === undefined);38var sinon = require('sinon');39var assert = require('assert');40var MyClass = function() {41  this.method = function() {42  };43  this.property = "property";44};45var stub = sinon.createStubInstance(MyClass);46assert(stub instanceof MyClass);47assert(typeof stub.method === 'function');48assert(stub.property === undefined);49assert(stub.method() === undefined);50assert(stub.method() === undefined);51assert(stub.method() === undefined);52assert(stub.method() === undefined);53var sinon = require('sinon');54var assert = require('assert');55var MyClass = function() {56  this.method = function() {57  };58  this.property = "property";59};60var stub = sinon.createStubInstance(MyClass);61assert(stub instanceof MyClass);62assert(typeof stub.method === 'function');63assert(stub.propertyUsing AI Code Generation
1var sinon = require('sinon');2var assert = require('assert');3var obj = sinon.createStubInstance(require('./test1'));4console.log(obj);5assert(obj.method1.calledOnce);6module.exports = {7    method1: function() {8        console.log('method1 called');9    }10};11var obj = sinon.createStubInstance(require('./test1'));12var sandbox = sinon.sandbox.create();13sandbox.stub(obj, "method1");14console.log(obj);15assert(obj.method1.calledOnce);16var obj = sinon.createStubInstance(require('./test1'));17var sandbox = sinon.sandbox.create();18sandbox.stub(obj, "method1");19console.log(obj);20assert(obj.method1.calledOnce);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!!
