Skip to content

Commit

Permalink
Merge branch 'main' into add-qa
Browse files Browse the repository at this point in the history
  • Loading branch information
KirillDyachkovskiy authored Nov 30, 2023
2 parents cffa90f + d767727 commit af52e7b
Show file tree
Hide file tree
Showing 7 changed files with 32 additions and 14 deletions.
4 changes: 4 additions & 0 deletions src/components/Select/Select.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -156,6 +156,10 @@ export const Select = React.forwardRef<HTMLButtonElement, SelectProps>(function
handleOptionClick(getActiveItem(listRef));
}
}
if ([KeyCode.ARROW_DOWN, KeyCode.ARROW_UP].includes(e.key) && !open) {
e.preventDefault();
toggleOpen();
}

listRef?.current?.onKeyDown(e);
},
Expand Down
16 changes: 16 additions & 0 deletions src/components/Select/__tests__/Select.base-actions.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,22 @@ describe('Select base actions', () => {
await user.keyboard('[Space]');
getByTestId(SelectQa.POPUP);
});

test('ArrowUp', async () => {
const {getByTestId} = setup();
const user = userEvent.setup();
await user.keyboard('[Tab]');
await user.keyboard('[ArrowUp]');
getByTestId(SelectQa.POPUP);
});

test('ArrowDown', async () => {
const {getByTestId} = setup();
const user = userEvent.setup();
await user.keyboard('[Tab]');
await user.keyboard('[ArrowDown]');
getByTestId(SelectQa.POPUP);
});
});

describe('initial state', () => {
Expand Down
10 changes: 4 additions & 6 deletions src/components/controls/TextArea/__tests__/TextArea.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -39,19 +39,17 @@ describe('TextArea', () => {
render(<TextArea hasClear />);
const user = userEvent.setup();
const input = screen.getByRole('textbox');
let clearButton = screen.queryByRole('button', {name: 'Clear input value'});
let clearButton = screen.queryByRole('button', {name: 'Clear'});
expect(clearButton).not.toBeInTheDocument();
await user.type(input, 'abc');
clearButton = screen.queryByRole('button', {name: 'Clear input value'});
clearButton = screen.queryByRole('button', {name: 'Clear'});
expect(clearButton).toBeInTheDocument();
});

test('do not render clear button without hasClear prop', () => {
render(<TextArea />);

expect(
screen.queryByRole('button', {name: 'Clear input value'}),
).not.toBeInTheDocument();
expect(screen.queryByRole('button', {name: 'Clear'})).not.toBeInTheDocument();
});

test('call onChange when input changes value', () => {
Expand Down Expand Up @@ -79,7 +77,7 @@ describe('TextArea', () => {
render(<TextArea hasClear onChange={onChangeFn} />);
const input = screen.getByRole('textbox');
await user.type(input, 'abc');
const clear = screen.getByRole('button', {name: 'Clear input value'});
const clear = screen.getByRole('button', {name: 'Clear'});

if (clear) {
await user.click(clear);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,19 +40,17 @@ describe('TextInput input', () => {
render(<TextInput hasClear />);
const user = userEvent.setup();
const input = screen.getByRole('textbox');
let clearButton = screen.queryByRole('button', {name: 'Clear input value'});
let clearButton = screen.queryByRole('button', {name: 'Clear'});
expect(clearButton).not.toBeInTheDocument();
await user.type(input, 'abc');
clearButton = screen.queryByRole('button', {name: 'Clear input value'});
clearButton = screen.queryByRole('button', {name: 'Clear'});
expect(clearButton).toBeInTheDocument();
});

test('do not render clear button without hasClear prop', () => {
render(<TextInput />);

expect(
screen.queryByRole('button', {name: 'Clear input value'}),
).not.toBeInTheDocument();
expect(screen.queryByRole('button', {name: 'Clear'})).not.toBeInTheDocument();
});

test('call onChange when input changes value', () => {
Expand Down Expand Up @@ -80,7 +78,7 @@ describe('TextInput input', () => {
render(<TextInput hasClear onChange={onChangeFn} />);
const input = screen.getByRole('textbox');
await user.type(input, 'abc');
const clear = screen.getByRole('button', {name: 'Clear input value'});
const clear = screen.getByRole('button', {name: 'Clear'});

if (clear) {
await user.click(clear);
Expand Down
2 changes: 1 addition & 1 deletion src/components/controls/common/ClearButton/i18n/en.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
"label_clear-button": "Clear input value"
"label_clear-button": "Clear"
}
2 changes: 1 addition & 1 deletion src/components/controls/common/ClearButton/i18n/ru.json
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
{
"label_clear-button": "Очистить введённое значение"
"label_clear-button": "Очистить"
}
2 changes: 2 additions & 0 deletions src/constants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,4 +6,6 @@ export const KeyCode = {
SPACEBAR: ' ',
SPACEBAR_OLD: 'Spacebar',
ESCAPE: 'Escape',
ARROW_UP: 'ArrowUp',
ARROW_DOWN: 'ArrowDown',
};

0 comments on commit af52e7b

Please sign in to comment.