UNPKG

58.8 kBMarkdownView Raw
1
29.2.0 / 2020-10-06
3==================
4
5 * Update dependencies (#2299)
6 * Update sandbox docs with missing comma
7 * Add minor markdown formatting to release docs for sandbox
8 * Minor formatting improvements to legacy sandbox documentation
9
109.1.0 / 2020-09-29
11==================
12
13 * Add a calledOnceWithMatch assertion (#2294)
14
159.0.3 / 2020-08-11
16==================
17
18 * Upgrade nise to latest
19 * Upgrade @sinonjs/samsam to latest
20
219.0.2 / 2020-04-08
22==================
23
24 * Bump @sinonjs/fake-timers (fix error when using Node's util/promisify with setTimeout)
25 * Upgrade @sinonjs/commons (fix error when trying to calculate function name from generators)
26
279.0.1 / 2020-03-10
28==================
29
30 * Fix #2226: restore props defined on prototype chain by deleting
31
329.0.0 / 2020-02-19
33==================
34
35 * Ignore errors on thisValue property accesses (#2216)
36 * Add firstArg to spy calls and fakes. (#2150)
37 * Drop Node 8 support
38
398.1.1 / 2020-01-22
40==================
41
42 * Fundraiser for better docs: https://www.gofundme.com/f/sinon-docs
43
448.1.0 / 2020-01-16
45==================
46
47 * Support negative indices in getCall (#2199)
48
498.0.4 / 2020-01-06
50==================
51
52 * Remove misleading 'own' from exception message
53
548.0.3 / 2020-01-06
55==================
56
57 * Move .printf to proxy
58
598.0.2 / 2019-12-30
60==================
61
62 * Upgrade @sinonjs/samsam to latest
63 * Upgrade nise to 3.0.1
64
658.0.1 / 2019-12-23
66==================
67
68 * Force upgrade @sinonjs/commons (#2181)
69 * Update `docs/changelog.md` and set new release id in `docs/_config.yml`
70 * Add release documentation for v8.0.0
71
728.0.0 / 2019-12-22
73==================
74
75The major release is caused by removing old mistakes and upgrading dependencies that themselves have had new major releases.
76
77 * Upgrade nise, @sinonjs/formatio, @sinonjs/samsam and @sinonjs/referee
78 * Update lolex and nise to get new async timer methods (see https://github.com/sinonjs/lolex/blob/master/CHANGELOG.md)
79 * Remove `sinon.spyCall`
80 * Remove `sinon.sandbox.create`
81 * Remove obsolete `deprecated.printWarning` stubbing from test
82
837.5.0 / 2019-09-23
84==================
85
86 * Add sinon.assert.calledOnceWithExactly
87 * Feature parity: support _spying_ all methods on an object
88
897.4.2 / 2019-09-02
90==================
91
92 * Restore sinon.createStubInstance() behaviour (#2073)
93 * Fix Typo in migration 6 and updated migration docs for migration from… (#2074)
94
957.4.1 / 2019-08-06
96==================
97
98 * Update nise and lolex (minor versions)
99 * add callThroughWithNew method
100 * add browser field
101 * Create COMPATIBILITY.md (#2051)
102 * Fix sinon.resetHistory() does not reset history (#2022)
103
1047.4.0
105=====
106 * Was unpublished (see #2071)
107
1087.3.2 / 2019-04-17
109==================
110
111 * Update Lolex to bring in fix for sinonjs/lolex#232 (queueMicrotask warning)
112
1137.3.1 / 2019-03-27
114==================
115
116 * Fix security issues
117 * Update @sinonjs/samsam to v3.3.1
118
1197.3.0 / 2019-03-20
120==================
121
122 * Simplify Circle CI setup
123 * Add a Docker Compose config file for testing the setup locally
124 * Inject createStubInstance and fake functionality
125 * Remove unused prop 'injectIntoThis'
126 * Fix #1974 by upgrading to @sinonjs/samsam@3.3.0
127
1287.2.7 / 2019-03-04
129==================
130
131 * Retain spy function names and fix spy.named(name) (#1987)
132 * Document spying on accessors (#1976)
133
1347.2.6 / 2019-03-01
135==================
136
137 * Upgrade @sinonjs/formatio
138 * Set `fake.lastArg` to last argument regardless of type
139
1407.2.5 / 2019-02-27
141==================
142
143 * don't call extends.nonEnum in spy.resetHistory (#1984)
144
1457.2.4 / 2019-02-18
146==================
147
148 * minor package updates
149 * Update eslint-plugin-mocha
150 * Fix high prio audit warnings
151 * Update nise to use @sinonjs/text-encoding
152 * Make all properties non-enumerable in spies, stubs, mocks and fakes
153 * docs(sandbox): add example for default sandbox
154
1557.2.3 / 2019-01-19
156==================
157
158 * Update @sinonjs/nise
159 * Fix stubbing function objects (#1968)
160
1617.2.2 / 2018-12-12
162==================
163
164 * Fix mock.withArgs using matchers (#1961)
165
1667.2.1 / 2018-12-12
167==================
168
169 * #1957: check for truthiness before checking whether optional override is a stub
170 * Upgrade @sinonjs/samsam
171 * Upgrade @sinonjs/referee to v3
172
1737.2.0 / 2018-12-10
174==================
175
176 * Upgrade to samsam 3 (#1955)
177 * Rename History.md to CHANGELOG.md
178
1797.1.1 / 2018-10-31
180==================
181
182 * Make the spy functions non enumerable so that printing it is more concise (#1936)
183
1847.1.0 / 2018-10-25
185==================
186
187 * Issue #1852: Add a way to pass a global context to lolex when calling useFakeTimers
188 * Get latest 'nise' patch
189
1907.0.0 / 2018-10-14
191==================
192
193 * Update to Lolex 3: no negative ticks allowed
194
1956.3.5 / 2018-10-03
196==================
197
198 * Upgrade lolex
199 * Upgrade @sinonjs/samsam - fixes minor issue with IE11 introduced in 6.3.4
200
2016.3.4 / 2018-09-18
202==================
203
204 * Update samsam, puppeteer and rollup
205 * Fix #1850 (keep context in fakes)
206
2076.3.3 / 2018-09-14
208==================
209
210 * Upgrade formatio, samsam, nise and referee
211
2126.3.2 / 2018-09-13
213==================
214
215 * Adds guard for empty properties in deepEqual when a matcher is provided (#1901)
216
2176.3.1 / 2018-09-12
218==================
219
220 * Fix use of non-cached reference to forEach
221
2226.3.0 / 2018-09-12
223==================
224
225 * Allow providing stubs overrides for sinon.createStubInstance (#1864)
226 * Bump Lolex to 2.7.4 to include IE fixes for performance.mark
227
2286.2.0 / 2018-09-04
229==================
230
231 * Add mock.usingPromise to set the Promise library for mock expectations
232
2336.1.6 / 2018-09-04
234==================
235
236 * Upgrade Lolex, Nise and other dependencies
237
2386.1.5 / 2018-08-09
239==================
240
241 * Fix #1796, failing to stub Array.prototype.sort
242
2436.1.4 / 2018-07-21
244==================
245
246 * Update lolex and nise dependencies to latest versions
247
2486.1.3 / 2018-07-07
249==================
250
251 * Fix issue with matchers and cyclic references (#1709)
252
2536.1.2 / 2018-07-06
254==================
255
256 * Made callsArg, returnsArg, and throwsArg more strict (#1848)
257
2586.1.1 / 2018-07-06
259==================
260
261 * Restore useFakeXMLHttpRequest correctly in default sandbox (#1840)
262
2636.1.0 / 2018-07-03
264==================
265
266 * Syntax sugar for resolvesArg (#1846)
267
2686.0.1 / 2018-06-24
269==================
270
271 * Add fake behaviors to sandbox (#1815)
272
2736.0.0 / 2018-06-11
274==================
275
276 * Export Sinon and its functions as an EcmaScript module (#1809 and #1835)
277 * Document/test call ordering checks
278
2795.1.1 / 2018-06-07
280==================
281
282 * Remove ES2015 'module' field for 5x branch (fix in seperate branch - see tag)
283
2845.1.0 / 2018-06-06
285==================
286
287 * Add `in` matcher (#1811)
288
2895.0.10 / 2018-05-24
290==================
291
292 * Remove functions shadowing time related sandbox methods (#1802)
293
2945.0.9 / 2018-05-24
295==================
296
297 * Upgrade `@std/esm` to `esm`.
298
2995.0.8 / 2018-05-24
300==================
301
302 * Add isSealed check to is-es-module to make certain ESM mocks possible
303
3045.0.7 / 2018-05-07
305==================
306
307 * Fix stub id prefix (#1786)
308
3095.0.6 / 2018-05-07
310==================
311
312 * Remove support-sinon.js as postinstall banner
313
3145.0.5 / 2018-05-07
315==================
316
317 * Refuse to replace already replaced values (#1779)
318
3195.0.4 / 2018-05-05
320==================
321
322 * Fix #1781: Reject non-function values a f argument to fake
323
3245.0.3 / 2018-05-02
325==================
326
327 * Fix #1775: Default sandbox does not restore stubs, spies, mocks
328
3295.0.2 / 2018-05-01
330==================
331
332 * Reset history on sandbox reset (#1770)
333
3345.0.1 / 2018-04-27
335==================
336
337 * Remove deprecated spy.reset method
338 * Add sinon.replace, sinon.replaceGetter and sinon.replaceSetter
339 * Add `fake`
340 * Use `sinon` as a default sandbox
341
3424.5.0 / 2018-03-30
343==================
344
345 * Add .lastArg and .callback to spy call
346
3474.4.9 / 2018-03-27
348==================
349
350 * Fix #1746: Remove dependency on ES2015 code from post-install script
351
3524.4.8 / 2018-03-21
353==================
354
355 * Fix 1743: Add scripts/support-sinon.js to package
356
3574.4.7 / 2018-03-21
358==================
359
360 * Improve the post-install script: remove noise, add :heart:
361
3624.4.6 / 2018-03-15
363==================
364
365 * Return returned value of invokant when using yields* and callsArg* (#1724)
366
3674.4.5 / 2018-03-13
368==================
369
370 * Add postinstall banner pointing to Open Collective
371
3724.4.4 / 2018-03-13
373==================
374
375 * Make @std/esm a devDependency
376
3774.4.3 / 2018-03-12
378==================
379
380 * Fix inconsistent newline usage for %D in spy.printf (#1717)
381
3824.4.2 / 2018-02-25
383==================
384
385 * Add descriptive error message on attempt to call argument that is not a function (#1695)
386
3874.4.1 / 2018-02-24
388==================
389
390 * Docs: make it clear that it is possible to use assert with spy calls (#1688)
391
3924.4.0 / 2018-02-23
393==================
394
395 * Change return value of yield and callArg
396
3974.3.0 / 2018-02-10
398==================
399
400 * add calledOnceWithExactly assertion (#1247)
401
4024.2.3 / 2018-02-10
403==================
404
405 * Replace formatio with @sinonjs/formatio
406
4074.2.2 / 2018-01-26
408==================
409
410 * Fix #1638: Make resetHistory work for props
411
4124.2.1 / 2018-01-23
413==================
414
415 * Performance: spend less time stubbing methods (#1627)
416
4174.2.0 / 2018-01-21
418==================
419
420 * Add match.every and match.some (#1624) (#1661)
421
4224.1.6 / 2018-01-16
423==================
424
425 * Fix bad build, missing nise@1.2.0 (#1656)
426 * Upgrade dependency supports-color
427
4284.1.5 / 2018-01-13
429==================
430
431 * Use nise.fakeServer as the sandbox serverPrototype (#1534)
432
4334.1.4 / 2018-01-08
434==================
435
436 * Fix: assertion error messages did not handle Symbol names (#1640)
437 * Deprecate spy.reset(), use spy.resetHistory() instead (#1446)
438
4394.1.3 / 2017-12-07
440==================
441
442 * Spy passes through calling with `new` (#1626)
443
4444.1.2 / 2017-11-07
445==================
446
447 * Update Lolex to include fix for #872
448 * Remove deprecated methods from documentation (#1613)
449
4504.1.1 / 2017-11-03
451==================
452
453 * Remove "engines" from package.json
454
4554.1.0 / 2017-11-02
456==================
457
458 * Add sandbox.createStubInstance (#1598)
459
4604.0.2 / 2017-10-25
461==================
462
463 * Update 'nise' to latest version (#1593)
464 * Use supports-color module to test if system supports colors
465 * Upgrade mocha to v4.0.0
466 * Make samsam a development dependency
467 * Make native-promise-only a development dependency
468
4694.0.1 / 2017-10-04
470==================
471
472 * Upgrade nise and lolex versions (#1579)
473
4744.0.0 / 2017-09-26
475==================
476
477 * Explicitly update fake xhr lib 'nise'
478 * Remove accidental dependency to "build"
479 * Remove support for stubbing undefined props (#1557)
480
4813.3.0 / 2017-09-18
482==================
483
484 * Adds sinon.match.hasNested
485 * fix 'callThrough with a mock expectation' (#1442)
486 * Documentation updates
487 * Allow custom defined instance checks if supported
488
4893.2.1 / 2017-08-17
490==================
491
492 * resolvesThis should override previous throws
493 * preserve context of functions from nise: fakeServer, fakeServerWithClock
494 * Fix regression for issue #1526 regarding onFirstCall().throws()
495 * Fix docs regression introduced by #1523
496
4973.2.0 / 2017-08-10
498==================
499
500 * Fix #1521 by caching references to Array.prototype.filter (#1523)
501 * Fix #1368 by adding stub#resolvesThis (#1517)
502
5033.1.0 / 2017-08-08
504==================
505
506 * Lots of documentation updates
507 * Fix regression on sandbox.stub(obj,protoMethod)
508 * Add factory functions for sandbox and fake server
509 * Add support for passing a function to stub.throws(...). (#1511)
510
5113.0.0 / 2017-08-03
512==================
513
514 * Remove deprecated exports (see migration guide)
515 * Fix #1432: add details around expectations.withArgs behavior to docs (#1501)
516 * Fix #1487: incorrect withArgs().returnValue
517 * add format.setFormatter
518 * Upgrade lolex to 2.1.2
519 * Extract fakeXhr, fakeServer and fakeServerWithClock into own module `nise` and re-import it to keep api the same
520
5212.4.1 / 2017-07-26
522==================
523
524 * stub#withArgs: set promiseLibrary correctly (#1497)
525
5262.4.0 / 2017-07-26
527==================
528
529 * Allow anonymous mock functions to be named
530
5312.3.8 / 2017-07-13
532==================
533
534 * Fix 1474: propagates promiseLibrary to new stub behaviors (#1484)
535
5362.3.7 / 2017-07-10
537==================
538
539 * Fix #1476: spy.withArgs(args...).firstCall is broken
540
5412.3.6 / 2017-06-28
542==================
543
544 * Fix #1274: spy.withArgs(args...).callCount is incorrect
545
5462.3.5 / 2017-06-20
547==================
548
549 * Check configurable on a prop before creating (fixes #1456) (#1462)
550
5512.3.4 / 2017-06-10
552==================
553
554 * Fix #1372: make sandbox.resetHistory also reset spies (#1424)
555
5562.3.3 / 2017-06-10
557==================
558
559 * Fix #1445: make stubbing of static function properties possible
560
5612.3.2 / 2017-05-26
562==================
563
564 * Fix failing sandbox.resetBehavior() (#1428)
565 * Fix restoring getters/setters/values for previously unexisting props (#1419)
566 * Called in order takes callCount into account. Closes #1398.
567
5682.3.1 / 2017-05-23
569==================
570
571 * Make calledAfter symetric with calledBefore (#1407)
572
5732.3.0 / 2017-05-22
574==================
575
576 * Allow stubbing of accessors with and without sandbox (#1416)
577 * add throwsArg(index) to stubs (#1319)
578 * Fix: forEach() requires 'this' argument (#1356)
579 * Only reset history when calling resetHistory()
580
5812.2.0 / 2017-05-02
582==================
583
584 * Added `usingPromise` method to stub and sandbox.
585 * Added support for React Native window location format Fixes sinonjs/sinon#1362
586 * Fix error on call.toString() where stack has fewer than 4 lines.
587
5882.1.0 / 2017-03-20
589==================
590
591 * Redesign the template (#1339)
592 * [feature] adds spy.calledImmediatelyBefore and spy.calledImmediatelyAfter
593 * Fix issue #1332: little bug correction in spy.printf "%*" formatter.
594
5952.0.0 / 2017-03-15
596==================
597
598 * Add restore method for stubbed property descriptors
599 * Allow stubbing getters and setters for function properties
600 * Add getters/setters stub behaviors
601 * Refactor xhr and xhr.upload to use the same EventTargetHandler
602 * Remove SSL part of base url
603
604v2.0.0-pre.6 / 2017-02-27
605=========================
606
607 * Add sinon.addBehavior, use it to add the default behaviors
608 * Use Node instead of Ruby in the build script
609 * Lots of documentation updates
610 * Many dependency updates
611 * Add a simple implementation og ANSI colors and boot out chalk
612 * No circular dependencies, thank you very much
613 * Replace homegrowns with ES5
614 * Remove legacy IE bits from code
615 * Fire onload event on non-2xx HTTP statuses in FakeXDomainRequest
616 * Extract throwOnFalsyObject to own function
617 * Stop polluting the test console with a "test" string
618 * Complete internalization of `extend` and `typeOf`
619 * Allow calling original function from stub. Closes #989 (#1234)
620 * Matcher for Set type
621 * Matcher for Map type
622 * Fix set iterableToString test on IE11
623 * add test-dev npm script to run tests in watch mode
624
625v2.0.0-pre.5 / 2016-12-31
626=========================
627
628 * 2.0.0-pre.5
629 * Update Changelog.txt and AUTHORS for new release
630 * Update changelog for pre.4
631 * Remove polyfill for Promise
632 * Remove old, unused, ci script for BusterJS
633 * Abort pre-commit script when no files are changed
634 * Check for required arguments
635 * Make SED in-place update switch work on BSD
636 * Upgrade text-encoding to the latest version
637 * Improve rendering of sandbox.create(config) example
638 * Remove sinon.test from sandbox documentation
639 * Use baseurl to render links correctly on github pages
640 * Specify same version of github-pages as github
641 * Remove release_id from front matter
642 * Update Gemfile.lock to use latest supported Jekyll
643 * Fix #614: Add missing documentation for sandbox methods
644 * Add missing documentation for stubs
645 * Fix #1026: stub watch method on object
646 * Fix invalid test for "does not walk the same property twice"
647 * Add test for issue #1026
648 * Fix 810 - Added documentation for sinon.restore()
649 * Add docs for new array matchers
650 * Array contains matcher fails when actual is not an array
651 * Array endsWith matcher fails when actual is not an array
652 * Array startsWith matcher fails when actual is not an array
653 * Array deepEquals matcher fails when actual is not an array
654 * Add .resolves and .rejects to stub (#1211)
655 * Accept routing DSLs on fake server
656 * Convert remaining calledWith methods to use diff color formatting
657 * Color diffs for sinon matchers
658 * Print diffs for multiple spy calls
659 * Add new spy output formatter for handling diffs
660 * Add contains array matcher
661 * Add endsWith array matcher
662 * Add startsWith array matcher
663 * Add deepEquals array matcher
664 * Add more array matchers
665 * Extract deprecated.printWarning
666 * Move empty stub creation to avoid unnecessary stub.create
667 * Fix typo on property name called 'matchingAguments'
668 * Soften migration path with deprecation warning
669 * Update docs and migration guide
670 * Convert 3 arg stub to callsFake
671 * Update format docs to refer to formatio
672 * Fix being able to spy Error
673 * Prepare documentation using site in GitHub Pages
674 * Add link to LICENSE in README.md
675 * Add documentation for accessor method support for stubs and spies
676 * Previous expectation failures are checked and re-thrown again in mock.verify()
677 * Expose XHR.setStatus to simplify asynchronous answers
678 * Fix typo
679 * Add a how-to article about using links seams for CommonJS modules
680 * stub() will fail if passed an empty property descriptor
681 * Rename func argument to funcOrDescriptor
682 * Add documentation for sinon.assert.match
683 * XHR: test for readystatechange not dispatching after .abort() in DONE state
684 * XHR: fix readystatechange event after .abort() in DONE state
685 * Add tests for xhr.readyState after abort()
686 * Test that demonstrates that a mock can be called more times than expected without failing (if the exception is silenced).
687
688n.n.n / 2017-02-27
689==================
690
691
692
693v2.0.0-pre.6 / 2017-02-27
694=========================
695
696 * Merge pull request #1303 from dougo/docs-fixups
697 Docs fixups
698 * Merge pull request #1302 from sinonjs/add-behavior
699 addBehavior
700 * Merge pull request #1300 from Gvozd/optimize_performance
701 Optimize performance of call-stack getting
702 * Merge pull request #1301 from fatso83/1299-redirect-traffic-to-releases
703 Redirect /docs and /downloads to /releases
704 * Merge pull request #1296 from sinonjs/remove-deal-links
705 Remove dead links
706 * Merge pull request #1295 from mroderick/add-bithound-config
707 Add .bithoundrc
708 * Merge branch 'bouk-server-aint-xhr'
709
710 * Merge pull request #1293 from mroderick/update-v1-docs-with-bundler-warnings
711 Update 1.x documentation to say that it doesn't work with
712 bundlers
713 * Merge pull request #1294 from sinonjs/browserify-build
714 Use Node instead of Ruby in the build script
715 * Merge pull request #1292 from mroderick/update-readme
716 Update readme
717 * Merge pull request #1291 from mroderick/update-phantomjs
718 Use phantomjs-prebuilt
719 * Merge pull request #1289 from mroderick/fix-invalid-release-version-in-docs
720 Fix invalid release number in v1.17.7.md front matter
721 * Merge pull request #1290 from sinonjs/common-eslint
722 Use common Sinon.JS eslint config
723 * Merge pull request #1288 from mroderick/improve-documentation
724 Improve documentation
725 * Merge pull request #1283 from lucasfcosta/docs-stub-callThrough
726 Add docs for stub.callThrough()
727 * Merge pull request #1285 from sinonjs/uncycle-server-deps
728 Uncycle server deps
729 * Merge pull request #1282 from sinonjs/mochify-3
730 Use mocaccino 2 and mochify 3
731 * Merge pull request #1281 from mroderick/add-missing-documentation
732 Add missing documentation
733 * Merge pull request #1277 from mroderick/remove-copyright-comments
734 Remove copyright comments
735 * Merge pull request #1271 from mroderick/use-es5-features
736 Refactoring: use ES5.1 features
737 * Merge pull request #1273 from melinath/patch-1
738 Update text-encoding version
739 * Merge pull request #1255 from fatso83/remove-legacy-ie
740 Remove traces of legacy IE
741 * Merge pull request #1266 from duclet/chalk
742 Switch to using "chalk" from "colors"
743 * Merge pull request #1260 from JoshuaCWebDeveloper/ajax_events
744 Fire onload event on non-2xx HTTP statuses in
745 FakeXDomainRequest - fixes #1259
746 * Merge pull request #1257 from piamancini/patch-1
747 Add backers and sponsors from Open Collective
748 * Merge pull request #1256 from sprzybylski/download-page
749 Create downloads page (#1218)
750 * Merge pull request #1252 from mroderick/update-bundle-for-ruby-2.4.0
751 Update Gemfile for ruby 2.4.0
752 * Merge pull request #1254 from mroderick/refute-issue-1245-in-sinon-2
753 Add test to disprove issue 1245 in Sinon 2.x
754 * Merge pull request #1253 from BenBrostoff/error-equality
755 Add error equality to deepEqual
756 * Merge pull request #1243 from sprzybylski/changelog-page
757 Update changelog page in postversion.sh
758 * Merge pull request #1239 from mroderick/refactor-stub-method
759 Refactor stub methods
760 * Merge pull request #1242 from Floby/add-documentation-for-promise-stub
761 Add documentation for .rejects() and .resolves()
762 * Merge pull request #1241 from mroderick/cleanup-test-console
763 Stop polluting the test console with a "test" string
764 * Merge pull request #1238 from tarjei/patch-1
765 Document server.requests
766 * Merge pull request #1235 from jonnyreeves/feature/internalize
767 Internalise `typeOf` and `extends`
768 * Merge pull request #1233 from lucasfcosta/fix-deepEqual-for-matchers
769 Ensures different matchers won't be called against each
770 other. Closes…
771 * Merge pull request #1232 from lucasfcosta/sets-matchers
772 Sets matchers
773 * Merge pull request #1227 from zuzusik/zuzusik-always_chain_behavior_with_stub
774 Always chain behavior with stub
775 * Merge pull request #1215 from lucasfcosta/maps-matchers
776 Maps matchers
777 * Merge pull request #1226 from lucasfcosta/improve-site-readability
778 Improve site readability
779 * Merge pull request #1225 from lucasfcosta/resolve-reject-promise-upon-invoke
780 Resolve/reject promise only upon invoke
781
782v2.0.0-pre.5 / 2016-12-31
783=========================
784
785 * Merge pull request #1223 from fatso83/release-script-improvements
786 Minor fixes to the release scripts
787 * Merge pull request #1222 from Gothdo/patch-1
788 Upgrade text-encoding to the latest version
789 * Merge pull request #1216 from mroderick/improve-documentation
790 Improve documentation for stubs and sandboxes
791 * Merge pull request #1217 from mroderick/make-docs-run-on-github-pages
792 Update Gemfile.lock to use latest supported Jekyll
793 * Merge pull request #1213 from tiemevanveen/docs-restore
794 Added documentation for sinon.restore()
795 * Merge pull request #1214 from mroderick/fix-1026-in-2.x
796 Fix 1026 in 2.x
797 * Merge pull request #1210 from lucasfcosta/document-new-array-matchers
798 Add docs for new array matchers
799 * Merge pull request #1203 from jdgreenberger/add-expectation-diff-logs
800 Add expectation diff logs
801 * Merge pull request #1208 from lucasfcosta/array-matchers
802 Array matchers
803 * Merge pull request #1209 from lucasfcosta/avoid-unnecessary-empty-stub-creation
804 Avoid unnecessary empty stub creation
805 * Merge pull request #1207 from hurrymaplelad/calls-fake
806 Replace `stub(o, 'm', fn)` with `stub(o, 'm').callsFake(fn)`
807 * Merge pull request #1162 from dottedmag/master
808 XHR spec conformance: abort() should not dispatch
809 readystatechange event in DONE state
810 * Merge pull request #1184 from mroderick/fail-on-empty-property-descriptor
811 Fail on empty property descriptor
812 * Merge pull request #1206 from fatso83/sinon-format-docs
813 Update format docs to refer to formatio
814 * Merge pull request #1204 from estobbart/master
815 Fix being able to spy Error
816 * Merge pull request #1189 from mroderick/docs-in-github-pages
817 Prepare documentation using site in GitHub Pages
818 * Merge pull request #1180 from mroderick/add-documentation-for-assert.match
819 Add documentation for sinon.assert.match
820 * Merge pull request #1182 from mroderick/document-accessor-support
821 Add documentation for accessor method support for stubs and
822 spies
823 * Merge pull request #1191 from LostArchives/master
824 Add link to LICENSE in README.md
825 * Merge pull request #1188 from DanReyLop/verify-silenced-exceptions
826 Mock expectation errors are now re-thrown when calling
827 mock.verify()
828 * Merge pull request #1186 from mroderick/add-how-to-link-seam-commonjs
829 Add a how-to article about using links seams for CommonJS
830 modules
831 * Merge pull request #1178 from dottedmag/feature-xhr-set-status
832 Expose XHR.setStatus to simplify asynchronous answers
833
8342.0.0-pre.5/ 2016-12-31
835==================
836
837 * Upgrade text-encoding to the latest version
838 * Remove sinon.test from sandbox documentation
839 * Fix #1026: stub watch method on object
840 * Add .resolves and .rejects to stub (#1211)
841 * Accept routing DSLs on fake server
842 * Color diffs for sinon matchers
843 * Add new spy output formatter for handling diffs
844 * Add various array matchers
845 * Convert 3 arg stub to callsFake
846 * Fix being able to spy Error
847 * Prepare documentation using site in GitHub Pages
848 * Various documentation additions and fixes
849 * Previous expectation failures are checked and re-thrown again in mock.verify()
850 * Expose XHR.setStatus to simplify asynchronous answers
851 * XHR: test for readystatechange not dispatching after .abort() in DONE state
852 * XHR: fix readystatechange event after .abort() in DONE state
853
8542.0.0-pre.4 / 2016-11-10
855==================
856 * Use last matching withArgs declaration when using matchers (#1183)
857 * Implement XHR.overrideMimeType
858 * Fire .onprogress event handler in fake XHR
859 * Expose readyState constants on XHR instances
860 * add configurable unsafe header checks (#1061)
861
8622.0.0-pre.3 / 2016-09-19
863==================
864 * Add assertion check for too many args with calledOnce/Twice/Thrice
865 * Much internal refactoring relating to CommonJS
866
8672.0.0-pre.2 / 2016-07-07
868==================
869
870 * CJSify sinon.call tests (#1079)
871 * CJSify sinon.calledInOrder tests (#1080)
872 * CJSify get-config tests (#1081)
873 * CJSify sinon.assert tests (#1078)
874 * Resolve test failure in node 0.10.x (#1073)
875 * Expose `sinon.assert` on sandbox instances. (#1076)
876 * Add resetBehavior and resetHistory to sandbox API (#1072)
877 * Fix incorrect inline function names
878 * Fix calledOnce on tests for #283. This closes #283.
879 * Add sandbox.reset() docs
880 * Add a line recommending how to pronounce.
881 * Improve tests based on PR feedback
882 * Allow xhr.respond(0) to simulate a network failure and call onerror
883 * Use event loaded instead of error event for code like 403, 500, etc.
884 * Fix invalid markdown in fake-timers.ms (#1054)
885 * Do not invoke getters in walk (#1059)
886 * ReactNative compatibility. Allow sinon fakeServer to run in React Native (#1052)
887 * added timeouts to ensure tests pass
888 * Run tests on stable Node 6 instead of unstable Node 5
889 * added tests to ensure only expected events are fired (#1043)
890 * Fixed formatting of issue template
891 * Added note on using latest version
892 * Fix onerror event triggering for fake xhr requests (#1041)
893 * Add missing mocaccino and phantomic to package.json (#1029)
894 * Pull request and issue templates (#1012)
895 * Fix capturing of stack traces in Phantom.js.
896 * Allow sinon.calledInOrder to be called either with an array of spies or multiple spies as parameters. Add explicit test cases for sinon.calledInOrder
897 * Fix typos found by codespell
898 * Document faking of setImmediate and clearImmediate
899 * Add feature detection guard for tests containing es6 Symbols
900 * Add support for es6 Symbol to wrapMethod method
901 * Convert values to strings with toString instead of String()
902 * Add typeOf matcher for symbol type
903 * Make expectetation fail as expected when called with wrong Symbol
904 * Make mock report expected TypeError when expecting number and given symbol
905 * Add support for es6 Symbol to match.has method
906 * Make error message when failing to stub method support es6 symbol
907 * Make yieldToOn fail as expected when yielding an es6 Symbol
908 * Add support for es6 Symbol to match.same method
909 * Make yieldTo fail as expected when yielding an es6 Symbol
910 * Add support for es6 Symbol to match method
911 * Work around SauceLabs security limitations
912 * Declare test specific eslint configs in test/.eslintrc
913 * Add test-coverage script
914 * Add eslint-plugin-mocha
915 * Remove browserify-shim
916 * Setup saucelabs tests and adjust travis config
917 * Feature detect __proto__ to exclude a timer test in IE 10
918 * Convert webworker test to mocha
919 * Remove buster
920 * Replace npm test script with mocha / mochify invocations
921 * Fix async fake-xml-http-request tests
922 * Convert issues tests to mocha
923 * Convert util tests to mocha
924 * Convert core tests to mocha
925 * Convert stub tests to mocha
926 * Convert typeof tests to mocha
927 * Convert spy tests to mocha
928 * Convert sandbox tests to mocha
929 * Convert mock tests to mocha
930 * Convert hello world test to mocha
931 * Convert extend tests to mocha
932 * Convert collection tests to mocha
933 * Convert call tests to mocha
934 * Convert assert tests to mocha
935 * Convert matcher tests to mocha
936 * Update docs/TODO.md to reflect plan to Jekyll
937 * CJSify Spy and Stub Tests.
938 * CJSify Core Util Tests.
939 * Migrate Packaged Tests to use a Browserified Build.
940 * fix non enumerable methods stub restore
941 * Improve Blob support detection logics
942 * Fix a typo in Contributing.md
943 * Update Node versions on Travis
944 * Use PhantomJS 2.
945 * Fix #835: make err.message writable
946 * Remove linting errors in switch cases
947 * Add spy.notCalled to documentation
948 * Remove `sinon.test()` and `sinon.testCase`.
949 * Remove `sinon.log` and `sinon.logError`
950 * De-fluff
951 * Remove `sinon-test` module.
952 * Extract `get-config` tests from `sinon-test`.
953 * Extract `function-to-string` tests from `sinon-test`.
954 * Extract `restore` tests from `sinon-test`.
955 * Extract `createStubInstance` tests from `sinon-test`
956 * Extract `deep-equal` tests from `sinon-test`.
957 * Extract `wrap-method` tests from `sinon-test`.
958 * Extract `extend` tests from `sinon-test` to `extend-test`
959 * Move 'lib/util/core' tests into 'test/util/core'
960 * Remove the use of `sinon.format` from the codebase
961 * Require sinon.deepEqual in a more modular way
962 * Fix 648: test for this.proxy before trying toString on it
963 * use the correct sinon.deepEqual to test sinon matcher
964 * add stub test to ensure sinon matcher is recognized within stub.withArgs
965 * update repo link
966 * Remove unused dependency util
967 * Update samsam
968 * Update lolex
969 * Update browserify
970 * Update dependency pre-commit
971 * Update buster-istanbul to 0.1.15
972 * ignore webstorm configs
973 * fix async issues and increase buster timeout
974 * test on node 5
975 * Fixes typo error in docs
976 * fix typo in lib/sinon.js
977 * Fixes typo error in docs
978 * Adding comment to warn against using eval
979 * fix linting
980 * Get rid of eval in sinon spy
981 * Update README URLs based on HTTP redirects
982
9832.0.0-pre / 2015-12-02
984==================
985
986 * 2.0.0 pre-release
987 * Extract `sandbox` into a CommonJS module.
988 * Clarify documentation on creating stubs and spies
989 * Extract `util/fake_server_with_clock` into a CommonJS module
990 * Extract `util/fake_server` into a CommonJS module.
991 * Extract `util/fake_timers` into a CommonJS module.
992 * Extract `util/fake_xml_http_request` into a CommonJS module.
993 * Extract `util/fake_xdomain_request` into a CommonJS module.
994 * Extract `util/event` into a CommonJS module.
995 * Extract `sinon.logError` into a CommonJS module.
996 * Extract (most of) sinon.collection into a CommonJS module
997 * Extract `sinon.mock` into a CommonJS module.
998 * Import mock's dependencies are CommonJS modules.
999 * Extract `createSpyCall` into a CommonJS module.
1000 * Extract `sinon.assert` into a CommonJS module.
1001 * Remove `walk` from sinon's public API.
1002 * Patch up linting errors
1003 * Remove `sinon` import from stub
1004 * Extract `sinon.behavior` into a CommonJS module
1005 * Extract `sinon.walk` into a CommonJS module.
1006 * Export stub as a CommonJS module
1007 * Import `wrapMethod` as a CommonJS module
1008 * Import core dependencies as CommonJS modules
1009 * Delete .jscsrc
1010 * Ensure sinon can run in a WebWorker
1011 * Updated docs to reflect that calledOn accepts a matcher
1012 * simplified test and added a note
1013 * updated to require spy in its new cjs form
1014 * ./commonjs
1015 * expose sinon.spy and sinon.spyCall
1016 * converted spy to commonjs format
1017 * moved sinon.format() to core
1018 * fixed spy tests
1019 * added missing test (pushes spy coverage to 100%)
1020 * added spy getter/setter tests
1021 * updated sinon.spy() to properly handle getters and setters
1022 * Remove unnecessary error variable
1023 * Prevent stubbed getter from being called during restore() - fixes #897
1024 * Allowed GET requests to have request bodies
1025 * Remove JSCS from devDependencies
1026 * Add Gitter badge
1027 * Allow yieldsOn, callsArgOn, callsArgOnWith, yieldsToOn to use any context
1028 * Add bithound badge to README.md
1029 * removed switch statement in favor of object lookup
1030 * Use immediate exceptions
1031 * lib/sinon/util: Remove window conditionals from IE files.
1032 * Add docs for sandbox and utils
1033 * Add documentation for matchers
1034 * Add docs for assertions
1035 * Add docs for JSON-P
1036 * Add docs for fake server
1037 * Add docs for fake timers
1038 * Add mock api descriptions
1039 * Add mocks introduction
1040 * Add stubs api
1041 * Update TODO
1042 * Use Object.prototype.hasOwnProperty in deepEqual to cope with cases where hasOwnProperty doesn't exist, ie. Object.create(null), or has been overridden on an object. With tests.
1043 * Add docs TODO to track outstanding tasks
1044 * Add stubs.md with introduction to stubs
1045 * Import docs
1046 * Fix #875 Proper support UTF8 payloads * introduced new dependency "text-encoding" * delegate encoding operations to TextEncoder/TextDecoder * added unit test to verify proper utf-8 encoding
1047 * finished eslint'ing
1048 * upgraded ESLint to 1.7.1 (latest and greatest)
1049 * Run tests in node 4.2 LTS (Argon)
1050 * removed unneeded path resolution
1051 * Let npm install handle buster again, now that we have caching of node_modules
1052 * Make travis cache node_modules to speed up builds
1053 * removed duplicate implementation of sinon.timesInWords
1054 * fix travis-ci build svg in README
1055 * reviewer comments
1056 * cleaning up left over blank lines
1057 * CommonJS-ified *some* of the things
1058 * updated readyStateChange to align to the w3c spec (somewhat)
1059 * cleaned up a few unreleated tests
1060 * updated tests to reflect reality
1061 * added some additional progress event verification
1062 * added a test to ensure load is not fired before abort
1063 * added test to ensure event ordering
1064 * allow progress events with loaded/total values of 0
1065 * Fix #867: Walk properties only once
1066 * Removed unnecessary module wrappers and double test run in NodeJS.
1067 * null-check the object passed to sinon.stub
1068 * implemented stub#resetHistory method - fixes #863
1069 * Fix #851: Do not attempt to re-stub constructors
1070 * Fix #847: Ensure walk invokes accessors directly on target
1071 * Run tests in node 4.1.x also
1072 * stub.reset also resets behavior
1073
10741.17.0 / 2015-09-22
1075==================
1076
1077 * Fix #821 where Sinon.JS would leak a setImmdiate into global scope
1078 * Removed sinon-timers from the build. refs #811
1079 * Added flag that, when set to true, makes sinon.logError throw errors synchronously.
1080 * Fix #777: Support non-enumerable props when stubbing objects
1081 * Made the sinon.test() function pass on errors to the callback
1082 * Expand conversion from ArrayBuffer to binary string
1083 * Add support for ArrayBuffer, blob responseTypes
1084
10851.16.1 / 2015-08-20
1086===================
1087* Bump Lolex to stop throwing an error when faking Date but not setTimeout
1088
10891.16.0 / 2015-08-19
1090===================
1091* Capture the stack on each spy call
1092* fakeServer.create accepts configuration settings
1093* Update Lolex to 1.3.0
1094* Fire onreadystatechange with event argument
1095* Returns supersedes previous throws
1096* Bunch of bug fixes
1097
10981.15.0 / 2015-05-30
1099==================
1100* Fixed bug where assertions don't handle functions that have a property named proxy
1101* update license attribute
1102* Add test coverage report
1103* responseHeaders on abort are empty object
1104* Fix pre-existing style error
1105* Update documentation to cover testing built version
1106* Update CONTRIBUTING.md with section about "Making a pull request"
1107* Improve RELEASE.md to reduce effort when cutting a new release
1108* Deprecate mock
1109* Release.md
1110* Make `npm docs sinon` work.
1111* Run unit tests against packaged version in CI environment
1112* Remove unused Gruntfile
1113* Use Vanilla Buster.JS
1114* Use `files` in package.json
1115* Fix code style
1116* Don't stub getter properties
1117* Event listeners for `progress`, `load` and `readystatechange` in the `readyStateChange` function in `FakeXMLHttpRequest` are dispatched in a different order in comparison to a browser. Reorder the events dispatched to reflect general browser behaviour.
1118* Update linting instructions in CONTRIBUTING.md
1119* Lint all files with new linter
1120* Update JSCS to 1.11.3 and make npm lint task verify all files
1121* Cleanup .restore()
1122
1123== 1.14.1 / 2015-03-16
1124* Fallback for .restore() native code functions on Chrome & PhantomJS (なつき)
1125* Restore support for sinon in IE<9 (Harry Wolff)
1126
1127== 1.14.0 / 2015-03-13
1128* Stub & spy getters & setters (Simon Zack)
1129* Fix #702 async sinon.test using mocha interface (Mohayonao)
1130* Add respondImmediately to fake servers (Jonathan Freeman)
1131
1132== 1.13.0 / 2015-03-04
1133* fix @depends-require mismatches (fixes AMD issues) (Ben Hockey)
1134* Fix spy.calledWith(undefined) to return false if it was called without args
1135* yieldsRight (Alexander Schmidt)
1136* stubs retain function arity (Charlie Rudolph)
1137* (AMD) use explicit define in built version
1138* spy().reset() returns this (Ali Shakiba)
1139* Add lengthComputable and download progress (Tamas Szebeni)
1140* Don't setContent-type when sending FormData (AJ Ortega)
1141* sinon.assert with spyCall (Alex Urbano)
1142* fakeXHR requests in Node. (Jmeas)
1143* Enhancement: run builds on docker (till@php.net)
1144* Use FakeXDomainRequest when XHR does not support CORS. Fixes #584 (Eric Wendelin)
1145* More lenient check for ActiveXObject
1146* aligned sandbox.useFakeXMLHttpRequest API to documentation (Phred)
1147* Fix #643. Returns supersedes previous throws (Adam Hull)
1148* Safely overwrite properties in IE - no more IE files!
1149* Add check for setInterval/clearInterval (kdpecker)
1150* Add safety check for document.createElement (kdpecker)
1151* Fix #633. Use a try/catch when deleting a property in IE8. (Garrick Cheung)
1152
1153== 1.12.1 / 2014-11-16
1154* Fixed lolex issue on node
1155
1156== 1.12.0 / 2014-11-16
1157* Fake timers are now extracted as lolex: http://github.com/sinonjs/lolex
1158* Improved setImmediate fake
1159* Proper AMD solution
1160
1161== 1.11.1 / 2014-10-27
1162
1163* Expose match on returned sandbox (Duncan Beevers)
1164* Fix issue #586 (Antonio D'Ettole)
1165* Declare log_error dependency (Kurt Ruppel)
1166
1167== 1.11.0 / 2014-10-26
1168
1169* Proper AMD support
1170* Don't call sinon.expectation.pass if there aren't any expectations (Jeffrey Falgout)
1171* Throw error when reset-ing while calling fake
1172* Added xhr.response property (Gyandeep Singh)
1173* Fixed premature sandbox destruction (Andrew Gurinovich)
1174* Add sandbox reset method (vitalets)
1175* A bunch of bug fixes (git log)
1176* Various source organizational improvements (Morgan Roderick and others)
1177
1178== 1.10.3 / 2014-07-11
1179
1180* Fix loading in Web Workers (Victor Costan)
1181* Allow null as argument to clearTimeout and clearInterval (Lars Thorup)
1182
1183== 1.10.2 / 2014-06-02
1184
1185* Fix `returnValue` and `exception` regression on spy calls (Maximilian Antoni)
1186
1187== 1.10.1 / 2014-05-30
1188
1189* Improved mocha compatibility for async tests (Ming Liu)
1190* Make the fakeServer log function overloadable (Brian M Hunt)
1191
1192== 1.10.0 / 2014-05-19
1193
1194* Ensure that spy createCallProperties is set before function invocation (James Barwell)
1195* XDomainRequest support (Søren Enemærke, Jonathan Sokolowski)
1196* Correct AMD behavior (Tim Branyen)
1197* Allow explicit naming of spies and stubs (Glen Mailer)
1198* deepEqual test for unequal objects in calledWithExactly (Bryan Donovan)
1199* Fix clearTimeout() for Node.js (Xiao Ma)
1200* fix fakeServer.respond() in IE8 (John Bernardo)
1201* Fix #448 (AMD require.amd)
1202* Fix wrapMethod error handling (Nikita Litvin)
1203
1204== 1.9.1 / 2014-04-03
1205
1206* Fix an issue passing `NaN` to `calledWith` (Blake Israel)
1207* Explicate dependency on util package (Kris Kowal)
1208* Fake timers return an object with `ref` and `unref` properties on Node (Ben Fleis)
1209
1210== 1.9.0 / 2014-03-05
1211
1212* Add sinon.assert.match (Robin Pedersen)
1213* Added ProgressEvent and CustomEvent. Fixes bug with progress events on IE. (Geries Handal)
1214* prevent setRequestHeaders from being called twice (Phred)
1215* Fix onload call, 'this' should be equal to XHR object (Niklas Andreasson)
1216* Remove sandbox injected values on restore (Marcus Hüsgen)
1217* Coerce matcher.or/and arguments into matchers (Glen Mailer)
1218* Don't use buster.format any more
1219* Fix comparison for regexp deepEqual (Matt Kern)
1220
1221== 1.8.2 / 2014-02-11
1222
1223* Fixes an edge case with calledWithNew and spied native functions, and other
1224 functions that lack a .prototype
1225* Add feature detection for the new ProgressEvent support
1226
1227== 1.8.1 / 2014-02-02
1228
1229* Screwed up NPM release of 1.8.0, unable to replace it
1230
1231== 1.8.0 / 2014-02-02
1232
1233* Add clearImmediate mocking support to the timers API (Tim Perry)
1234* Mirror custom Date properties when faking time
1235* Improved Weinre support
1236* Update call properties even if exceptions are thrown (Tim Perry)
1237* Update call properties even if exceptions are thrown (Tim Perry)
1238* Reverse matching order for fake server (Gordon L. Hempton)
1239* Fix restoring globals on another frame fails on Firefox (Burak Yiğit Kaya)
1240* Handle stubbing falsey properties (Tim Perry)
1241* Set returnValues correctly when the spied function is called as a constructor (Tim Perry)
1242* When creating a sandbox, do not overwrite existing properties when inject
1243 properties into an object (Sergio Cinos)
1244* Added withCredentials property to fake xhr (Geries)
1245* Refine behavior withArgs error message (Tim Fischbach)
1246* Auto-respond to successive requests made with a single XHR object (Jan Suchý)
1247* Add the ability for mock to accept sinon.match matchers as expected arguments (Zcicala)
1248* Adding support for XMLHttpRequest.upload to FakeXMLHttpRequest (Benjamin Coe)
1249* Allow onCall to be combined with returns* and throwsException in stub behavior
1250 sequences (Tim Fischbach)
1251* Fixed deepEqual to detect properties on array objects
1252* Fixed problem with chained timers with delay=0 (Ian Lewis)
1253* Use formatio in place of buster-format (Devin Weaver)
1254
1255== 1.7.3 / 2013-06-20
1256
1257* Removed use of array forEach, breaks in older browsers (Martin Hansen)
1258* sinon.deepEqual(new Date(0), new Date()) returns true (G.Serebryanskyi)
1259
1260== 1.7.2 / 2013-05-08
1261
1262* Sinon 1.7 has split calls out to a separate file. This caused some problems,
1263 so 1.7.2 ships with spyCall as part of spy.js like it used to be.
1264
1265== 1.7.1 / 2013-05-07
1266
1267* Fake XMLHttpRequest updated to call onerror and onsuccess callbacks, fixing
1268 jQuery 2.0 problems (Roman Potashow)
1269* Implement XMLHttpRequest progress event api (Marten Lienen)
1270* Added sinon.restore() (Jonny Reeves)
1271* Fix bug where throwing a string was handled incorrectly by Sinon (Brandon Heyer)
1272* Web workers support (Victor Costan)
1273
1274== 1.7.0
1275
1276* Failed release, see 1.7.1
1277
1278== 1.6.0 / 2013-02-18
1279* Add methods to spyCall interface: callArgOn, callArgOnWith, yieldOn,
1280 yieldToOn (William Sears)
1281* sinon.createStubInstance creates a fully stubbed instance from a constructor
1282 (Shawn Krisman)
1283* resetBehavior resets fakes created by withArgs (Martin Sander)
1284* The fake server now logs to sinon.log, if set (Luis Cardoso)
1285* Cleaner npm package that also includes pkg/sinon.js and
1286 pkg/sinon-ie.js for cases where npm is used to install Sinon for
1287 browser usage (Domenic Denicola)
1288* Improved spy formatter %C output (Farid Neshat)
1289* clock.tick returns clock.now (Michael Jackson)
1290* Fixed issue #248 with callOrder assertion
1291 Did not fail if the last given spy was never called (Maximilian Antoni)
1292* Fixed issue with setResponseHeader for synchronous requests (goligo)
1293* Remove msSetImmediate; it only existed in IE10 previews (Domenic Denicola)
1294* Fix #231: not always picking up the latest calls to callsArgWith, etc.
1295 (Domenic Denicola)
1296* Fix failing anonymous mock expectations
1297
1298== 1.5.2 / 2012-11-28
1299* Revert stub.reset changes that caused existing tests to fail.
1300
1301== 1.5.1 / 2012-11-27
1302* Ensure window.Image can be stubbed. (Adrian Phinney)
1303* Fix spy() in IE 8 (Scott Andrews)
1304* Fix sinon base in IE 8 (Scott Andrews)
1305* Format arguments ouput when mock excpetation is not met (kbackowski)
1306* Calling spy.reset directly from stub.reset (Thomas Meyer)
1307
1308== 1.5.0 / 2012-10-19
1309* Don't force "use strict" on Sinon consumers
1310* Don't assume objects have hasOwnProperties. Fixes problem with e.g.
1311 stubbing properties on process.env
1312* Preserve function length for spy (Maximilian Antoni)
1313* Add 'invokeCallback' alias for 'yield' on calls (Maximilian Antoni)
1314* Added matcher support for calledOn (Maximilian Antoni)
1315* Retain original expectation messages, for failed mocks under sinon.test
1316 (Giorgos Giannoutsos)
1317* Allow yields* and callsArg* to create sequences of calls. (Domenic Denicola)
1318* sinon.js can catch itself in endless loop while filling stub prototype
1319 with asynch methods (Jan Kopriva)
1320
1321== 1.4.2 / 2012-07-11
1322* sinon.match for arrays (Maximilian Antoni)
1323
1324== 1.4.1 / 2012-07-11
1325* Strengthen a Node.JS inference to avoid quirky behavior with Mocha
1326 (which provides a shim process object)
1327
1328== 1.4.0 / 2012-07-09
1329* Argument matchers (Maximillian Antoni)
1330 sinon.match.{any, same, typeOf, instanceOf, has, hasOwn, defined, truthy,
1331 falsy} as well as typeOf shortcuts for boolean, number, string, object,
1332 function, array, regexp and date. The result of a call can be used with
1333 spy.calledWith.
1334* spy.returned now works with matchers and compares objects deeply.
1335* Matcher assertions: calledWithMatch, alwaysCalledWithMatch and
1336 neverCalledWithMatch
1337* calledWithNew and alwaysCalledWithNew for assert (Maximilian Antoni)
1338* Easier stubbed fluent interfaces: stub.returnsThis() (Glen Mailer)
1339* allow yields() and family to be used along with returns()/throws() and
1340 family (Glen Mailer)
1341* Async versions `callsArg*` and `yields*` for stubs (TEHEK)
1342* Format args when doing `spy.printf("%*")` (Domenic Denicola)
1343* Add notCalled property to spies
1344* Fix: spy.reset did not reset fakes created by spy.withArgs (Maximilian Antoni)
1345* Properly restore stubs when stubbing entire objects through the sandbox
1346 (Konrad Holowinski)
1347* Restore global methods properly - delete properties that where not own
1348 properties (Keith Cirkel)
1349* setTimeout and setInterval pass arguments (Rodion Vynnychenko)
1350* Timer callbacks that contain a clock.tick no longer fails (Wesley Waser)
1351* spy(undefined, "property") now throws
1352* Prevent multiple restore for fake timers (Kevin Decker)
1353* Fix toString format under Node (Kevin Decker)
1354* Mock expectations emit success and failure events (Kevin Decker)
1355* Development improvement: Use Buster.JS to test Sinon
1356* Fix bug where expect.atLeast failed when minimum calls where received
1357* Make fake server safe to load on node.js
1358* Add support for no args on .withArgs and .withExactArgs (Tek Nynja)
1359* Avoid hasOwnProperty for host objects
1360
1361== 1.3.2 / 2012-03-11
1362* Stronger Node inference in sandbox
1363* Fixed issue with sinon.useFakeTimers() and Rhino.js 1.7R3
1364* Formatting brush-up
1365* FIX Internet Explorer misreporting the type of Function objects
1366 originating in an external window as "object" instead of "function".
1367* New methods stub.callsArgOn, stub.callsArgOnWith,
1368 stub.yieldsOn, stub.yieldsToOn
1369* Implemented
1370* Fixing `clearTimeout` to not throw when called for nonexistent IDs.
1371* Spys that are created using 'withArgs' now get initialized with previous
1372 calls to the original spy.
1373* Minor bug fixes and docs cleanup.
1374
1375== 1.3.1 / 2012-01-04
1376* Fix bug in core sinon: isNode was used for both a variable and a function,
1377 causing load errors and lots of bugs. Should have never left the door.
1378
1379== 1.3.0 / 2012-01-01
1380* Support using bare functions as fake server response handlers (< 1.3.0
1381 required URL and/or method matcher too)
1382* Log some internal errors to sinon.log (defaults to noop). Set sinon.log
1383 to your logging utility of choice for better feedback when.
1384* White-list fake XHRs: Allows some fake requests and some that fall through to
1385 the backend server (Tim Ruffles)
1386* Decide Date.now support at fake-time. Makes it possible to load something that
1387 polyfills Date.now after Sinon loaded and still have Date.now on fake Dates.
1388* Mirror properties on replaced function properties
1389* New methods: spy.yield(), spy.yieldTo(), spy.callArg() and spy.callArgWith()
1390 can be used to invoke callbacks passed to spies (while avoiding the mock-like
1391 upfront yields() and friends). invokeCallback is available as an alias for
1392 yield for people working with strict mode. (Maximilian Antoni)
1393* New properties: spy.firstCall, spy.secondCall, spy.thirdCall and spy.lastCall.
1394 (Maximilian Antoni)
1395* New method: stub.returnsArg(), causes stub to return one of its arguments.
1396 (Gavin Huang)
1397* Stubs now work for inherited methods. This was previously prohibited to avoid
1398 stubbing not-yet-implemented methods. (Felix Geisendörfer)
1399* server.respond() can now accept the same arguments as server.respondWith() for
1400 quick-and-dirty respondWith+respond. (Gavin Huang)
1401* Format objects with buster-format in the default bundle. Default to
1402 util.inspect on node unless buster-format is available (not a hard dependency,
1403 more like a 'preference').
1404
1405* Bug fix: Make sure XHRs can complete even if onreadystatechange handler fails
1406* Bug fix: Mirror entire Date.prototype, including toUTCString when faking
1407* Bug fix: Default this object to global in exposed asserts
1408* Bug fix: sinon.test: use try/finally instead of catch and throw - preserves
1409 stack traces (Kevin Turner)
1410* Bug fix: Fake `setTimeout` now returns ids greater than 0. (Domenic Denicola)
1411* Bug fix: NPM install warning (Felix Geisendörfer)
1412* Bug fix: Fake timers no longer swallows exceptions (Felix Geisendörfer)
1413* Bug fix: Properly expose all needed asserts for node
1414* Bug fix: wrapMethod on window property (i.e. when stubbing/spying on global
1415 functions)
1416* Bug fix: Quote "yield" (Ben Hockey)
1417* Bug fix: callOrder works correctly when spies have been called multiple times
1418
1419== 1.2.0 / 2011-09-27
1420* Bug fix: abort() switches state to DONE when OPENED and sent. Fix by
1421 Tristan Koch.
1422* Bug fix: Mootools uses MSXML2.XMLHTTP as objectId, which Sinon matched with
1423 different casing. Fix by Olmo Maldonado.
1424* Bug fix: When wrapping a non-owned property, restore now removes the wrapper
1425 instead of replacing it. Fix by Will Butler.
1426* Bug fix: Make it possibly to stub Array.prototype.push by not using that
1427 method directly inside Sinon.
1428* Bug fix: Don't assume that req.requestBody is a string in the fake server.
1429* Added spy.printf(format) to print a nicely formatted message with details
1430 about a spy.
1431* Garbage collection: removing fakes from collections when restoring the
1432 original methods. Fix by Tristan Koch.
1433* Add spy.calledWithNew to check if a function was used as a constructor
1434* Add spy.notCalledWith(), spy.neverCalledWith() and
1435 sinon.assert.neverCalledWith. By Max Antoni
1436* Publicly expose sinon.expectation.fail to allow tools to integrate with mock
1437 expectations.
1438* Fake XMLHttpRequests now support a minimal portion of the events API, making
1439 them work seamlessly with e.g. SproutCode (which uses
1440 xhr.addEventListener("readystatechange"). Partially by Sven Fuchs.
1441
1442== 1.1.1 / 2011-05-17
1443* Fix broken mock verification in CommonJS when not including the full Sinon
1444 package.
1445
1446== 1.1.0 / 2011-05-04
1447* The fake server now has a autoRespond method which allows it to respond to
1448 requests on the fly (asynchronously), making it a good fit for mockup
1449 development
1450* Stubs and spies now has a withArgs method. Using it allows you to create
1451 several spies/stubs for the same method, filtered by received arguments
1452* Stubs now has yields and yieldsTo methods for fuzzily invoking callbacks.
1453 They work like callsArgAt only by inferring what callback to invoke, and
1454 yieldsTo can invoke callbacks in object "options" arguments.
1455* Allow sandboxes/collections to stub any property so long as the object
1456 has the property as an own property
1457* Significantly improve error reporting from failed mock expecations. Now prints
1458 all met and unmet expectations with expected and received arguments
1459* Allow mock expectations to be consumed in any order
1460* Add pretty printing of all calls when assertions fail
1461* Fix bug: Stub exception message ended up as "undefined" (string) if not
1462 specified
1463* Pass capture groups in URLs to fakeServer function handlers
1464* Pass through return value from test function in testCase
1465* typeof require is not enough to assume node, also use typeof module
1466* Don't use Object.create in sinon.create. In the off chance that someone stubs
1467 it, sinon will fail mysteriously (Thanks to Espen Dalløkken)
1468* Catch exceptions when parsing DOM elements "on a hunch"
1469 When responding to XHRs, Sinon acts like most browsers and try to parse the
1470 response into responseXML if Content-Type indicates XML or HTML. However, it
1471 also does this if the type is not set. Obviously, this may misfire and
1472 should be caught.
1473* Fix fakeServer.respond() to not drop requests when they are queued during the
1474 processing of an existing queue. (Sven Fuchs)
1475* Clean up module loading in CommonJS environments (Node.js still the only
1476 tested such environment). No longer (temporarily) modifies require.paths,
1477 always loads all modules.
1478
1479== 1.0.2 / 2011-02-22
1480* Fix JSON bug in package.json
1481* Sandbox no longer tries to use a fake server if config says so, but
1482 server is not loaded
1483
1484== 1.0.1 / 2010-12-20
1485* Make sure sinon.sandbox is exposed in node.js (fix by Gord Tanner)
1486
1487== 1.0.0 / 2010-12-08
1488* Switched indentation from 2 to 4 spaces :)
1489* Node.js compatibility improvements
1490* Remove magic booleans from sinon.assert.expose, replace with option object
1491* Put QUnit adapter in its own repository
1492* Update build script to build standalone timers and server files
1493* Breaking change: thisObj -> thisValue
1494 Change brings consistency to the code-base, always use thisValue
1495* Add sinon.assert.pass callback for successful assertions
1496* Extract sandbox configuration from sinon.test
1497
1498 Refactored sinon.test to not do all the heavy lifting in creating sandbox
1499 objects from sinon.config. Now sinon.sandbox.create accepts an optional
1500 configuration that can be retrieved through sinon.getConfig({ ... }) - or, to
1501 match previous behavior, through sinon.getConfig(sinon.config);
1502
1503 The default configuration now lives in sinon.defaultConfig rather than the
1504 previous sinon.test.
1505
1506 This change enables external tools, such as test framework adapters, to easily
1507 create configurable sandboxes without going through sinon.test
1508* Rewrite sinon.clock.tick to fix bug and make implementation clearer
1509* Test config load correct files
1510* Make timers and XHR truly standalone by splitting the IE work-around in two files
1511* Don't fail when comparing DOM elements in sinon.deepEqual (used in calledWith(...))
1512* Should mirror properties on Date when faking it
1513* Added and updated configuration for both JsLint and JavaScript lint
1514* [August Lilleaas] The build script can optionally build a file without the
1515 version name in it, by passing 'plain', i.e. './build plain'.
1516
1517 Useful when using the build script to build and use sinon programatically, so
1518 one can 'cp path/to/sinon/pkg/sinon.js my/scripts/'
1519* [August Lilleaas] Checking and warning if we got a load error and rubygems
1520 isn't present.
1521* [August Lilleaas] Updating build script to be runnable from any
1522 directory. Current working directory doesn't have to be repo root.
1523
1524== 0.8.0 / 2010-10-30
1525* sinon.wrapMethod no longer accepts faking already faked methods
1526* sinon-qunit 'plugin'
1527* sinon.test / sinon.config can now expose the sandbox object
1528
1529== 0.7.2 / 2010-10-25
1530* Add sinon.sandbox.create back in
1531* Fix bug where clock.tick would fire timeouts in intervals when
1532 setInterval was also called
1533
1534== 0.7.1 / 2010-10-16
1535* The fake server will now match paths against full URLs, meaning that
1536 server.respondWith("/", "OK"); will match requests for
1537 "http://currentHost/".
1538* Improved toString method for spies and stubs which leads to more
1539 precise error messages from sinon.assert.*
1540
1541== 0.7.0 / 2010-09-19
1542* sinon.useFakeTimers now fakes the Date constructor by default
1543* sinon.testCase now fakes XHR and timers by default
1544* sinon.config controls the behavior of sinon.testCase
1545* Fixed bug in clock.tick - now fires timers in correct order
1546* Added the ability to tick a clock string for longer ticks.
1547 Passing a number causes the clock to tick the specified amount of
1548 milliseconds, passing a string like "12:32" ticks 12 minutes and 32
1549 seconds.
1550* calledBefore and calledAfter for individual calls
1551* New assertions
1552 sinon.assert.notCalled
1553 sinon.assert.calledOnce
1554 sinon.assert.calledTwice
1555 sinon.assert.calledThrice
1556* sinon.test now throws if passed anything other than a function
1557* sinon.testCase now throws if passed anything other than an object
1558* sinon.{spy,stub}(obj, method) now throws if the property is not an
1559 existing function - helps avoid perpetuating typo bugs
1560* Vastly improved error messages from assertions
1561* Spies/stubs/expectations can have their names resolved in many cases
1562* Removed feature where sinon.testCase allowed for nested test cases
1563 (does not belong in Sinon.JS)
1564* Organizational change: src/ becomes lib/ Helps npm compatibility
1565* Thanks to Cory Flanigan for help on npm compatibility
1566
1567== 0.6.2 / 2010-08-12
1568* Fixed another bug in sinon.fakeServerWithClock where consecutive
1569 respond() calls did not trigger timeouts.
1570
1571== 0.6.1 / 2010-08-12
1572* Fixed a bug in sinon.fakeServerWithClock where the clock was ticked
1573 before the server had responded to all requests, resulting in
1574 objects not having been responded to by the time the timeout ran.
1575
1576== 0.6.0 / 2010-08-10
1577* FakeXMLHttpRequest
1578* sinon.useFakeXMLHttpRequest
1579* sinon.fakeServer
1580* sinon.fakeServerWithClock
1581* Improved fake timers implementation, made them work properly in IE 6-8
1582* Improved sinon.sandbox
1583 * Added useFakeServer
1584 * Added inject method
1585* Improved sinon.test method
1586 * Made configuration aware
1587 * Now uses sinon.sandbox in place of sinon.collection
1588* Changed default configuration for sinon.test, breaking compatibility
1589 with 0.5.0 - can be changed through sinon.config
1590
1591== 0.5.0 / 2010-06-09
1592* Initial release
1593* Spies, stubs, mocks
1594* Assertions
1595* collections, test, testCase
1596* Fake timers (half-baked)