Skip to content

Commit 933760a

Browse files
authored
test: more general test edits (#30)
* more edits across test files
1 parent 4ee5e89 commit 933760a

5 files changed

+67
-85
lines changed

spec/tests/Iterate.spec.tsx

+9-15
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { it, describe, expect, afterEach, vi } from 'vitest';
1+
import { it, describe, expect, afterEach } from 'vitest';
22
import { gray } from 'colorette';
33
import { render, cleanup as cleanupMountedReactTrees, act } from '@testing-library/react';
44
import { Iterate, It, type IterationResult } from '../../src/index.js';
@@ -503,11 +503,6 @@ describe('`Iterate` component', () => {
503503
new IteratorChannelTestHelper<string>(),
504504
];
505505

506-
const [channelReturnSpy1, channelReturnSpy2] = [
507-
vi.spyOn(channel1, 'return'),
508-
vi.spyOn(channel2, 'return'),
509-
];
510-
511506
const buildTestContent = (value: AsyncIterable<string>) => {
512507
return (
513508
<Iterate value={value}>
@@ -524,8 +519,8 @@ describe('`Iterate` component', () => {
524519
{
525520
rendered.rerender(buildTestContent(channel1));
526521

527-
expect(channelReturnSpy1).not.toHaveBeenCalled();
528-
expect(channelReturnSpy2).not.toHaveBeenCalled();
522+
expect(channel1.return).not.toHaveBeenCalled();
523+
expect(channel2.return).not.toHaveBeenCalled();
529524
expect(lastRenderFnInput).toStrictEqual({
530525
value: undefined,
531526
pendingFirst: true,
@@ -548,8 +543,8 @@ describe('`Iterate` component', () => {
548543
{
549544
rendered.rerender(buildTestContent(channel2));
550545

551-
expect(channelReturnSpy1).toHaveBeenCalledOnce();
552-
expect(channelReturnSpy2).not.toHaveBeenCalled();
546+
expect(channel1.return).toHaveBeenCalledOnce();
547+
expect(channel2.return).not.toHaveBeenCalled();
553548
expect(lastRenderFnInput).toStrictEqual({
554549
value: 'a',
555550
pendingFirst: true,
@@ -572,8 +567,8 @@ describe('`Iterate` component', () => {
572567
{
573568
rendered.rerender(buildTestContent((async function* () {})()));
574569

575-
expect(channelReturnSpy1).toHaveBeenCalledOnce();
576-
expect(channelReturnSpy2).toHaveBeenCalledOnce();
570+
expect(channel1.return).toHaveBeenCalledOnce();
571+
expect(channel2.return).toHaveBeenCalledOnce();
577572
expect(lastRenderFnInput).toStrictEqual({
578573
value: 'b',
579574
pendingFirst: true,
@@ -589,7 +584,6 @@ describe('`Iterate` component', () => {
589584
let lastRenderFnInput: undefined | IterationResult<string | undefined>;
590585

591586
const channel = new IteratorChannelTestHelper<string>();
592-
const channelReturnSpy = vi.spyOn(channel, 'return');
593587

594588
const buildTestContent = (value: AsyncIterable<string>) => {
595589
return (
@@ -607,7 +601,7 @@ describe('`Iterate` component', () => {
607601
{
608602
rendered.rerender(buildTestContent(channel));
609603

610-
expect(channelReturnSpy).not.toHaveBeenCalled();
604+
expect(channel.return).not.toHaveBeenCalled();
611605
expect(lastRenderFnInput).toStrictEqual({
612606
value: undefined,
613607
pendingFirst: true,
@@ -629,7 +623,7 @@ describe('`Iterate` component', () => {
629623

630624
{
631625
rendered.unmount();
632-
expect(channelReturnSpy).toHaveBeenCalledOnce();
626+
expect(channel.return).toHaveBeenCalledOnce();
633627
}
634628
});
635629

spec/tests/iterateFormatted.spec.tsx

+6-11
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { it, describe, expect, afterEach, vi } from 'vitest';
1+
import { it, describe, expect, afterEach } from 'vitest';
22
import { gray } from 'colorette';
33
import { render, cleanup as cleanupMountedReactTrees, act } from '@testing-library/react';
44
import { iterateFormatted, Iterate } from '../../src/index.js';
@@ -84,11 +84,6 @@ describe('`iterateFormatted` function', () => {
8484
new IteratorChannelTestHelper<string>(),
8585
];
8686

87-
const [channelReturnSpy1, channelReturnSpy2] = [
88-
vi.spyOn(channel1, 'return'),
89-
vi.spyOn(channel2, 'return'),
90-
];
91-
9287
const rebuildTestContent = (it: AsyncIterable<string>) => (
9388
<Iterate
9489
value={pipe(
@@ -104,17 +99,17 @@ describe('`iterateFormatted` function', () => {
10499
const rendered = render(<></>);
105100

106101
rendered.rerender(rebuildTestContent(channel1));
107-
expect(channelReturnSpy1).not.toHaveBeenCalled();
102+
expect(channel1.return).not.toHaveBeenCalled();
108103

109104
rendered.rerender(rebuildTestContent(channel1));
110-
expect(channelReturnSpy1).not.toHaveBeenCalled();
105+
expect(channel1.return).not.toHaveBeenCalled();
111106

112107
rendered.rerender(rebuildTestContent(channel2));
113-
expect(channelReturnSpy1).toHaveBeenCalledOnce();
114-
expect(channelReturnSpy2).not.toHaveBeenCalled();
108+
expect(channel1.return).toHaveBeenCalledOnce();
109+
expect(channel2.return).not.toHaveBeenCalled();
115110

116111
rendered.rerender(rebuildTestContent(channel2));
117-
expect(channelReturnSpy2).not.toHaveBeenCalled();
112+
expect(channel2.return).not.toHaveBeenCalled();
118113
}
119114
);
120115

spec/tests/useAsyncIter.spec.ts

+9-15
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { it, describe, expect, afterEach, vi } from 'vitest';
1+
import { it, describe, expect, afterEach } from 'vitest';
22
import { gray } from 'colorette';
33
import { cleanup as cleanupMountedReactTrees, act, renderHook } from '@testing-library/react';
44
import { useAsyncIter } from '../../src/index.js';
@@ -339,11 +339,6 @@ describe('`useAsyncIter` hook', () => {
339339
new IteratorChannelTestHelper<string>(),
340340
];
341341

342-
const [channelReturnSpy1, channelReturnSpy2] = [
343-
vi.spyOn(channel1, 'return'),
344-
vi.spyOn(channel2, 'return'),
345-
];
346-
347342
const renderedHook = renderHook(({ value }) => useAsyncIter(value), {
348343
initialProps: {
349344
value: (async function* () {})() as AsyncIterable<string>,
@@ -353,8 +348,8 @@ describe('`useAsyncIter` hook', () => {
353348
{
354349
renderedHook.rerender({ value: channel1 });
355350

356-
expect(channelReturnSpy1).not.toHaveBeenCalled();
357-
expect(channelReturnSpy2).not.toHaveBeenCalled();
351+
expect(channel1.return).not.toHaveBeenCalled();
352+
expect(channel2.return).not.toHaveBeenCalled();
358353
expect(renderedHook.result.current).toStrictEqual({
359354
value: undefined,
360355
pendingFirst: true,
@@ -375,8 +370,8 @@ describe('`useAsyncIter` hook', () => {
375370
{
376371
renderedHook.rerender({ value: channel2 });
377372

378-
expect(channelReturnSpy1).toHaveBeenCalledOnce();
379-
expect(channelReturnSpy2).not.toHaveBeenCalled();
373+
expect(channel1.return).toHaveBeenCalledOnce();
374+
expect(channel2.return).not.toHaveBeenCalled();
380375
expect(renderedHook.result.current).toStrictEqual({
381376
value: 'a',
382377
pendingFirst: true,
@@ -397,8 +392,8 @@ describe('`useAsyncIter` hook', () => {
397392
{
398393
renderedHook.rerender({ value: (async function* () {})() });
399394

400-
expect(channelReturnSpy1).toHaveBeenCalledOnce();
401-
expect(channelReturnSpy2).toHaveBeenCalledOnce();
395+
expect(channel1.return).toHaveBeenCalledOnce();
396+
expect(channel2.return).toHaveBeenCalledOnce();
402397
expect(renderedHook.result.current).toStrictEqual({
403398
value: 'b',
404399
pendingFirst: true,
@@ -411,7 +406,6 @@ describe('`useAsyncIter` hook', () => {
411406

412407
it(gray('When unmounted will close the last active iterator it held'), async () => {
413408
const channel = new IteratorChannelTestHelper<string>();
414-
const channelReturnSpy = vi.spyOn(channel, 'return');
415409

416410
const renderedHook = renderHook(({ value }) => useAsyncIter(value), {
417411
initialProps: {
@@ -422,7 +416,7 @@ describe('`useAsyncIter` hook', () => {
422416
{
423417
renderedHook.rerender({ value: channel });
424418

425-
expect(channelReturnSpy).not.toHaveBeenCalled();
419+
expect(channel.return).not.toHaveBeenCalled();
426420
expect(renderedHook.result.current).toStrictEqual({
427421
value: undefined,
428422
pendingFirst: true,
@@ -442,7 +436,7 @@ describe('`useAsyncIter` hook', () => {
442436

443437
{
444438
renderedHook.unmount();
445-
expect(channelReturnSpy).toHaveBeenCalledOnce();
439+
expect(channel.return).toHaveBeenCalledOnce();
446440
}
447441
});
448442

spec/tests/useAsyncIterMulti.spec.ts

+29-39
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { it, describe, expect, afterEach, vi } from 'vitest';
1+
import { it, describe, expect, afterEach } from 'vitest';
22
import { gray } from 'colorette';
33
import { range } from 'lodash-es';
44
import { cleanup as cleanupMountedReactTrees, act, renderHook } from '@testing-library/react';
@@ -352,8 +352,8 @@ describe('`useAsyncIterMulti` hook', () => {
352352
async () => {
353353
let channel1 = new IteratorChannelTestHelper<'a' | 'b' | 'c'>();
354354
let channel2 = new IteratorChannelTestHelper<'a' | 'b' | 'c'>();
355-
const channel1ReturnSpy = vi.spyOn(channel1, 'return');
356-
const channel2ReturnSpy = vi.spyOn(channel2, 'return');
355+
const origChannel1ReturnSpy = channel1.return;
356+
const origChannel2ReturnSpy = channel2.return;
357357
let timesRerendered = 0;
358358

359359
const renderedHook = renderHook(
@@ -366,17 +366,17 @@ describe('`useAsyncIterMulti` hook', () => {
366366

367367
await act(() => {});
368368
expect(timesRerendered).toStrictEqual(1);
369-
expect(channel1ReturnSpy).not.toHaveBeenCalled();
370-
expect(channel2ReturnSpy).not.toHaveBeenCalled();
369+
expect(origChannel1ReturnSpy).not.toHaveBeenCalled();
370+
expect(origChannel2ReturnSpy).not.toHaveBeenCalled();
371371
expect(renderedHook.result.current).toStrictEqual([
372372
{ value: undefined, pendingFirst: true, done: false, error: undefined },
373373
{ value: undefined, pendingFirst: true, done: false, error: undefined },
374374
]);
375375

376376
await act(() => channel1.put('a'));
377377
expect(timesRerendered).toStrictEqual(2);
378-
expect(channel1ReturnSpy).not.toHaveBeenCalled();
379-
expect(channel2ReturnSpy).not.toHaveBeenCalled();
378+
expect(origChannel1ReturnSpy).not.toHaveBeenCalled();
379+
expect(origChannel2ReturnSpy).not.toHaveBeenCalled();
380380
expect(renderedHook.result.current).toStrictEqual([
381381
{ value: 'a', pendingFirst: false, done: false, error: undefined },
382382
{ value: undefined, pendingFirst: true, done: false, error: undefined },
@@ -387,8 +387,8 @@ describe('`useAsyncIterMulti` hook', () => {
387387
renderedHook.rerender({ values: [channel1, channel2] as const });
388388
});
389389
expect(timesRerendered).toStrictEqual(3);
390-
expect(channel1ReturnSpy).toHaveBeenCalled();
391-
expect(channel2ReturnSpy).not.toHaveBeenCalled();
390+
expect(origChannel1ReturnSpy).toHaveBeenCalledOnce();
391+
expect(origChannel2ReturnSpy).not.toHaveBeenCalled();
392392
expect(renderedHook.result.current).toStrictEqual([
393393
{ value: 'a', pendingFirst: true, done: false, error: undefined },
394394
{ value: undefined, pendingFirst: true, done: false, error: undefined },
@@ -399,8 +399,8 @@ describe('`useAsyncIterMulti` hook', () => {
399399
renderedHook.rerender({ values: [channel1, channel2] as const });
400400
});
401401
expect(timesRerendered).toStrictEqual(4);
402-
expect(channel1ReturnSpy).toHaveBeenCalled();
403-
expect(channel2ReturnSpy).toHaveBeenCalled();
402+
expect(origChannel1ReturnSpy).toHaveBeenCalledOnce();
403+
expect(origChannel2ReturnSpy).toHaveBeenCalledOnce();
404404
expect(renderedHook.result.current).toStrictEqual([
405405
{ value: 'a', pendingFirst: true, done: false, error: undefined },
406406
{ value: undefined, pendingFirst: true, done: false, error: undefined },
@@ -418,8 +418,6 @@ describe('`useAsyncIterMulti` hook', () => {
418418
it(gray('When unmounted will close all the last held active iterators'), async () => {
419419
const channel1 = new IteratorChannelTestHelper<'a' | 'b' | 'c'>();
420420
const channel2 = new IteratorChannelTestHelper<'a' | 'b' | 'c'>();
421-
const channel1ReturnSpy = vi.spyOn(channel1, 'return');
422-
const channel2ReturnSpy = vi.spyOn(channel2, 'return');
423421

424422
const renderedHook = renderHook(props => useAsyncIterMulti(props.values), {
425423
initialProps: {
@@ -432,8 +430,8 @@ describe('`useAsyncIterMulti` hook', () => {
432430

433431
{
434432
await act(() => renderedHook.rerender({ values: [channel1, channel2] }));
435-
expect(channel1ReturnSpy).not.toHaveBeenCalled();
436-
expect(channel2ReturnSpy).not.toHaveBeenCalled();
433+
expect(channel1.return).not.toHaveBeenCalled();
434+
expect(channel2.return).not.toHaveBeenCalled();
437435
expect(renderedHook.result.current).toStrictEqual([
438436
{ value: undefined, pendingFirst: true, done: false, error: undefined },
439437
{ value: undefined, pendingFirst: true, done: false, error: undefined },
@@ -448,8 +446,8 @@ describe('`useAsyncIterMulti` hook', () => {
448446

449447
{
450448
renderedHook.unmount();
451-
expect(channel1ReturnSpy).toHaveBeenCalledOnce();
452-
expect(channel2ReturnSpy).toHaveBeenCalledOnce();
449+
expect(channel1.return).toHaveBeenCalledOnce();
450+
expect(channel2.return).toHaveBeenCalledOnce();
453451
}
454452
});
455453

@@ -464,12 +462,6 @@ describe('`useAsyncIterMulti` hook', () => {
464462
const channelB = new IteratorChannelTestHelper<string>();
465463
const channelC = new IteratorChannelTestHelper<string>();
466464

467-
const [channelReturnSpyA, channelReturnSpyB, channelReturnSpyC] = [
468-
channelA,
469-
channelB,
470-
channelC,
471-
].map(ch => vi.spyOn(ch, 'return'));
472-
473465
const renderedHook = await act(() =>
474466
renderHook(({ values }) => useAsyncIterMulti(values), {
475467
initialProps: { values },
@@ -555,9 +547,9 @@ describe('`useAsyncIterMulti` hook', () => {
555547
values.splice(0, 3);
556548
renderedHook.rerender({ values });
557549
});
558-
expect(channelReturnSpyC).not.toHaveBeenCalled();
559-
expect(channelReturnSpyB).not.toHaveBeenCalled();
560-
expect(channelReturnSpyA).not.toHaveBeenCalled();
550+
expect(channelC.return).not.toHaveBeenCalled();
551+
expect(channelB.return).not.toHaveBeenCalled();
552+
expect(channelA.return).not.toHaveBeenCalled();
561553
expect(renderedHook.result.current).toStrictEqual([
562554
{ value: 'c_from_iter', pendingFirst: false, done: false, error: undefined },
563555
{ value: 'b_from_iter', pendingFirst: false, done: false, error: undefined },
@@ -568,9 +560,9 @@ describe('`useAsyncIterMulti` hook', () => {
568560
values.shift();
569561
renderedHook.rerender({ values });
570562
});
571-
expect(channelReturnSpyC).toHaveBeenCalledOnce();
572-
expect(channelReturnSpyB).not.toHaveBeenCalled();
573-
expect(channelReturnSpyA).not.toHaveBeenCalled();
563+
expect(channelC.return).toHaveBeenCalledOnce();
564+
expect(channelB.return).not.toHaveBeenCalled();
565+
expect(channelA.return).not.toHaveBeenCalled();
574566
expect(renderedHook.result.current).toStrictEqual([
575567
{ value: 'b_from_iter', pendingFirst: false, done: false, error: undefined },
576568
{ value: 'a_from_iter', pendingFirst: false, done: false, error: undefined },
@@ -580,9 +572,9 @@ describe('`useAsyncIterMulti` hook', () => {
580572
values.shift();
581573
renderedHook.rerender({ values });
582574
});
583-
expect(channelReturnSpyC).toHaveBeenCalledOnce();
584-
expect(channelReturnSpyB).toHaveBeenCalledOnce();
585-
expect(channelReturnSpyA).not.toHaveBeenCalled();
575+
expect(channelC.return).toHaveBeenCalledOnce();
576+
expect(channelB.return).toHaveBeenCalledOnce();
577+
expect(channelA.return).not.toHaveBeenCalled();
586578
expect(renderedHook.result.current).toStrictEqual([
587579
{ value: 'a_from_iter', pendingFirst: false, done: false, error: undefined },
588580
]);
@@ -591,9 +583,9 @@ describe('`useAsyncIterMulti` hook', () => {
591583
values.shift();
592584
renderedHook.rerender({ values });
593585
});
594-
expect(channelReturnSpyC).toHaveBeenCalledOnce();
595-
expect(channelReturnSpyB).toHaveBeenCalledOnce();
596-
expect(channelReturnSpyA).toHaveBeenCalledOnce();
586+
expect(channelC.return).toHaveBeenCalledOnce();
587+
expect(channelB.return).toHaveBeenCalledOnce();
588+
expect(channelA.return).toHaveBeenCalledOnce();
597589
expect(renderedHook.result.current).toStrictEqual([]);
598590
}
599591
);
@@ -665,8 +657,6 @@ describe('`useAsyncIterMulti` hook', () => {
665657
async () => {
666658
const channel1 = new IteratorChannelTestHelper<string>();
667659
const channel2 = new IteratorChannelTestHelper<string>();
668-
const channel1ReturnSpy = vi.spyOn(channel1, 'return');
669-
const channel2ReturnSpy = vi.spyOn(channel2, 'return');
670660

671661
const renderedHook = await act(() =>
672662
renderHook(() =>
@@ -685,8 +675,8 @@ describe('`useAsyncIterMulti` hook', () => {
685675
for (let i = 0; i < 3; ++i) {
686676
await act(() => renderedHook.rerender());
687677
}
688-
expect(channel1ReturnSpy).not.toHaveBeenCalled();
689-
expect(channel2ReturnSpy).not.toHaveBeenCalled();
678+
expect(channel1.return).not.toHaveBeenCalled();
679+
expect(channel2.return).not.toHaveBeenCalled();
690680

691681
await act(() => channel1.put('a'));
692682
expect(renderedHook.result.current).toStrictEqual([

0 commit comments

Comments
 (0)