Skip to content

Commit 08f109c

Browse files
pedrottimarkSimenB
authored andcommitted
expect: Display expectedDiff more carefully in toBeCloseTo (#8389)
1 parent b09de2d commit 08f109c

File tree

5 files changed

+171
-112
lines changed

5 files changed

+171
-112
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44

55
### Fixes
66

7+
- `[expect]` Display expectedDiff more carefully in toBeCloseTo ([#8389](https://github.com/facebook/jest/pull/8389))
78
- `[jest-fake-timers]` `getTimerCount` will not include cancelled immediates ([#8764](https://github.com/facebook/jest/pull/8764))
89

910
### Chore & Maintenance

packages/expect/src/__tests__/__snapshots__/matchers.test.js.snap

Lines changed: 113 additions & 80 deletions
Original file line numberDiff line numberDiff line change
@@ -469,7 +469,7 @@ Expected: <green>false</>
469469
Received: <red>true</>"
470470
`;
471471

472-
exports[`.toBeCloseTo() {pass: false} expect(-Infinity)toBeCloseTo( -1.23) 1`] = `
472+
exports[`.toBeCloseTo {pass: false} expect(-Infinity).toBeCloseTo(-1.23) 1`] = `
473473
"<dim>expect(</><red>received</><dim>).</>toBeCloseTo<dim>(</><green>expected</><dim>)</>
474474

475475
Expected: <green>-1.23</>
@@ -480,7 +480,62 @@ Expected difference: < <green>0.005</>
480480
Received difference: <red>Infinity</>"
481481
`;
482482

483-
exports[`.toBeCloseTo() {pass: false} expect(Infinity)toBeCloseTo( -Infinity) 1`] = `
483+
exports[`.toBeCloseTo {pass: false} expect(0).toBeCloseTo(0.01) 1`] = `
484+
"<dim>expect(</><red>received</><dim>).</>toBeCloseTo<dim>(</><green>expected</><dim>)</>
485+
486+
Expected: <green>0.01</>
487+
Received: <red>0</>
488+
489+
Expected precision: 2
490+
Expected difference: < <green>0.005</>
491+
Received difference: <red>0.01</>"
492+
`;
493+
494+
exports[`.toBeCloseTo {pass: false} expect(1).toBeCloseTo(1.23) 1`] = `
495+
"<dim>expect(</><red>received</><dim>).</>toBeCloseTo<dim>(</><green>expected</><dim>)</>
496+
497+
Expected: <green>1.23</>
498+
Received: <red>1</>
499+
500+
Expected precision: 2
501+
Expected difference: < <green>0.005</>
502+
Received difference: <red>0.22999999999999998</>"
503+
`;
504+
505+
exports[`.toBeCloseTo {pass: false} expect(1.23).toBeCloseTo(1.2249999) 1`] = `
506+
"<dim>expect(</><red>received</><dim>).</>toBeCloseTo<dim>(</><green>expected</><dim>)</>
507+
508+
Expected: <green>1.2249999</>
509+
Received: <red>1.23</>
510+
511+
Expected precision: 2
512+
Expected difference: < <green>0.005</>
513+
Received difference: <red>0.005000099999999952</>"
514+
`;
515+
516+
exports[`.toBeCloseTo {pass: false} expect(3.141592e-7).toBeCloseTo(3e-7, 8) 1`] = `
517+
"<dim>expect(</><red>received</><dim>).</>toBeCloseTo<dim>(</><green>expected</><dim>, </>precision<dim>)</>
518+
519+
Expected: <green>3e-7</>
520+
Received: <red>3.141592e-7</>
521+
522+
Expected precision: 8
523+
Expected difference: < <green>5e-9</>
524+
Received difference: <red>1.4159200000000025e-8</>"
525+
`;
526+
527+
exports[`.toBeCloseTo {pass: false} expect(56789).toBeCloseTo(51234, -4) 1`] = `
528+
"<dim>expect(</><red>received</><dim>).</>toBeCloseTo<dim>(</><green>expected</><dim>, </>precision<dim>)</>
529+
530+
Expected: <green>51234</>
531+
Received: <red>56789</>
532+
533+
Expected precision: -4
534+
Expected difference: < <green>5000</>
535+
Received difference: <red>5555</>"
536+
`;
537+
538+
exports[`.toBeCloseTo {pass: false} expect(Infinity).toBeCloseTo(-Infinity) 1`] = `
484539
"<dim>expect(</><red>received</><dim>).</>toBeCloseTo<dim>(</><green>expected</><dim>)</>
485540

486541
Expected: <green>-Infinity</>
@@ -491,7 +546,7 @@ Expected difference: < <green>0.005</>
491546
Received difference: <red>Infinity</>"
492547
`;
493548

494-
exports[`.toBeCloseTo() {pass: false} expect(Infinity)toBeCloseTo( 1.23) 1`] = `
549+
exports[`.toBeCloseTo {pass: false} expect(Infinity).toBeCloseTo(1.23) 1`] = `
495550
"<dim>expect(</><red>received</><dim>).</>toBeCloseTo<dim>(</><green>expected</><dim>)</>
496551

497552
Expected: <green>1.23</>
@@ -502,21 +557,43 @@ Expected difference: < <green>0.005</>
502557
Received difference: <red>Infinity</>"
503558
`;
504559

505-
exports[`.toBeCloseTo() {pass: true} expect(-Infinity)toBeCloseTo( -Infinity) 1`] = `
560+
exports[`.toBeCloseTo {pass: true} expect(-Infinity).toBeCloseTo(-Infinity) 1`] = `
506561
"<dim>expect(</><red>received</><dim>).</>not<dim>.</>toBeCloseTo<dim>(</><green>expected</><dim>)</>
507562

508563
Expected: not <green>-Infinity</>
509564
"
510565
`;
511566

512-
exports[`.toBeCloseTo() {pass: true} expect(0)toBeCloseTo( 0) 1`] = `
567+
exports[`.toBeCloseTo {pass: true} expect(0).toBeCloseTo(0) 1`] = `
513568
"<dim>expect(</><red>received</><dim>).</>not<dim>.</>toBeCloseTo<dim>(</><green>expected</><dim>)</>
514569

515570
Expected: not <green>0</>
516571
"
517572
`;
518573

519-
exports[`.toBeCloseTo() {pass: true} expect(0)toBeCloseTo( 0.001) 1`] = `
574+
exports[`.toBeCloseTo {pass: true} expect(0).toBeCloseTo(0.000004, 5) 1`] = `
575+
"<dim>expect(</><red>received</><dim>).</>not<dim>.</>toBeCloseTo<dim>(</><green>expected</><dim>, </>precision<dim>)</>
576+
577+
Expected: not <green>0.000004</>
578+
Received: <red>0</>
579+
580+
Expected precision: 5
581+
Expected difference: not < <green>0.000005</>
582+
Received difference: <red>0.000004</>"
583+
`;
584+
585+
exports[`.toBeCloseTo {pass: true} expect(0).toBeCloseTo(0.0001, 3) 1`] = `
586+
"<dim>expect(</><red>received</><dim>).</>not<dim>.</>toBeCloseTo<dim>(</><green>expected</><dim>, </>precision<dim>)</>
587+
588+
Expected: not <green>0.0001</>
589+
Received: <red>0</>
590+
591+
Expected precision: 3
592+
Expected difference: not < <green>0.0005</>
593+
Received difference: <red>0.0001</>"
594+
`;
595+
596+
exports[`.toBeCloseTo {pass: true} expect(0).toBeCloseTo(0.001) 1`] = `
520597
"<dim>expect(</><red>received</><dim>).</>not<dim>.</>toBeCloseTo<dim>(</><green>expected</><dim>)</>
521598

522599
Expected: not <green>0.001</>
@@ -527,7 +604,18 @@ Expected difference: not < <green>0.005</>
527604
Received difference: <red>0.001</>"
528605
`;
529606

530-
exports[`.toBeCloseTo() {pass: true} expect(1.23)toBeCloseTo( 1.225) 1`] = `
607+
exports[`.toBeCloseTo {pass: true} expect(0).toBeCloseTo(0.1, 0) 1`] = `
608+
"<dim>expect(</><red>received</><dim>).</>not<dim>.</>toBeCloseTo<dim>(</><green>expected</><dim>, </>precision<dim>)</>
609+
610+
Expected: not <green>0.1</>
611+
Received: <red>0</>
612+
613+
Expected precision: 0
614+
Expected difference: not < <green>0.5</>
615+
Received difference: <red>0.1</>"
616+
`;
617+
618+
exports[`.toBeCloseTo {pass: true} expect(1.23).toBeCloseTo(1.225) 1`] = `
531619
"<dim>expect(</><red>received</><dim>).</>not<dim>.</>toBeCloseTo<dim>(</><green>expected</><dim>)</>
532620

533621
Expected: not <green>1.225</>
@@ -538,7 +626,7 @@ Expected difference: not < <green>0.005</>
538626
Received difference: <red>0.004999999999999893</>"
539627
`;
540628

541-
exports[`.toBeCloseTo() {pass: true} expect(1.23)toBeCloseTo( 1.226) 1`] = `
629+
exports[`.toBeCloseTo {pass: true} expect(1.23).toBeCloseTo(1.226) 1`] = `
542630
"<dim>expect(</><red>received</><dim>).</>not<dim>.</>toBeCloseTo<dim>(</><green>expected</><dim>)</>
543631

544632
Expected: not <green>1.226</>
@@ -549,7 +637,7 @@ Expected difference: not < <green>0.005</>
549637
Received difference: <red>0.0040000000000000036</>"
550638
`;
551639

552-
exports[`.toBeCloseTo() {pass: true} expect(1.23)toBeCloseTo( 1.229) 1`] = `
640+
exports[`.toBeCloseTo {pass: true} expect(1.23).toBeCloseTo(1.229) 1`] = `
553641
"<dim>expect(</><red>received</><dim>).</>not<dim>.</>toBeCloseTo<dim>(</><green>expected</><dim>)</>
554642

555643
Expected: not <green>1.229</>
@@ -560,7 +648,7 @@ Expected difference: not < <green>0.005</>
560648
Received difference: <red>0.0009999999999998899</>"
561649
`;
562650

563-
exports[`.toBeCloseTo() {pass: true} expect(1.23)toBeCloseTo( 1.234) 1`] = `
651+
exports[`.toBeCloseTo {pass: true} expect(1.23).toBeCloseTo(1.234) 1`] = `
564652
"<dim>expect(</><red>received</><dim>).</>not<dim>.</>toBeCloseTo<dim>(</><green>expected</><dim>)</>
565653

566654
Expected: not <green>1.234</>
@@ -571,80 +659,25 @@ Expected difference: not < <green>0.005</>
571659
Received difference: <red>0.0040000000000000036</>"
572660
`;
573661

574-
exports[`.toBeCloseTo() {pass: true} expect(Infinity)toBeCloseTo( Infinity) 1`] = `
575-
"<dim>expect(</><red>received</><dim>).</>not<dim>.</>toBeCloseTo<dim>(</><green>expected</><dim>)</>
576-
577-
Expected: not <green>Infinity</>
578-
"
579-
`;
580-
581-
exports[`.toBeCloseTo() accepts an optional precision argument: [0, 0.000004, 5] 1`] = `
662+
exports[`.toBeCloseTo {pass: true} expect(2.0000002).toBeCloseTo(2, 5) 1`] = `
582663
"<dim>expect(</><red>received</><dim>).</>not<dim>.</>toBeCloseTo<dim>(</><green>expected</><dim>, </>precision<dim>)</>
583664

584-
Expected: not <green>0.000004</>
585-
Received: <red>0</>
665+
Expected: not <green>2</>
666+
Received: <red>2.0000002</>
586667

587668
Expected precision: 5
588-
Expected difference: not < <green>0.000005</>
589-
Received difference: <red>0.000004</>"
669+
Expected difference: not < <green>5e-6</>
670+
Received difference: <red>2.0000000011677344e-7</>"
590671
`;
591672

592-
exports[`.toBeCloseTo() accepts an optional precision argument: [0, 0.0001, 3] 1`] = `
593-
"<dim>expect(</><red>received</><dim>).</>not<dim>.</>toBeCloseTo<dim>(</><green>expected</><dim>, </>precision<dim>)</>
594-
595-
Expected: not <green>0.0001</>
596-
Received: <red>0</>
597-
598-
Expected precision: 3
599-
Expected difference: not < <green>0.0005</>
600-
Received difference: <red>0.0001</>"
601-
`;
602-
603-
exports[`.toBeCloseTo() accepts an optional precision argument: [0, 0.1, 0] 1`] = `
604-
"<dim>expect(</><red>received</><dim>).</>not<dim>.</>toBeCloseTo<dim>(</><green>expected</><dim>, </>precision<dim>)</>
605-
606-
Expected: not <green>0.1</>
607-
Received: <red>0</>
608-
609-
Expected precision: 0
610-
Expected difference: not < <green>0.5</>
611-
Received difference: <red>0.1</>"
612-
`;
613-
614-
exports[`.toBeCloseTo() throws: [0, 0.01] 1`] = `
615-
"<dim>expect(</><red>received</><dim>).</>toBeCloseTo<dim>(</><green>expected</><dim>)</>
616-
617-
Expected: <green>0.01</>
618-
Received: <red>0</>
619-
620-
Expected precision: 2
621-
Expected difference: < <green>0.005</>
622-
Received difference: <red>0.01</>"
623-
`;
624-
625-
exports[`.toBeCloseTo() throws: [1, 1.23] 1`] = `
626-
"<dim>expect(</><red>received</><dim>).</>toBeCloseTo<dim>(</><green>expected</><dim>)</>
627-
628-
Expected: <green>1.23</>
629-
Received: <red>1</>
630-
631-
Expected precision: 2
632-
Expected difference: < <green>0.005</>
633-
Received difference: <red>0.22999999999999998</>"
634-
`;
635-
636-
exports[`.toBeCloseTo() throws: [1.23, 1.2249999] 1`] = `
637-
"<dim>expect(</><red>received</><dim>).</>toBeCloseTo<dim>(</><green>expected</><dim>)</>
638-
639-
Expected: <green>1.2249999</>
640-
Received: <red>1.23</>
673+
exports[`.toBeCloseTo {pass: true} expect(Infinity).toBeCloseTo(Infinity) 1`] = `
674+
"<dim>expect(</><red>received</><dim>).</>not<dim>.</>toBeCloseTo<dim>(</><green>expected</><dim>)</>
641675

642-
Expected precision: 2
643-
Expected difference: < <green>0.005</>
644-
Received difference: <red>0.005000099999999952</>"
676+
Expected: not <green>Infinity</>
677+
"
645678
`;
646679

647-
exports[`.toBeCloseTo() throws: Matcher error promise empty isNot false received 1`] = `
680+
exports[`.toBeCloseTo throws: Matcher error promise empty isNot false received 1`] = `
648681
"<dim>expect(</><red>received</><dim>).</>toBeCloseTo<dim>(</><green>expected</><dim>, </>precision<dim>)</>
649682

650683
<bold>Matcher error</>: <red>received</> value must be a number
@@ -653,15 +686,15 @@ Received has type: string
653686
Received has value: <red>\\"\\"</>"
654687
`;
655688

656-
exports[`.toBeCloseTo() throws: Matcher error promise empty isNot true expected 1`] = `
689+
exports[`.toBeCloseTo throws: Matcher error promise empty isNot true expected 1`] = `
657690
"<dim>expect(</><red>received</><dim>).</>not<dim>.</>toBeCloseTo<dim>(</><green>expected</><dim>)</>
658691

659692
<bold>Matcher error</>: <green>expected</> value must be a number
660693

661694
Expected has value: <green>undefined</>"
662695
`;
663696

664-
exports[`.toBeCloseTo() throws: Matcher error promise rejects isNot false expected 1`] = `
697+
exports[`.toBeCloseTo throws: Matcher error promise rejects isNot false expected 1`] = `
665698
"<dim>expect(</><red>received</><dim>).</>rejects<dim>.</>toBeCloseTo<dim>(</><green>expected</><dim>)</>
666699

667700
<bold>Matcher error</>: <green>expected</> value must be a number
@@ -670,7 +703,7 @@ Expected has type: string
670703
Expected has value: <green>\\"0\\"</>"
671704
`;
672705

673-
exports[`.toBeCloseTo() throws: Matcher error promise rejects isNot true received 1`] = `
706+
exports[`.toBeCloseTo throws: Matcher error promise rejects isNot true received 1`] = `
674707
"<dim>expect(</><red>received</><dim>).</>rejects<dim>.</>not<dim>.</>toBeCloseTo<dim>(</><green>expected</><dim>)</>
675708

676709
<bold>Matcher error</>: <red>received</> value must be a number
@@ -679,7 +712,7 @@ Received has type: symbol
679712
Received has value: <red>Symbol(0.1)</>"
680713
`;
681714

682-
exports[`.toBeCloseTo() throws: Matcher error promise resolves isNot false received 1`] = `
715+
exports[`.toBeCloseTo throws: Matcher error promise resolves isNot false received 1`] = `
683716
"<dim>expect(</><red>received</><dim>).</>resolves<dim>.</>toBeCloseTo<dim>(</><green>expected</><dim>, </>precision<dim>)</>
684717

685718
<bold>Matcher error</>: <red>received</> value must be a number
@@ -688,7 +721,7 @@ Received has type: boolean
688721
Received has value: <red>false</>"
689722
`;
690723

691-
exports[`.toBeCloseTo() throws: Matcher error promise resolves isNot true expected 1`] = `
724+
exports[`.toBeCloseTo throws: Matcher error promise resolves isNot true expected 1`] = `
692725
"<dim>expect(</><red>received</><dim>).</>resolves<dim>.</>not<dim>.</>toBeCloseTo<dim>(</><green>expected</><dim>, </>precision<dim>)</>
693726

694727
<bold>Matcher error</>: <green>expected</> value must be a number

0 commit comments

Comments
 (0)