Skip to content

Commit f993af8

Browse files
author
刘欢
committed
feat:调整单测
1 parent a7801a8 commit f993af8

File tree

3 files changed

+73
-157
lines changed

3 files changed

+73
-157
lines changed

tests/ListScrollBar.test.tsx

Lines changed: 0 additions & 95 deletions
This file was deleted.

tests/OptionList.test.tsx

Lines changed: 73 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,9 @@ import OptionList from '../src/OptionList';
66
import SelectContext from '../src/SelectContext';
77
import { fillFieldNames, flattenOptions } from '../src/utils/valueUtil';
88
import { injectRunAllTimers } from './utils/common';
9-
import { createEvent, fireEvent, render } from '@testing-library/react';
9+
import { createEvent, fireEvent, render, waitFor } from '@testing-library/react';
10+
import Select from '../src';
11+
import { spyElementPrototypes } from 'rc-util/lib/test/domHook';
1012

1113
jest.mock('../src/utils/platformUtil');
1214

@@ -459,4 +461,74 @@ describe('OptionList', () => {
459461
});
460462
expect(onActiveValue).not.toHaveBeenCalledWith('3', expect.anything(), expect.anything());
461463
});
464+
465+
describe('List.ScrollBar', () => {
466+
let mockElement;
467+
let boundingRect = {
468+
top: 0,
469+
bottom: 0,
470+
width: 100,
471+
height: 50,
472+
};
473+
474+
beforeAll(() => {
475+
mockElement = spyElementPrototypes(HTMLElement, {
476+
offsetHeight: {
477+
get: () => 100,
478+
},
479+
clientHeight: {
480+
get: () => 50,
481+
},
482+
getBoundingClientRect: () => boundingRect,
483+
offsetParent: {
484+
get: () => document.body,
485+
},
486+
});
487+
});
488+
489+
afterAll(() => {
490+
mockElement.mockRestore();
491+
});
492+
493+
beforeEach(() => {
494+
boundingRect = {
495+
top: 0,
496+
bottom: 0,
497+
width: 100,
498+
height: 50,
499+
};
500+
jest.useFakeTimers();
501+
});
502+
503+
afterEach(() => {
504+
jest.useRealTimers();
505+
});
506+
507+
it('should show scrollbar when showScrollBar is true', async () => {
508+
const options = Array.from({ length: 10 }, (_, index) => ({
509+
label: `${index + 1}`,
510+
value: `${index + 1}`,
511+
}));
512+
513+
const { container } = render(<Select open showScrollBar options={options} />);
514+
515+
await waitFor(() => {
516+
const scrollbarElement = container.querySelector('.rc-virtual-list-scrollbar-visible');
517+
expect(scrollbarElement).not.toBeNull();
518+
});
519+
});
520+
it('not have scrollbar when showScrollBar is false', async () => {
521+
const options = Array.from({ length: 10 }, (_, index) => ({
522+
label: `${index + 1}`,
523+
value: `${index + 1}`,
524+
}));
525+
526+
const { container } = render(<Select open showScrollBar={false} options={options} />);
527+
528+
await waitFor(() => {
529+
const scrollbarElement = container.querySelector('.rc-virtual-list-scrollbar-visible');
530+
expect(scrollbarElement).toBeNull();
531+
});
532+
});
533+
});
462534
});

tests/utils/domHook.ts

Lines changed: 0 additions & 61 deletions
This file was deleted.

0 commit comments

Comments
 (0)