Best JavaScript code snippet using sinon
q_spec.js
Source:q_spec.js
...21 });22 it('can resolve a promise', function (done) {23 var defferred = $q.defer();24 var promise = defferred.promise;25 var promiseSpy = jasmine.createSpy();26 promise.then(promiseSpy);27 defferred.resolve('a-ok');28 setTimeout(function () {29 expect(promiseSpy).toHaveBeenCalledWith('a-ok');30 done();31 },1);32 });33 it('works when resolved before promise listener', function (done) {34 var d = $q.defer();35 d.resolve(42);36 var promiseSpy = jasmine.createSpy();37 d.promise.then(promiseSpy);38 setTimeout(function () {39 expect(promiseSpy).toHaveBeenCalledWith(42);40 done();41 },0);42 });43 it('does not resolve promise immediately', function () {44 var d = $q.defer();45 var promiseSpy = jasmine.createSpy();46 d.promise.then(promiseSpy);47 d.resolve(42);48 expect(promiseSpy).not.toHaveBeenCalled();49 });50 it('resolves promise at next digest', function () {51 var d = $q.defer();52 var promiseSpy = jasmine.createSpy();53 d.promise.then(promiseSpy);54 d.resolve(42);55 $rootScope.$apply();56 expect(promiseSpy).toHaveBeenCalledWith(42);57 });58 it('may only be resolved once', function () {59 var d = $q.defer();60 var promiseSpy = jasmine.createSpy();61 d.promise.then(promiseSpy);62 d.resolve(42);63 d.resolve(43);64 $rootScope.$apply();65 expect(promiseSpy.calls.count()).toEqual(1);66 expect(promiseSpy).toHaveBeenCalledWith(42);67 });68 it('may only ever be resolved once',function () {69 var d = $q.defer();70 var promiseSpy = jasmine.createSpy();71 d.promise.then(promiseSpy);72 d.resolve(42);73 $rootScope.$apply();74 expect(promiseSpy).toHaveBeenCalledWith(42);75 d.resolve(43);76 $rootScope.$apply();77 expect(promiseSpy.calls.count()).toEqual(1);78 });79 it('resolves a listener added after resolution', function () {80 var d = $q.defer();81 d.resolve(42);82 $rootScope.$apply();83 var promiseSpy = jasmine.createSpy();84 d.promise.then(promiseSpy);85 $rootScope.$apply();86 expect(promiseSpy).toHaveBeenCalledWith(42);87 });88 it('may have multiple callbacks', function () {89 var d = $q.defer();90 var firstPromise = jasmine.createSpy();91 var secondPromise = jasmine.createSpy();92 d.promise.then(firstPromise);93 d.promise.then(secondPromise);94 d.resolve(42);95 $rootScope.$apply();96 expect(firstPromise).toHaveBeenCalledWith(42);97 expect(secondPromise).toHaveBeenCalledWith(42);98 });99 it('invokes each callback once', function () {100 var d = $q.defer();101 var firstSpy = jasmine.createSpy();102 var secondSpy = jasmine.createSpy();103 d.promise.then(firstSpy);104 d.resolve(42);105 $rootScope.$apply();106 expect(firstSpy.calls.count()).toBe(1);107 expect(secondSpy.calls.count()).toBe(0);108 d.promise.then(secondSpy);109 $rootScope.$apply();110 expect(firstSpy.calls.count()).toBe(1);111 expect(secondSpy.calls.count()).toBe(1);112 });113 it('can reject a deferred', function () {114 var d = $q.defer();115 var fullfillSpy = jasmine.createSpy();116 var rejectSpy = jasmine.createSpy();117 d.promise.then(fullfillSpy, rejectSpy);118 d.reject('fail');119 $rootScope.$apply();120 expect(fullfillSpy).not.toHaveBeenCalled();121 expect(rejectSpy).toHaveBeenCalledWith('fail');122 });123 it('can reject just once', function () {124 var d = $q.defer();125 var rejectSpy = jasmine.createSpy();126 d.promise.then(null, rejectSpy);127 d.reject('fail');128 $rootScope.$apply();129 expect(rejectSpy.calls.count()).toBe(1);130 d.reject('fail again');131 $rootScope.$apply();132 expect(rejectSpy.calls.count()).toBe(1);133 });134 it('cannot fulfill a promise once rejected', function () {135 var d = $q.defer();136 var fulfillSpy = jasmine.createSpy();137 var rejectSpy = jasmine.createSpy();138 d.promise.then(fulfillSpy, rejectSpy);139 d.reject('fail');140 $rootScope.$apply();141 d.resolve('success');142 $rootScope.$apply();143 expect(fulfillSpy).not.toHaveBeenCalled();144 });145 it('does not require a failure handler each time', function () {146 var d = $q.defer();147 var fulfillSpy = jasmine.createSpy();148 var rejectSpy = jasmine.createSpy();149 d.promise.then(fulfillSpy);150 d.promise.then(null,rejectSpy);151 d.reject('fail');152 $rootScope.$apply();153 expect(rejectSpy).toHaveBeenCalledWith('fail');154 });155 it('does not require a success handler each time', function () {156 var d = $q.defer();157 var fulfillSpy = jasmine.createSpy();158 var rejectSpy = jasmine.createSpy();159 d.promise.then(fulfillSpy);160 d.promise.then(null,rejectSpy);161 d.resolve('ok');162 $rootScope.$apply();163 expect(fulfillSpy).toHaveBeenCalledWith('ok');164 });165 it('can register rejection handler with catch', function () {166 var d = $q.defer();167 var rejectSpy = jasmine.createSpy();168 d.promise.catch(rejectSpy);169 d.reject('fail');170 $rootScope.$apply();171 expect(rejectSpy).toHaveBeenCalled();172 });173 it('invokes a finally handler when fulfilled', function () {174 var d = $q.defer();175 var finallySpy = jasmine.createSpy();176 d.promise.finally(finallySpy);177 d.resolve(42);178 $rootScope.$apply();179 expect(finallySpy).toHaveBeenCalled();180 });181 it('invokes a finally handler when rejected', function () {182 var d = $q.defer();183 var finallySpy = jasmine.createSpy();184 d.promise.finally(finallySpy);185 d.reject('fail');186 $rootScope.$apply();187 expect(finallySpy).toHaveBeenCalledWith();188 });189 it('allows chaining handlers', function () {190 var d = $q.defer();191 var fulfilledSpy = jasmine.createSpy();192 d.promise.then(function (result) {193 return result + 1;194 }).then(function (result) {195 return result * 2;196 }).then(fulfilledSpy);197 d.resolve(20);198 $rootScope.$apply();199 expect(fulfilledSpy).toHaveBeenCalledWith(42);200 });201 it('does not modify original resolution in chains', function () {202 var d = $q.defer();203 var fulfilledSpy = jasmine.createSpy();204 d.promise.then(function (result) {205 return result + 1;206 }).then(function (result) {207 return result * 2;208 });209 d.promise.then(fulfilledSpy);210 d.resolve(20);211 $rootScope.$apply();212 expect(fulfilledSpy).toHaveBeenCalledWith(20);213 });214 it('catches rejection on chained handler', function () {215 var d = $q.defer();216 var rejectedSpy = jasmine.createSpy();217 d.promise.then(_.noop).catch(rejectedSpy);218 d.reject('fail');219 $rootScope.$apply();220 expect(rejectedSpy).toHaveBeenCalledWith('fail');221 });222 it('fulfills on chained handler', function () {223 var d = $q.defer();224 var fulfilledSpy = jasmine.createSpy();225 d.promise.catch(_.noop).then(fulfilledSpy);226 d.resolve(42);227 $rootScope.$apply();228 expect(fulfilledSpy).toHaveBeenCalledWith(42);229 });230 it('treats catch return value as resolution', function () {231 var d = $q.defer();232 var fulfillSpy = jasmine.createSpy();233 d.promise.catch(function (value) {234 return 42;235 }).then(fulfillSpy);236 d.reject('fail');237 $rootScope.$apply();238 expect(fulfillSpy).toHaveBeenCalledWith(42);239 });240 it('rejects chained promise when handler throws', function () {241 var d = $q.defer();242 var rejectSpy = jasmine.createSpy();243 d.promise.then(function () {244 throw 'fail';245 }).catch(rejectSpy);246 d.resolve(42);247 $rootScope.$apply();248 expect(rejectSpy).toHaveBeenCalledWith('fail');249 });250 it('does not reject current promise when handler throws', function () {251 var d = $q.defer();252 var rejectSpy = jasmine.createSpy();253 d.promise.then(function () {254 throw 'fail';255 });256 d.promise.catch(rejectSpy);257 d.resolve(42);258 $rootScope.$apply();259 expect(rejectSpy).not.toHaveBeenCalled();260 });261 it('waits on promise returned from handler', function () {262 var d = $q.defer();263 var fulfilledSpy = jasmine.createSpy();264 d.promise.then(function (v) {265 var d2 = $q.defer();266 d2.resolve(v+1);267 return d2.promise;268 }).then(function (v) {269 return v*2;270 }).then(fulfilledSpy);271 d.resolve(20);272 $rootScope.$apply();273 expect(fulfilledSpy).toHaveBeenCalledWith(42);274 });275 it('waits on promise given to resolve', function () {276 var d = $q.defer();277 var d2 = $q.defer();278 var fulfilledSpy = jasmine.createSpy();279 d.promise.then(fulfilledSpy);280 d2.resolve(42);281 d.resolve(d2.promise);282 $rootScope.$apply();283 expect(fulfilledSpy).toHaveBeenCalledWith(42);284 });285 it('rejects when promise returned from handler rejects', function () {286 var d = $q.defer();287 var rejectSpy = jasmine.createSpy();288 d.promise.then(function () {289 var d2 = $q.defer();290 d2.reject('fail');291 return d2.promise;292 }).catch(rejectSpy);293 d.resolve('ok');294 $rootScope.$apply();295 expect(rejectSpy).toHaveBeenCalledWith('fail');296 });297 it('allows chaining handlers on finally, with original value', function () {298 var d = $q.defer();299 var fulfilledSpy = jasmine.createSpy();300 d.promise.then(function (result) {301 return result +1;302 }).finally(function (result) {303 return result*2;304 }).then(fulfilledSpy);305 d.resolve(20);306 $rootScope.$apply();307 expect(fulfilledSpy).toHaveBeenCalledWith(21);308 });309 it('allows chaining handlers on finally, with original rejection', function () {310 var d = $q.defer();311 var rejectSpy = jasmine.createSpy();312 d.promise.then(function (result) {313 throw 'fail';314 }).finally(function () {315 }).catch(rejectSpy);316 d.resolve(20);317 $rootScope.$apply();318 expect(rejectSpy).toHaveBeenCalledWith('fail');319 });320 it('resolves to orig value when nested promise resolves', function () {321 var d = $q.defer();322 var fulfilledSpy = jasmine.createSpy();323 var resolveNested;324 d.promise.then(function (result) {325 return result + 1;326 }).finally(function (result) {327 var d2 = $q.defer();328 resolveNested = function () {329 d2.resolve('abc');330 };331 return d2.promise;332 }).then(fulfilledSpy);333 d.resolve(20);334 $rootScope.$apply();335 expect(fulfilledSpy).not.toHaveBeenCalled();336 resolveNested();337 $rootScope.$apply();338 expect(fulfilledSpy).toHaveBeenCalledWith(21);339 });340 it('rejects to orig value when nested promise resolves', function () {341 var d = $q.defer();342 var rejectSpy = jasmine.createSpy();343 var resolveNested;344 d.promise.then(function (result) {345 throw 'fail';346 }).finally(function (result) {347 var d2 = $q.defer();348 resolveNested = function () {349 d2.resolve('abc');350 };351 return d2.promise;352 }).catch(rejectSpy);353 d.resolve(20);354 $rootScope.$apply();355 expect(rejectSpy).not.toHaveBeenCalled();356 resolveNested();357 $rootScope.$apply();358 expect(rejectSpy).toHaveBeenCalledWith('fail');359 });360 it('rejects when nested promise rejects in finally', function () {361 var d = $q.defer();362 var fulfilledSpy = jasmine.createSpy();363 var rejectedSpy = jasmine.createSpy();364 var rejectNested;365 d.promise.then(function (result) {366 return result + 1;367 }).finally(function (result) {368 var d2 = $q.defer();369 rejectNested = function () {370 d2.reject('fail');371 };372 return d2.promise;373 }).then(fulfilledSpy, rejectedSpy);374 d.resolve(20);375 $rootScope.$apply();376 expect(fulfilledSpy).not.toHaveBeenCalled();377 rejectNested();378 $rootScope.$apply();379 expect(fulfilledSpy).not.toHaveBeenCalled();380 expect(rejectedSpy).toHaveBeenCalledWith('fail');381 });382 it('can report progress', function () {383 var d = $q.defer();384 var progressSpy = jasmine.createSpy();385 d.promise.then(null, null, progressSpy);386 d.notify('working...');387 $rootScope.$apply();388 expect(progressSpy).toHaveBeenCalledWith('working...');389 });390 it('can report progress many times', function () {391 var d = $q.defer();392 var progressSpy = jasmine.createSpy();393 d.promise.then(null, null, progressSpy);394 d.notify('40%');395 $rootScope.$apply();396 d.notify('60%');397 d.notify('80%');398 $rootScope.$apply();399 expect(progressSpy.calls.count()).toBe(3);400 });401 it('does not notify progress after being resolved', function () {402 var d = $q.defer();403 var progressSpy = jasmine.createSpy();404 d.promise.then(null, null, progressSpy);405 d.resolve('ok');406 d.notify('working...');407 $rootScope.$apply();408 expect(progressSpy).not.toHaveBeenCalled();409 });410 it('does not notify progress after being rejected', function () {411 var d = $q.defer();412 var progressSpy = jasmine.createSpy();413 d.promise.then(null, null, progressSpy);414 d.reject('fail');415 d.notify('working...');416 $rootScope.$apply();417 expect(progressSpy).not.toHaveBeenCalled();418 });419 it('can notify progress through chain', function () {420 var d = $q.defer();421 var progressSpy = jasmine.createSpy();422 d.promise.then(_.noop).catch(_.noop).then(null, null, progressSpy);423 d.notify('working...');424 $rootScope.$apply();425 expect(progressSpy).toHaveBeenCalledWith('working...');426 });427 it('transforms progress through handlers', function () {428 var d = $q.defer();429 var progressSpy = jasmine.createSpy();430 d.promise.then(_.noop).then(null, null, function (progress) {431 return '***' + progress + '***';432 }).catch(_.noop).then(null, null, progressSpy);433 d.notify('working...');434 $rootScope.$apply();435 expect(progressSpy).toHaveBeenCalledWith('***working...***');436 });437 it('recovers from progressback exceptions', function () {438 var d = $q.defer();439 var progressSpy = jasmine.createSpy();440 var fulfilledSpy = jasmine.createSpy();441 d.promise.then(null, null, function (progress) {442 throw 'fail';443 });444 d.promise.then(fulfilledSpy, null, progressSpy);445 d.notify('working...');446 d.resolve('ok');447 $rootScope.$apply();448 expect(progressSpy).toHaveBeenCalledWith('working...');449 expect(fulfilledSpy).toHaveBeenCalledWith('ok');450 });451 it('can notify progress through promise returned from handler', function () {452 var d = $q.defer();453 var progressSpy = jasmine.createSpy();454 d.promise.then(null, null, progressSpy);455 var d2 = $q.defer();456 d.resolve(d2.promise);457 d2.notify('working...');458 $rootScope.$apply();459 expect(progressSpy).toHaveBeenCalledWith('working...');460 });461 it('allows attaching progressback in finally', function () {462 var d = $q.defer();463 var progressSpy = jasmine.createSpy();464 d.promise.finally(null, progressSpy);465 d.notify('working...');466 $rootScope.$apply();467 expect(progressSpy).toHaveBeenCalledWith('working...');468 });469 it('can make an immediately rejected promise', function () {470 var fulfilledSpy = jasmine.createSpy();471 var rejectSpy = jasmine.createSpy();472 var promise = $q.reject('fail');473 promise.then(fulfilledSpy, rejectSpy);474 $rootScope.$apply();475 expect(fulfilledSpy).not.toHaveBeenCalled();476 expect(rejectSpy).toHaveBeenCalledWith('fail');477 });478 it('can make an immediately resolved promise', function () {479 var fulfilledSpy = jasmine.createSpy();480 var rejectedSpy = jasmine.createSpy();481 var promise = $q.when('ok');482 promise.then(fulfilledSpy, rejectedSpy);483 $rootScope.$apply();484 expect(fulfilledSpy).toHaveBeenCalledWith('ok');485 expect(rejectedSpy).not.toHaveBeenCalled();486 });487 it('can wrap a foreign promise', function () {488 var fulfilledSpy = jasmine.createSpy();489 var rejectedSpy = jasmine.createSpy();490 var promise = $q.when({491 then: function (handler) {492 $rootScope.$evalAsync(function () {493 handler('ok');494 });495 }496 });497 promise.then(fulfilledSpy, rejectedSpy);498 $rootScope.$apply();499 expect(fulfilledSpy).toHaveBeenCalledWith('ok');500 expect(rejectedSpy).not.toHaveBeenCalled();501 });502 it('takes callbacks directly when wrapping', function () {503 var fulfilledSpy = jasmine.createSpy();504 var rejectedSpy = jasmine.createSpy();505 var progressSpy = jasmine.createSpy();506 var wrapped = $q.defer();507 $q.when(508 wrapped.promise,509 fulfilledSpy,510 rejectedSpy,511 progressSpy512 );513 wrapped.notify('working...');514 wrapped.resolve('ok');515 $rootScope.$apply();516 expect(fulfilledSpy).toHaveBeenCalledWith('ok');517 expect(rejectedSpy).not.toHaveBeenCalled();518 expect(progressSpy).toHaveBeenCalledWith('working...');519 });520 it('makes an immediately resolved promise with resolve', function () {521 var fulfilledSpy = jasmine.createSpy();522 var rejectedSpy = jasmine.createSpy();523 var promise = $q.resolve('ok');524 promise.then(fulfilledSpy, rejectedSpy);525 $rootScope.$apply();526 expect(fulfilledSpy).toHaveBeenCalledWith('ok');527 expect(rejectedSpy).not.toHaveBeenCalled();528 });529 describe('all', function () {530 it('can resolve an array of promises to array of results', function () {531 var promise = $q.all([$q.when(1), $q.when(2), $q.when(3)]);532 var fulfilledSpy = jasmine.createSpy();533 promise.then(fulfilledSpy);534 $rootScope.$apply();535 expect(fulfilledSpy).toHaveBeenCalledWith([1,2,3]);536 });537 it('can resolve an object of promises to an object of results', function () {538 var promise = $q.all({a: $q.when(1), b: $q.when(2)});539 var fulfilledSpy = jasmine.createSpy();540 promise.then(fulfilledSpy);541 $rootScope.$apply();542 expect(fulfilledSpy).toHaveBeenCalledWith({a: 1, b: 2});543 });544 it('resolves an empty array of promises immediately', function () {545 var promise = $q.all([]);546 var fulfilledSpy = jasmine.createSpy();547 promise.then(fulfilledSpy);548 $rootScope.$apply();549 expect(fulfilledSpy).toHaveBeenCalledWith([]);550 });551 it('resolves an empty object of promises immediately', function () {552 var promise = $q.all({});553 var fulfilledSpy = jasmine.createSpy();554 promise.then(fulfilledSpy);555 $rootScope.$apply();556 expect(fulfilledSpy).toHaveBeenCalledWith({});557 });558 it('rejects when any of the promises rejects', function () {559 // var promise = $q.all([$q.when(1), $q.when(2), $q.reject('fail')]);560 // var fulfilledSpy = jasmine.createSpy();561 // var rejectedSpy = jasmine.createSpy();562 // promise.then(fulfilledSpy, rejectedSpy);563 // $rootScope.$apply();564 // expect(fulfilledSpy).not.toHaveBeenCalled();565 // expect(rejectedSpy).toHaveBeenCalledWith('fail');566 });567 it('wraps non-promise in the input colletion', function () {568 var promise = $q.all([$q.when(1),2,3]);569 var fulfilledSpy = jasmine.createSpy();570 promise.then(fulfilledSpy);571 $rootScope.$apply();572 expect(fulfilledSpy).toHaveBeenCalledWith([1,2,3]);573 });574 });575 describe('ES2015 style', function () {576 it('is a function', function () {577 expect($q instanceof Function).toBe(true);578 });579 it('expects a function as an argument', function () {580 expect($q).toThrow();581 $q(_.noop);582 });583 it('returns a promises', function () {584 expect($q(_.noop)).toBeDefined();585 expect($q(_.noop).then).toBeDefined();586 });587 it('calls function with a resolve function', function () {588 var fulfilledSpy = jasmine.createSpy();589 $q(function (resolve) {590 resolve('ok');591 }).then(fulfilledSpy);592 $rootScope.$apply();593 expect(fulfilledSpy).toHaveBeenCalledWith('ok');594 });595 it('calls function with a reject funtion', function () {596 var fulfiledSpy = jasmine.createSpy();597 var rejectedSpy = jasmine.createSpy();598 $q(function (resolve, reject) {599 reject('fail');600 }).then(fulfiledSpy, rejectedSpy);601 $rootScope.$apply();602 expect(fulfiledSpy).not.toHaveBeenCalled();603 expect(rejectedSpy).toHaveBeenCalledWith('fail');604 });605 });606 describe('$$q', function () {607 beforeEach(function () {608 jasmine.clock().install();609 });610 afterEach(function () {611 jasmine.clock().uninstall();612 });613 it('uses deferreds that do not resolve at digest', function () {614 var d = $$q.defer();615 var fulfilledSpy = jasmine.createSpy();616 d.promise.then(fulfilledSpy);617 d.resolve('ok');618 $rootScope.$apply();619 expect(fulfilledSpy).not.toHaveBeenCalled();620 });621 it('uses deferreds that resolve later', function () {622 var d = $$q.defer();623 var fulfilledSpy = jasmine.createSpy();624 d.promise.then(fulfilledSpy);625 d.resolve('ok');626 jasmine.clock().tick(1);627 expect(fulfilledSpy).toHaveBeenCalledWith('ok');628 });629 it('does not invoke digest', function () {630 var d = $$q.defer();631 d.promise.then(_.noop);632 d.resolve('ok');633 var watchSpy = jasmine.createSpy();634 $rootScope.$watch(watchSpy);635 jasmine.clock().tick(1);636 expect(watchSpy).not.toHaveBeenCalled();637 });638 });...
simple_fakes.js
Source:simple_fakes.js
...40 this.variants = [];41 /** @type {shaka.extern.AbrManager.SwitchCallback} */42 this.switchCallback = null;43 /** @type {!jasmine.Spy} */44 this.init = jasmine.createSpy('init').and.callFake((switchCallback) => {45 this.switchCallback = switchCallback;46 });47 /** @type {!jasmine.Spy} */48 this.stop = jasmine.createSpy('stop');49 /** @type {!jasmine.Spy} */50 this.enable = jasmine.createSpy('enable');51 /** @type {!jasmine.Spy} */52 this.disable = jasmine.createSpy('disable');53 /** @type {!jasmine.Spy} */54 this.segmentDownloaded = jasmine.createSpy('segmentDownloaded');55 /** @type {!jasmine.Spy} */56 this.getBandwidthEstimate = jasmine.createSpy('getBandwidthEstimate');57 /** @type {!jasmine.Spy} */58 this.chooseVariant = jasmine.createSpy('chooseVariant').and.callFake(() => {59 return this.variants[this.chooseIndex];60 });61 /** @type {!jasmine.Spy} */62 this.setVariants = jasmine.createSpy('setVariants').and.callFake((arg) => {63 this.variants = arg;64 });65 /** @type {!jasmine.Spy} */66 this.playbackRateChanged = jasmine.createSpy('playbackRateChanged');67 /** @type {!jasmine.Spy} */68 this.configure = jasmine.createSpy('configure');69 }70};71/** @extends {shaka.media.StreamingEngine} */72shaka.test.FakeStreamingEngine = class {73 constructor() {74 let activeVariant = null;75 let activeText = null;76 /** @type {!jasmine.Spy} */77 this.destroy = jasmine.createSpy('destroy').and.callFake(() => {78 activeVariant = null;79 activeText = null;80 return Promise.resolve();81 });82 /** @type {!jasmine.Spy} */83 this.configure = jasmine.createSpy('configure');84 /** @type {!jasmine.Spy} */85 this.seeked = jasmine.createSpy('seeked');86 /** @type {!jasmine.Spy} */87 this.getCurrentVariant =88 jasmine.createSpy('getCurrentVariant').and.callFake(89 () => activeVariant);90 /** @type {!jasmine.Spy} */91 this.getCurrentTextStream =92 jasmine.createSpy('getCurrentTextStream').and.callFake(93 () => activeText);94 /** @type {!jasmine.Spy} */95 this.unloadTextStream =96 jasmine.createSpy('unloadTextStream').and.callFake(() => {97 activeText = null;98 });99 /** @type {!jasmine.Spy} */100 this.start = jasmine.createSpy('start');101 /** @type {!jasmine.Spy} */102 this.switchVariant =103 jasmine.createSpy('switchVariant').and.callFake((variant) => {104 activeVariant = variant;105 });106 /** @type {!jasmine.Spy} */107 this.switchTextStream =108 jasmine.createSpy('switchTextStream').and.callFake((textStream) => {109 activeText = textStream;110 });111 }112};113/** @extends {shaka.extern.ManifestParser} */114shaka.test.FakeManifestParser = class {115 /** @param {shaka.extern.Manifest} manifest */116 constructor(manifest) {117 /** @type {shaka.extern.ManifestParser.PlayerInterface} */118 this.playerInterface = null;119 /** @type {!jasmine.Spy} */120 this.start = jasmine.createSpy('start').and.callFake(121 async (manifestUri, playerInterface) => {122 this.playerInterface = playerInterface;123 await Promise.resolve();124 return manifest;125 });126 /** @type {!jasmine.Spy} */127 this.stop = jasmine.createSpy('stop').and.returnValue(Promise.resolve());128 /** @type {!jasmine.Spy} */129 this.configure = jasmine.createSpy('configure');130 /** @type {!jasmine.Spy} */131 this.update = jasmine.createSpy('update');132 /** @type {!jasmine.Spy} */133 this.onExpirationUpdated = jasmine.createSpy('onExpirationUpdated');134 }135};136/** @extends {HTMLVideoElement} */137shaka.test.FakeVideo = class {138 /** @param {number=} currentTime */139 constructor(currentTime) {140 /** @const {!Object.<string, !Function>} */141 this.on = {}; // event listeners142 /** @type {!Array.<!TextTrack>} */143 this.textTracks = [];144 this.currentTime = currentTime || 0;145 this.readyState = 0;146 this.playbackRate = 1;147 this.volume = 1;148 this.muted = false;149 this.loop = false;150 this.autoplay = false;151 this.paused = false;152 this.buffered = createFakeBuffered([]);153 this.src = '';154 this.offsetWidth = 1000;155 this.offsetHeight = 1000;156 /** @type {!jasmine.Spy} */157 this.addTextTrack =158 jasmine.createSpy('addTextTrack').and.callFake((kind, id) => {159 const track = new shaka.test.FakeTextTrack();160 this.textTracks.push(track);161 return track;162 });163 /** @type {!jasmine.Spy} */164 this.setMediaKeys =165 jasmine.createSpy('createMediaKeys').and.returnValue(Promise.resolve());166 /** @type {!jasmine.Spy} */167 this.addEventListener =168 jasmine.createSpy('addEventListener').and.callFake((name, callback) => {169 this.on[name] = callback;170 });171 /** @type {!jasmine.Spy} */172 this.removeEventListener = jasmine.createSpy('removeEventListener');173 /** @type {!jasmine.Spy} */174 this.removeAttribute = jasmine.createSpy('removeAttribute');175 /** @type {!jasmine.Spy} */176 this.load = jasmine.createSpy('load');177 /** @type {!jasmine.Spy} */178 this.play = jasmine.createSpy('play');179 /** @type {!jasmine.Spy} */180 this.pause = jasmine.createSpy('pause');181 /** @type {!jasmine.Spy} */182 this.dispatchEvent = jasmine.createSpy('dispatchEvent');183 }184};185/**186 * Creates a fake buffered ranges object.187 *188 * @param {!Array.<{start: number, end: number}>} ranges189 * @return {!TimeRanges}190 */191function createFakeBuffered(ranges) {192 return /** @type {!TimeRanges} */ ({193 length: ranges.length,194 start: (i) => {195 if (i >= 0 && i < ranges.length) {196 return ranges[i].start;197 }198 throw new Error('Unexpected index');199 },200 end: (i) => {201 if (i >= 0 && i < ranges.length) {202 return ranges[i].end;203 }204 throw new Error('Unexpected index');205 },206 });207}208/** @extends {shaka.media.PresentationTimeline} */209shaka.test.FakePresentationTimeline = class {210 constructor() {211 const getStart = jasmine.createSpy('getSeekRangeStart');212 const getEnd = jasmine.createSpy('getSeekRangeEnd');213 const getSafeStart = jasmine.createSpy('getSafeSeekRangeStart');214 getSafeStart.and.callFake((delay) => {215 const end = shaka.test.Util.invokeSpy(getEnd);216 return Math.min(shaka.test.Util.invokeSpy(getStart) + delay, end);217 });218 /** @type {!jasmine.Spy} */219 this.getDuration = jasmine.createSpy('getDuration');220 /** @type {!jasmine.Spy} */221 this.setDuration = jasmine.createSpy('setDuration');222 /** @type {!jasmine.Spy} */223 this.getDelay = jasmine.createSpy('getDelay');224 /** @type {!jasmine.Spy} */225 this.setDelay = jasmine.createSpy('setDelay');226 /** @type {!jasmine.Spy} */227 this.getPresentationStartTime =228 jasmine.createSpy('getPresentationStartTime');229 /** @type {!jasmine.Spy} */230 this.setClockOffset = jasmine.createSpy('setClockOffset');231 /** @type {!jasmine.Spy} */232 this.setStatic = jasmine.createSpy('setStatic');233 /** @type {!jasmine.Spy} */234 this.notifySegments = jasmine.createSpy('notifySegments');235 /** @type {!jasmine.Spy} */236 this.notifyMaxSegmentDuration =237 jasmine.createSpy('notifyMaxSegmentDuration');238 /** @type {!jasmine.Spy} */239 this.isLive = jasmine.createSpy('isLive');240 /** @type {!jasmine.Spy} */241 this.isInProgress = jasmine.createSpy('isInProgress');242 /** @type {!jasmine.Spy} */243 this.getSegmentAvailabilityStart =244 jasmine.createSpy('getSegmentAvailabilityStart');245 /** @type {!jasmine.Spy} */246 this.getSegmentAvailabilityEnd =247 jasmine.createSpy('getSegmentAvailabilityEnd');248 /** @type {!jasmine.Spy} */249 this.getSeekRangeStart = getStart;250 /** @type {!jasmine.Spy} */251 this.getSafeSeekRangeStart = getSafeStart;252 /** @type {!jasmine.Spy} */253 this.getSeekRangeEnd = getEnd;254 /** @type {!jasmine.Spy} */255 this.getMaxSegmentDuration = jasmine.createSpy('getMaxSegmentDuration');256 }257};258/** @extends {shaka.media.Playhead} */259shaka.test.FakePlayhead = class {260 constructor() {261 /** @type {!jasmine.Spy} */262 this.release = jasmine.createSpy('release');263 /** @type {!jasmine.Spy} */264 this.setRebufferingGoal = jasmine.createSpy('setRebufferingGoal');265 /** @type {!jasmine.Spy} */266 this.setStartTime = jasmine.createSpy('setStartTime');267 /** @type {!jasmine.Spy} */268 this.getTime = jasmine.createSpy('getTime').and.returnValue(0);269 /** @type {!jasmine.Spy} */270 this.setBuffering = jasmine.createSpy('setBuffering');271 /** @type {!jasmine.Spy} */272 this.getPlaybackRate =273 jasmine.createSpy('getPlaybackRate').and.returnValue(1);274 /** @type {!jasmine.Spy} */275 this.setPlaybackRate = jasmine.createSpy('setPlaybackRate');276 }277};278/** @extends {TextTrack} */279shaka.test.FakeTextTrack = class {280 constructor() {281 // The compiler knows TextTrack.cues is const, and we lied and said we282 // "extend" TextTrack, so it won't let us assign to cues here. But we283 // must, because this fake is a from-scratch implementation of the API.284 // This cast-hack works around the issue.285 /** @type {!Array.<TextTrackCue>} */286 const cues = [];287 (/** @type {?} */(this))['cues'] = cues;288 /** @type {!jasmine.Spy} */289 this.addCue = jasmine.createSpy('addCue').and.callFake((cue) => {290 cues.push(cue);291 });292 /** @type {!jasmine.Spy} */293 this.removeCue = jasmine.createSpy('removeCue').and.callFake((cue) => {294 const idx = cues.indexOf(cue);295 expect(idx).not.toBeLessThan(0);296 cues.splice(idx, 1);297 });298 }299};300/**301 * Create a test-focused closed caption parser that requires the creator to302 * provide behaviours for the underlying spies. If no behaviour is provided all303 * calls to the parser will act as NO-OPs.304 *305 * @implements {shaka.media.IClosedCaptionParser}306 * @final307 */308shaka.test.FakeClosedCaptionParser = class {309 constructor() {310 /** @type {!jasmine.Spy} */311 this.initSpy = jasmine.createSpy('init');312 /** @type {!jasmine.Spy} */313 this.parseFromSpy = jasmine.createSpy('parseFrom');314 /** @type {!jasmine.Spy} */315 this.resetSpy = jasmine.createSpy('reset');316 }317 /** @override */318 init() {319 return shaka.test.Util.invokeSpy(this.initSpy);320 }321 /** @override */322 parseFrom(data) {323 return shaka.test.Util.invokeSpy(this.parseFromSpy, data);324 }325 /** @override */326 reset() {327 return shaka.test.Util.invokeSpy(this.resetSpy);328 }329};330/** @extends {shaka.media.SegmentIndex} */331shaka.test.FakeSegmentIndex = class {332 constructor() {333 /** @type {!jasmine.Spy} */334 this.release = jasmine.createSpy('release');335 /** @type {!jasmine.Spy} */336 this.find = jasmine.createSpy('find').and.returnValue(null);337 /** @type {!jasmine.Spy} */338 this.get = jasmine.createSpy('get').and.returnValue(null);339 /** @type {!jasmine.Spy} */340 this.offset = jasmine.createSpy('offset');341 /** @type {!jasmine.Spy} */342 this.merge = jasmine.createSpy('merge');343 /** @type {!jasmine.Spy} */344 this.replace = jasmine.createSpy('replace');345 /** @type {!jasmine.Spy} */346 this.evict = jasmine.createSpy('evict');347 /** @type {!jasmine.Spy} */348 this.fit = jasmine.createSpy('fit');349 /** @type {!jasmine.Spy} */350 this.updateEvery = jasmine.createSpy('updateEvery');351 /** @type {!jasmine.Spy} */352 this[Symbol.iterator] = jasmine.createSpy('Symbol.iterator')353 .and.callFake(() => this.getIteratorForTime(0));354 /** @type {!jasmine.Spy} */355 this.getIteratorForTime = jasmine.createSpy('getIteratorForTime')356 .and.callFake((time) => {357 let nextPosition = this.find(time);358 return {359 next: () => {360 const value = this.get(nextPosition++);361 return {362 value,363 done: !value,364 };365 },366 current: () => {367 return this.get(nextPosition - 1);368 },369 seek: (time) => {370 nextPosition = this.find(time);371 return this.get(nextPosition++);372 },373 };374 });375 }376};377/** @extends {shaka.media.Transmuxer} */378shaka.test.FakeTransmuxer = class {379 constructor() {380 const output = {381 data: new Uint8Array(),382 captions: [],383 };384 /** @type {!jasmine.Spy} */385 this.destroy =386 jasmine.createSpy('destroy').and.returnValue(Promise.resolve());387 /** @type {!jasmine.Spy} */388 this.transmux =389 jasmine.createSpy('transmux').and.returnValue(Promise.resolve(output));390 }...
shipping.test.js
Source:shipping.test.js
...13define(['squire', 'ko', 'jquery', 'uiRegistry', 'jquery/validate'], function (Squire, ko, $, registry) {14 'use strict';15 var injector = new Squire(),16 modalStub = {17 openModal: jasmine.createSpy(),18 closeModal: jasmine.createSpy()19 },20 mocks = {21 'Magento_Customer/js/model/customer': {22 isLoggedIn: ko.observable()23 },24 'Magento_Customer/js/model/address-list': ko.observableArray(),25 'Magento_Checkout/js/model/address-converter': jasmine.createSpy(),26 'Magento_Checkout/js/model/quote': {27 isVirtual: jasmine.createSpy(),28 shippingMethod: ko.observable(),29 /**30 * Stub31 */32 shippingAddress: function () {33 return {34 'countryId': 'AD'35 };36 }37 },38 'Magento_Checkout/js/action/create-shipping-address': jasmine.createSpy().and.returnValue(39 jasmine.createSpyObj('newShippingAddress', ['getKey'])40 ),41 'Magento_Checkout/js/action/select-shipping-address': jasmine.createSpy(),42 'Magento_Checkout/js/model/shipping-rates-validator': jasmine.createSpy(),43 'Magento_Checkout/js/model/shipping-address/form-popup-state': {44 isVisible: ko.observable()45 },46 'Magento_Checkout/js/model/shipping-service': jasmine.createSpyObj('service', ['getShippingRates']),47 'Magento_Checkout/js/action/select-shipping-method': jasmine.createSpy(),48 'Magento_Checkout/js/model/shipping-rate-registry': jasmine.createSpy(),49 'Magento_Checkout/js/action/set-shipping-information': jasmine.createSpy(),50 'Magento_Checkout/js/model/step-navigator': jasmine.createSpyObj('navigator', ['registerStep']),51 'Magento_Ui/js/modal/modal': jasmine.createSpy('modal').and.returnValue(modalStub),52 'Magento_Checkout/js/model/checkout-data-resolver': jasmine.createSpyObj(53 'dataResolver',54 ['resolveShippingAddress']55 ),56 'Magento_Checkout/js/checkout-data': jasmine.createSpyObj(57 'checkoutData',58 ['setSelectedShippingAddress', 'setNewCustomerShippingAddress', 'setSelectedShippingRate']59 ),60 'Magento_Ui/js/lib/registry/registry': registry,61 'Magento_Checkout/js/model/shipping-rate-service': jasmine.createSpy()62 },63 obj;64 beforeEach(function (done) {65 injector.mock(mocks);66 injector.require(['Magento_Checkout/js/view/shipping'], function (Constr) {67 obj = new Constr({68 provider: 'provName',69 name: '',70 parentName: 'test',71 index: '',72 popUpForm: {73 options: {74 buttons: {75 save: {},76 cancel: {}77 }78 }79 }80 });81 done();82 });83 });84 afterEach(function () {85 try {86 injector.clean();87 injector.remove();88 } catch (e) {}89 });90 describe('Magento_Checkout/js/view/shipping', function () {91 describe('"navigate" method', function () {92 it('Check for return value.', function () {93 var step = {94 isVisible: ko.observable(false)95 };96 expect(obj.navigate(step)).toBeUndefined();97 expect(step.isVisible()).toBe(true);98 });99 });100 describe('"getPopUp" method', function () {101 it('Check for return value.', function () {102 expect(obj.getPopUp()).toBe(modalStub);103 expect(mocks['Magento_Ui/js/modal/modal']).toHaveBeenCalled();104 mocks['Magento_Ui/js/modal/modal'].calls.reset();105 });106 it('Check on single modal call', function () {107 expect(obj.getPopUp()).toBe(modalStub);108 expect(mocks['Magento_Ui/js/modal/modal']).not.toHaveBeenCalled();109 });110 });111 describe('"showFormPopUp" method', function () {112 it('Check method call.', function () {113 expect(obj.showFormPopUp()).toBeUndefined();114 expect(obj.isFormPopUpVisible()).toBeTruthy();115 expect(modalStub.openModal).toHaveBeenCalled();116 });117 });118 describe('"saveNewAddress" method', function () {119 it('Check method call with invalid form data.', function () {120 obj.source = {121 get: jasmine.createSpy().and.returnValue(true),122 set: jasmine.createSpy(),123 trigger: jasmine.createSpy()124 };125 expect(obj.saveNewAddress()).toBeUndefined();126 expect(obj.isNewAddressAdded()).toBeFalsy();127 expect(modalStub.closeModal).not.toHaveBeenCalled();128 });129 it('Check method call with valid form data.', function () {130 obj.source = {131 get: jasmine.createSpy().and.returnValues(true, false, {}),132 set: jasmine.createSpy(),133 trigger: jasmine.createSpy()134 };135 expect(obj.saveNewAddress()).toBeUndefined();136 expect(obj.isNewAddressAdded()).toBeTruthy();137 expect(modalStub.closeModal).toHaveBeenCalled();138 });139 });140 describe('"selectShippingMethod" method', function () {141 it('Check method call.', function () {142 var shippingMethod = {143 'carrier_code': 'carrier',144 'method_code': 'method'145 };146 expect(obj.selectShippingMethod(shippingMethod)).toBeTruthy();147 expect(mocks['Magento_Checkout/js/checkout-data'].setSelectedShippingRate)148 .toHaveBeenCalledWith('carrier_method');149 });150 });151 describe('"setShippingInformation" method', function () {152 it('Check method call.', function () {153 spyOn(obj, 'validateShippingInformation').and.returnValue(false);154 expect(obj.setShippingInformation()).toBeUndefined();155 });156 });157 describe('"validateShippingInformation" method', function () {158 it('Check method call on negative cases.', function () {159 var country = {160 'indexedOptions': {161 'AD':162 {163 label: 'Andorra',164 labeltitle: 'Andorra',165 value: 'AD'166 }167 }168 };169 registry.set('test.shippingAddress.shipping-address-fieldset.country_id', country);170 registry.set('checkout.errors', {});171 obj.source = {172 get: jasmine.createSpy().and.returnValue(true),173 set: jasmine.createSpy(),174 trigger: jasmine.createSpy()175 };176 expect(obj.validateShippingInformation()).toBeFalsy();177 expect(obj.errorValidationMessage()).toBe(178 'The shipping method is missing. Select the shipping method and try again.'179 );180 spyOn(mocks['Magento_Checkout/js/model/quote'], 'shippingMethod').and.returnValue(true);181 spyOn(mocks['Magento_Customer/js/model/customer'], 'isLoggedIn').and.returnValue(true);182 expect(obj.validateShippingInformation()).toBeFalsy();183 });184 it('Check method call on positive case.', function () {185 $('body').append('<form data-role="email-with-possible-login">' +186 '<input type="text" name="username" />' +187 '</form>');188 obj.source = {189 get: jasmine.createSpy().and.returnValue(true),190 set: jasmine.createSpy(),191 trigger: jasmine.createSpy()192 };193 obj.isFormInline = false;194 spyOn(mocks['Magento_Checkout/js/model/quote'], 'shippingMethod').and.returnValue(true);195 spyOn(mocks['Magento_Customer/js/model/customer'], 'isLoggedIn').and.returnValue(false);196 spyOn($.fn, 'valid').and.returnValue(true);197 expect(obj.validateShippingInformation()).toBeTruthy();198 });199 });200 describe('"triggerShippingDataValidateEvent" method', function () {201 it('Check method call.', function () {202 obj.source = {203 get: jasmine.createSpy().and.returnValue(true),204 set: jasmine.createSpy(),205 trigger: jasmine.createSpy()206 };207 expect(obj.triggerShippingDataValidateEvent()).toBeUndefined();208 });209 });210 });...
mocks.js
Source:mocks.js
1;(function() {2 Pusher.Mocks = {3 getScriptRequest: function() {4 return {5 send: jasmine.createSpy("send"),6 cleanup: jasmine.createSpy("cleanup")7 };8 },9 getDocument: function() {10 return {11 location: {12 protocol: "http:"13 },14 getElementsByTagName: jasmine.createSpy("getElementsByTagName"),15 createElement: jasmine.createSpy("createElement"),16 addEventListener: jasmine.createSpy("addEventListener")17 };18 },19 getDocumentElement: function() {20 return {21 setAttribute: jasmine.createSpy("setAttribute"),22 addEventListener: jasmine.createSpy("addEventListener"),23 insertBefore: jasmine.createSpy("insertBefore"),24 appendChild: jasmine.createSpy("appendChild")25 };26 },27 getXHR: function() {28 return {29 open: jasmine.createSpy("open"),30 send: jasmine.createSpy("send"),31 abort: jasmine.createSpy("abort"),32 setRequestHeader: jasmine.createSpy("setRequestHeader")33 };34 },35 getWebSocket: function() {36 return {37 send: jasmine.createSpy("send"),38 close: jasmine.createSpy("close")39 };40 },41 getHTTPSocket: function() {42 var socket = new Pusher.EventsDispatcher();43 socket.close = jasmine.createSpy("close");44 socket.sendRaw = jasmine.createSpy("sendRaw");45 socket.onChunk = jasmine.createSpy("onChunk");46 socket.onClose = jasmine.createSpy("onClose");47 socket.reconnect = jasmine.createSpy("sendRaw");48 return socket;49 },50 getHTTPRequest: function(method, url) {51 var request = new Pusher.EventsDispatcher();52 request.start = jasmine.createSpy("start");53 request.close = jasmine.createSpy("close");54 request.method = method;55 request.url = url;56 return request;57 },58 getDependencies: function() {59 return {60 load: jasmine.createSpy("load"),61 getRoot: jasmine.createSpy("getRoot"),62 getPath: jasmine.createSpy("getPath")63 };64 },65 getJSONPSender: function() {66 return {67 send: jasmine.createSpy("send")68 };69 },70 getTimeline: function() {71 return {72 log: jasmine.createSpy("log"),73 error: jasmine.createSpy("error"),74 info: jasmine.createSpy("info"),75 debug: jasmine.createSpy("debug"),76 send: jasmine.createSpy("send"),77 isEmpty: jasmine.createSpy("isEmpty"),78 generateUniqueID: jasmine.createSpy("generateUniqueID")79 };80 },81 getTimelineSender: function() {82 var sender = {83 isEncrypted: jasmine.createSpy("isEncrypted"),84 send: jasmine.createSpy("send")85 };86 sender.getEncrypted = jasmine.createSpy("getEncrypted").andReturn(sender);87 return sender;88 },89 getTransport: function() {90 var transport = new Pusher.EventsDispatcher();91 transport.handlesActivityChecks = jasmine.createSpy("handlesActivityChecks")92 .andReturn(false);93 transport.supportsPing = jasmine.createSpy("supportsPing")94 .andReturn(false);95 transport.initialize = jasmine.createSpy("initialize")96 .andCallFake(function() {97 transport.state = "initializing";98 transport.emit("initializing");99 });100 transport.connect = jasmine.createSpy("connect");101 transport.send = jasmine.createSpy("send")102 .andReturn(true);103 transport.ping = jasmine.createSpy("ping");104 transport.close = jasmine.createSpy("close");105 transport.state = undefined;106 return transport;107 },108 getTransportManager: function(alive) {109 return {110 isAlive: jasmine.createSpy("isAlive").andReturn(alive !== false),111 reportDeath: jasmine.createSpy("reportDeath")112 };113 },114 getAssistantToTheTransportManager: function(transport) {115 return {116 createConnection: jasmine.createSpy("createConnection")117 .andReturn(transport || Pusher.Mocks.getTransport()),118 isSupported: jasmine.createSpy("isSupported")119 .andReturn(true)120 };121 },122 getTransportClass: function(supported, transport) {123 var klass = {};124 klass.isSupported = jasmine.createSpy("isSupported")125 .andReturn(supported);126 klass.createConnection = jasmine.createSpy("createConnection")127 .andReturn(transport || Pusher.Mocks.getTransport());128 return klass;129 },130 getHandshake: function(transport, callback) {131 return {132 close: jasmine.createSpy("close"),133 _transport: transport,134 _callback: callback135 };136 },137 getStrategy: function(isSupported) {138 var strategy = new Pusher.EventsDispatcher();139 strategy._abort = jasmine.createSpy();140 strategy._forceMinPriority = jasmine.createSpy();141 strategy._callback = null;142 strategy.isSupported = jasmine.createSpy("isSupported")143 .andReturn(isSupported);144 strategy.connect = jasmine.createSpy("connect")145 .andCallFake(function(minPriority, callback) {146 strategy._callback = callback;147 return {148 abort: strategy._abort,149 forceMinPriority: strategy._forceMinPriority150 };151 });152 return strategy;153 },154 getStrategies: function(isSupportedList) {155 var strategies = [];156 for (var i = 0; i < isSupportedList.length; i++) {157 strategies.push(Pusher.Mocks.getStrategy(isSupportedList[i]));158 }159 return strategies;160 },161 getConnection: function() {162 var connection = new Pusher.EventsDispatcher();163 connection.initialize = jasmine.createSpy("initialize");164 connection.connect = jasmine.createSpy("connect");165 connection.handlesActivityChecks = jasmine.createSpy("handlesActivityChecks")166 .andReturn(false);167 connection.supportsPing = jasmine.createSpy("supportsPing")168 .andReturn(false);169 connection.send = jasmine.createSpy("send")170 .andReturn(true);171 connection.ping = jasmine.createSpy("ping")172 .andReturn(true);173 connection.send_event = jasmine.createSpy("send_event")174 .andReturn(true);175 connection.close = jasmine.createSpy("close");176 return connection;177 },178 getConnectionManager: function(socket_id) {179 var manager = new Pusher.EventsDispatcher();180 manager.socket_id = socket_id || "1.1";181 manager.connect = jasmine.createSpy("connect");182 manager.disconnect = jasmine.createSpy("disconnect");183 manager.send_event = jasmine.createSpy("send_event");184 manager.isEncrypted = jasmine.createSpy("isEncrypted").andReturn(false);185 return manager;186 },187 getPusher: function(config) {188 var pusher = new Pusher.EventsDispatcher();189 pusher.config = config;190 pusher.send_event = jasmine.createSpy("send_event");191 return pusher;192 },193 getChannel: function(name) {194 var channel = new Pusher.EventsDispatcher();195 channel.name = name;196 channel.authorize = jasmine.createSpy("authorize");197 channel.disconnect = jasmine.createSpy("disconnect");198 channel.handleEvent = jasmine.createSpy("handleEvent");199 channel.subscribe = jasmine.createSpy("subscribe");200 channel.unsubscribe = jasmine.createSpy("unsubscribe");201 return channel;202 },203 getAuthorizer: function() {204 var authorizer = {};205 authorizer._callback = null;206 authorizer.authorize = jasmine.createSpy("authorize").andCallFake(function(_, callback) {207 authorizer._callback = callback;208 });209 return authorizer;210 }211 };...
shipping-estimation.test.js
Source:shipping-estimation.test.js
...6define(['squire', 'ko'], function (Squire, ko) {7 'use strict';8 var injector = new Squire(),9 checkoutProvider = {10 on: jasmine.createSpy()11 },12 mocks = {13 'Magento_Checkout/js/action/select-shipping-address': jasmine.createSpy(),14 'Magento_Checkout/js/model/address-converter': {15 formAddressDataToQuoteAddress: jasmine.createSpy()16 },17 'Magento_Checkout/js/model/cart/estimate-service': jasmine.createSpy(),18 'Magento_Checkout/js/checkout-data': jasmine.createSpy(),19 'Magento_Checkout/js/model/shipping-rates-validator': {20 bindChangeHandlers: jasmine.createSpy()21 },22 'uiRegistry': {23 async: jasmine.createSpy().and.returnValue(function (callback) {24 callback(checkoutProvider);25 }),26 create: jasmine.createSpy(),27 get: jasmine.createSpy(),28 set: jasmine.createSpy()29 },30 'Magento_Checkout/js/model/quote': {31 isVirtual: jasmine.createSpy(),32 shippingAddress: jasmine.createSpy()33 },34 'Magento_Checkout/js/model/checkout-data-resolver': {35 resolveEstimationAddress: jasmine.createSpy()36 },37 'mage/validation': jasmine.createSpy()38 },39 obj;40 beforeEach(function (done) {41 injector.mock(mocks);42 injector.require(['Magento_Checkout/js/view/cart/shipping-estimation'], function (Constr) {43 obj = new Constr({44 provider: 'provName',45 name: '',46 index: ''47 });48 done();49 });50 });51 afterEach(function () {52 try {53 injector.clean();54 injector.remove();55 } catch (e) {}56 });57 describe('Magento_Checkout/js/view/cart/shipping-estimation', function () {58 describe('"initElement" method', function () {59 it('Check for return value and element that initiated.', function () {60 var element = jasmine.createSpyObj('element', ['initContainer']);61 expect(obj.initElement(element)).toBe(obj);62 expect(mocks['Magento_Checkout/js/model/shipping-rates-validator'].bindChangeHandlers)63 .not.toHaveBeenCalled();64 });65 it('Check shipping rates validator call.', function () {66 var element = {67 index: 'address-fieldsets',68 elems: ko.observable(),69 initContainer: jasmine.createSpy()70 };71 spyOn(element.elems, 'subscribe');72 obj.initElement(element);73 expect(mocks['Magento_Checkout/js/model/shipping-rates-validator'].bindChangeHandlers)74 .toHaveBeenCalledWith(element.elems(), true, 500);75 expect(element.elems.subscribe)76 .toHaveBeenCalledWith(jasmine.any(Function));77 });78 });79 describe('"getEstimationInfo" method', function () {80 it('Check for invalid form data.', function () {81 obj.source = {82 get: jasmine.createSpy().and.returnValue(true),83 set: jasmine.createSpy(),84 trigger: jasmine.createSpy()85 };86 expect(obj.getEstimationInfo()).toBeUndefined();87 expect(obj.source.get).toHaveBeenCalledWith('params.invalid');88 expect(obj.source.get).not.toHaveBeenCalledWith('shippingAddress');89 expect(obj.source.set).toHaveBeenCalledWith('params.invalid', false);90 expect(obj.source.trigger).toHaveBeenCalledWith('shippingAddress.data.validate');91 expect(mocks['Magento_Checkout/js/action/select-shipping-address']).not.toHaveBeenCalled();92 obj.source = {};93 });94 it('Check for vaild form data.', function () {95 obj.source = {96 get: jasmine.createSpy().and.returnValues(false, {}),97 set: jasmine.createSpy(),98 trigger: jasmine.createSpy()99 };100 expect(obj.getEstimationInfo()).toBeUndefined();101 expect(obj.source.get).toHaveBeenCalledWith('params.invalid');102 expect(obj.source.get).toHaveBeenCalledWith('shippingAddress');103 expect(obj.source.set).toHaveBeenCalledWith('params.invalid', false);104 expect(obj.source.trigger).toHaveBeenCalledWith('shippingAddress.data.validate');105 expect(mocks['Magento_Checkout/js/action/select-shipping-address']).toHaveBeenCalled();106 obj.source = {};107 });108 });109 });...
color-picker.test.js
Source:color-picker.test.js
...26 it('Should call spectrum on $input with disabled configuration if view model disabled', function () {27 var value = {28 configStuffInHere: true29 },30 valueAccessor = jasmine.createSpy().and.returnValue(value),31 viewModel = {32 disabled: jasmine.createSpy().and.returnValue(true)33 };34 $.fn.spectrum = jasmine.createSpy();35 $input = jasmine.createSpy();36 ko.bindingHandlers.colorPicker.init($input, valueAccessor, null, viewModel);37 expect(value.change).toEqual(jasmine.any(Function));38 expect(value.hide).toEqual(jasmine.any(Function));39 expect(value.show).toEqual(jasmine.any(Function));40 expect(value.change).toBe(value.hide);41 expect($.fn.spectrum.calls.allArgs()).toEqual([[value], ['disable']]);42 expect(viewModel.disabled).toHaveBeenCalled();43 $.fn.init = jasmine.createSpy().and.returnValue($.fn);44 ko.bindingHandlers.colorPicker.init($input, valueAccessor, null, viewModel);45 expect($.fn.init).toHaveBeenCalledWith($input, undefined);46 });47 it('Should call spectrum on $input with extra configuration if view model enabled', function () {48 var value = {49 configStuffInHere: true50 },51 valueAccessor = jasmine.createSpy().and.returnValue(value),52 viewModel = {53 disabled: jasmine.createSpy().and.returnValue(false)54 };55 $.fn.spectrum = jasmine.createSpy();56 $input = jasmine.createSpy();57 ko.bindingHandlers.colorPicker.init($input, valueAccessor, null, viewModel);58 expect(value.change).toEqual(jasmine.any(Function));59 expect(value.hide).toEqual(jasmine.any(Function));60 expect(value.show).toEqual(jasmine.any(Function));61 expect(value.change).toBe(value.hide);62 expect($.fn.spectrum.calls.allArgs()).toEqual([[value], ['enable']]);63 expect(viewModel.disabled).toHaveBeenCalled();64 $.fn.init = jasmine.createSpy().and.returnValue($.fn);65 ko.bindingHandlers.colorPicker.init($input, valueAccessor, null, viewModel);66 expect($.fn.init).toHaveBeenCalledWith($input, undefined);67 });68 it('Verify config value is empty when reset colorpicker intput', function () {69 var value = {70 configStuffInHere: true,71 value: jasmine.createSpy().and.returnValue(undefined)72 },73 valueAccessor = jasmine.createSpy().and.returnValue(value),74 viewModel = {75 disabled: jasmine.createSpy().and.returnValue(false)76 };77 $.fn.spectrum = jasmine.createSpy();78 $input = jasmine.createSpy();79 ko.bindingHandlers.colorPicker.update($input, valueAccessor, null, viewModel);80 expect($.fn.spectrum).toHaveBeenCalledTimes(1);81 expect(valueAccessor().value).toHaveBeenCalledTimes(4);82 value.value = jasmine.createSpy().and.returnValue('');83 ko.bindingHandlers.colorPicker.update($input, valueAccessor, null, viewModel);84 expect($.fn.spectrum).toHaveBeenCalledTimes(3);85 expect(valueAccessor().value).toHaveBeenCalledTimes(5);86 });87 });...
withCredentials.js
Source:withCredentials.js
...3describe("swagger-js plugin - withCredentials", () => {4 it("should have no effect by default", () => {5 const system = {6 fn: {7 fetch: createSpy().andReturn(Promise.resolve())8 },9 getConfigs: () => ({})10 }11 const oriExecute = createSpy()12 const loadedFn = loaded(oriExecute, system)13 loadedFn()14 expect(oriExecute.calls.length).toBe(1)15 expect(system.fn.fetch.withCredentials).toBe(undefined)16 })17 it("should allow setting flag to true via config", () => {18 const system = {19 fn: {20 fetch: createSpy().andReturn(Promise.resolve())21 },22 getConfigs: () => ({23 withCredentials: true24 })25 }26 const oriExecute = createSpy()27 const loadedFn = loaded(oriExecute, system)28 loadedFn()29 expect(oriExecute.calls.length).toBe(1)30 expect(system.fn.fetch.withCredentials).toBe(true)31 })32 33 it("should allow setting flag to false via config", () => {34 const system = {35 fn: {36 fetch: createSpy().andReturn(Promise.resolve())37 },38 getConfigs: () => ({39 withCredentials: false40 })41 }42 const oriExecute = createSpy()43 const loadedFn = loaded(oriExecute, system)44 loadedFn()45 expect(oriExecute.calls.length).toBe(1)46 expect(system.fn.fetch.withCredentials).toBe(false)47 })48 49 it("should allow setting flag to true via config as string", () => {50 // for query string config51 const system = {52 fn: {53 fetch: createSpy().andReturn(Promise.resolve())54 },55 getConfigs: () => ({56 withCredentials: "true"57 })58 }59 const oriExecute = createSpy()60 const loadedFn = loaded(oriExecute, system)61 loadedFn()62 expect(oriExecute.calls.length).toBe(1)63 expect(system.fn.fetch.withCredentials).toBe(true)64 })65 66 it("should allow setting flag to false via config as string", () => {67 // for query string config68 const system = {69 fn: {70 fetch: createSpy().andReturn(Promise.resolve())71 },72 getConfigs: () => ({73 withCredentials: "false"74 })75 }76 const oriExecute = createSpy()77 const loadedFn = loaded(oriExecute, system)78 loadedFn()79 expect(oriExecute.calls.length).toBe(1)80 expect(system.fn.fetch.withCredentials).toBe(false)81 })...
scoresMock.js
Source:scoresMock.js
...18 published: false,19 index: 120 }],21 scoreboard: scoreboard,22 remove: jasmine.createSpy('scoreRemoveSpy'),23 load: jasmine.createSpy('scoreLoadSpy'),24 pollSheets: jasmine.createSpy('scorePollSheetsSpy').and.returnValue($q.when()),25 update: jasmine.createSpy('scoreUpdateSpy'),26 _update: jasmine.createSpy('score_UpdateSpy'),27 save: jasmine.createSpy('scoreSaveSpy'),28 enableAutoRefresh: jasmine.createSpy('enableAutoRefresh'),29 disableAutoRefresh: jasmine.createSpy('disableAutoRefresh'),30 getRankings: jasmine.createSpy('getRankings').and.returnValue(scoreboard),31 };...
Using AI Code Generation
1var sinon = require('sinon');2var spy = sinon.spy();3spy('foo', 'bar');4var sinon = require('sinon');5var stub = sinon.createStubInstance(Clock);6stub.start.returns(42);7var sinon = require('sinon');8var stub = sinon.createStubInstance(Clock);9stub.start.returns(42);10var sinon = require('sinon');11var stub = sinon.createStubInstance(Clock);12stub.start.returns(42);13var sinon = require('sinon');14var stub = sinon.createStubInstance(Clock);15stub.start.returns(42);16var sinon = require('sinon');17var stub = sinon.createStubInstance(Clock);18stub.start.returns(42);
Using AI Code Generation
1var assert = require('assert');2var myModule = require('./myModule.js');3var sinon = require('sinon');4describe('myModule', function() {5 it('should call the callback', function() {6 var callback = sinon.spy();7 myModule.someAsyncCall(callback);8 assert(callback.called);9 });10});11exports.someAsyncCall = function(callback) {12 callback();13};14var assert = require('assert');15var myModule = require('./myModule.js');16var sinon = require('sinon');17describe('myModule', function() {18 it('should call the callback with the correct arguments', function() {19 var callback = sinon.spy();20 myModule.someAsyncCall(callback);21 assert(callback.calledWith('some argument'));22 });23});24var assert = require('assert');25var myModule = require('./myModule.js');26var sinon = require('sinon');27describe('myModule', function() {28 it('should call the callback with the correct arguments', function() {29 var callback = sinon.spy();30 myModule.someAsyncCall(callback);31 assert(callback.calledWith('some argument', 'some other argument'));32 });33});34var assert = require('assert');35var myModule = require('./myModule.js');36var sinon = require('sinon');37describe('myModule', function() {38 it('should call the callback with the correct arguments', function() {39 var callback = sinon.spy();40 myModule.someAsyncCall(callback);41 assert(callback.calledOnce);42 });43});
Using AI Code Generation
1var sinon = require('sinon');2var myObj = {3 myMethod: function() {4 console.log('myMethod called');5 }6}7var spy = sinon.spy(myObj, 'myMethod');8myObj.myMethod();9assert(spy.calledOnce);10assert(spy.calledWith());11var sinon = require('sinon');12var myObj = {13 myMethod: function() {14 console.log('myMethod called');15 }16}17var stub = sinon.stub(myObj, 'myMethod');18myObj.myMethod();19assert(stub.calledOnce);20assert(stub.calledWith());21var sinon = require('sinon');22var myObj = {23 myMethod: function() {24 console.log('myMethod called');25 }26}27var stub = sinon.stub(myObj, 'myMethod');28myObj.myMethod();29assert(stub.calledOnce);30assert(stub.calledWith());
Using AI Code Generation
1describe('test', function() {2 it('test', function() {3 var obj = {4 test: function() {5 console.log('test');6 }7 };8 var spy = sinon.spy(obj, 'test');9 obj.test();10 expect(spy.called).to.be.true;11 });12});
Using AI Code Generation
1var sinon = require('sinon');2var myObject = {3 myMethod: function() {4 console.log('myMethod called');5 }6};7var spy = sinon.spy(myObject, 'myMethod');8myObject.myMethod();9myObject.myMethod();10myObject.myMethod();11var sinon = require('sinon');12var myObject = {13 myMethod: function() {14 console.log('myMethod called');15 }16};17var stub = sinon.stub(myObject, 'myMethod');18myObject.myMethod();19myObject.myMethod();20myObject.myMethod();21var sinon = require('sinon');22var myObject = {23 myMethod: function() {24 console.log('myMethod called');25 }26};27var mock = sinon.mock(myObject);28mock.expects('myMethod').once();29myObject.myMethod();30mock.verify();31var sinon = require('sinon');32var myObject = {33 myMethod: function() {34 console.log('myMethod called');35 }36};37var spy = sinon.spy(myObject, 'myMethod');38myObject.myMethod();39myObject.myMethod();40myObject.myMethod();41var sinon = require('sinon');42var myObject = {43 myMethod: function() {44 console.log('myMethod called');45 }46};47var stub = sinon.stub(myObject, 'myMethod');48myObject.myMethod();49myObject.myMethod();50myObject.myMethod();51var sinon = require('sinon');52var myObject = {53 myMethod: function() {54 console.log('myMethod called');55 }56};
Using AI Code Generation
1var sinon = require('sinon');2var assert = require('assert');3var myObj = {4 myMethod: function() {5 console.log('myMethod called');6 }7};8var spy = sinon.spy(myObj, 'myMethod');9myObj.myMethod();10assert(spy.calledOnce);11spy.restore();12var sinon = require('sinon');13var assert = require('assert');14var myObj = {15 myMethod: function() {16 console.log('myMethod called');17 }18};19var stub = sinon.stub(myObj, 'myMethod');20stub.withArgs('a', 'b').returns(42);21var result = myObj.myMethod('a', 'b');22assert(result === 42);23stub.restore();24var sinon = require('sinon');25var assert = require('assert');26var myObj = {27 myMethod: function() {28 console.log('myMethod called');29 }30};31var stub = sinon.stub(myObj, 'myMethod');32stub.withArgs('a', 'b').returns(42);33var result = myObj.myMethod('a', 'b');34assert(result === 42);35stub.restore();36var sinon = require('sinon');37var assert = require('assert');38var myObj = {39 myMethod: function() {40 console.log('myMethod called');41 }42};43var stub = sinon.stub(myObj, 'myMethod');44stub.withArgs('a', 'b').returns(42);45var result = myObj.myMethod('a', 'b');46assert(result === 42);47stub.restore();48var sinon = require('sinon');49var assert = require('assert');50var myObj = {51 myMethod: function() {52 console.log('myMethod called');53 }54};55var stub = sinon.stub(myObj, 'myMethod');56stub.withArgs('a', 'b').returns(42);57var result = myObj.myMethod('a', 'b');58assert(result === 42);59stub.restore();60var sinon = require('sinon');
Using AI Code Generation
1var createSpy = require('sinon').spy;2var myObj = {3 myMethod: function() {4 return 'hello';5 }6};7var spy = createSpy(myObj, 'myMethod');8myObj.myMethod();9var spy = require('sinon').spy;10var myObj = {11 myMethod: function() {12 return 'hello';13 }14};15var spy = spy(myObj, 'myMethod');16myObj.myMethod();17var createStubInstance = require('sinon').createStubInstance;18var myObj = {19 myMethod: function() {20 return 'hello';21 }22};23var stub = createStubInstance(myObj);24stub.myMethod.returns('world');25var stub = require('sinon').stub;26var myObj = {27 myMethod: function() {28 return 'hello';29 }30};31var stub = stub(myObj, 'myMethod');32stub.returns('world');33var mock = require('sinon').mock;34var myObj = {35 myMethod: function() {36 return 'hello';37 }38};39var mock = mock(myObj);40mock.expects('myMethod').once();41myObj.myMethod();42mock.verify();43var sandbox = require('sinon').sandbox;44var myObj = {45 myMethod: function() {46 return 'hello';47 }48};49var sandbox = sandbox.create();50sandbox.stub(myObj, 'myMethod');51myObj.myMethod();52sandbox.restore();53var fakeServer = require('sinon').fakeServer;54var myObj = {55 myMethod: function() {56 return 'hello';57 }58};59var server = fakeServer.create();60server.respondWith('hello');61myObj.myMethod();62server.respond();63server.restore();64var fakeTimers = require('sinon').fakeTimers;65var myObj = {
Using AI Code Generation
1var sinon = require('sinon');2var myModule = require('../myModule.js');3var myModuleSpy = sinon.spy(myModule, 'myModuleMethod');4myModule.myModuleMethod();5myModule.myModuleMethod();6myModule.myModuleMethod();7assert(myModuleSpy.calledThrice);8assert(myModuleSpy.calledWith('test'));9exports.myModuleMethod = function (arg) {10}
Using AI Code Generation
1var sinon = require('sinon');2var barSetterSpy = sinon.spy(foo, "setBar");3foo.setBar(123);4foo.setBar(456, "another param");5var sinon = require('sinon');6var constructor = function() {this.foo = 'bar';};7var instance = sinon.createStubInstance(constructor);8instance.method.returns(42);9var sinon = require('sinon');10var stub = sinon.stub().returns(42);11var sinon = require('sinon');12var stub = sinon.stub();13stub.withArgs(42).returns(1);14stub.withArgs(1).throws("TypeError");15var sinon = require('sinon');16var stub = sinon.stub();17stub.withArgs(42).returns(1);18stub.withArgs(1).throws("TypeError");19var sinon = require('sinon');20var stub = sinon.stub();21stub.withArgs(42).returns(1);22stub.withArgs(1).throws("TypeError");23var sinon = require('sinon');24var stub = sinon.stub();25stub.withArgs(42).returns(1);26stub.withArgs(1).throws("TypeError");27console.log(stub(42));
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!!