Skip to content

Commit 264c985

Browse files
committed
refactor: aria-invalid, aria-required default false
1 parent 4aae3ec commit 264c985

File tree

8 files changed

+38
-29
lines changed

8 files changed

+38
-29
lines changed

โ€Žsrc/components/Checkbox/Checkbox.test.tsxโ€Ž

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -151,7 +151,7 @@ describe("๋ Œ๋”๋ง", () => {
151151
test("required prop์ด ์—†์„ ๋•Œ aria-required ์†์„ฑ์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์„ค์ •๋œ๋‹ค", () => {
152152
render(<Checkbox label="์ผ๋ฐ˜ ์ฒดํฌ๋ฐ•์Šค" />);
153153
const checkbox = screen.getByRole("checkbox");
154-
expect(checkbox).not.toHaveAttribute("aria-required");
154+
expect(checkbox).toHaveAttribute("aria-required", "false");
155155
});
156156

157157
test("required๊ฐ€ true์ผ ๋•Œ aria-required ์†์„ฑ์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์„ค์ •๋œ๋‹ค", () => {
@@ -163,7 +163,7 @@ describe("๋ Œ๋”๋ง", () => {
163163
test("required๊ฐ€ false์ผ ๋•Œ aria-required ์†์„ฑ์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์„ค์ •๋œ๋‹ค", () => {
164164
render(<Checkbox label="์ผ๋ฐ˜ ์ฒดํฌ๋ฐ•์Šค" required={false} />);
165165
const checkbox = screen.getByRole("checkbox");
166-
expect(checkbox).not.toHaveAttribute("aria-required");
166+
expect(checkbox).toHaveAttribute("aria-required", "false");
167167
});
168168
});
169169

โ€Žsrc/components/Checkbox/Checkbox.tsxโ€Ž

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ export const Checkbox = ({
4545
checked,
4646
defaultChecked,
4747
disabled,
48-
invalid,
48+
invalid = false,
4949
tone = "brand",
5050
required = false,
5151
onChange,
@@ -111,10 +111,7 @@ export const Checkbox = ({
111111
)}
112112
</ArkCheckbox.Label>
113113
)}
114-
<ArkCheckbox.HiddenInput
115-
data-test-tone={tone}
116-
aria-required={required ? true : undefined}
117-
/>
114+
<ArkCheckbox.HiddenInput data-test-tone={tone} aria-required={required} />
118115
</ArkCheckbox.Root>
119116
);
120117
};

โ€Žsrc/components/PasswordInput/PasswordInput.test.tsxโ€Ž

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ test("์ ‘๊ทผ์„ฑ ์†์„ฑ์„ ์ œ๊ณตํ•œ๋‹ค (aria-label, aria-pressed)", async () =>
8585
test("invalid prop์ด ์—†์„ ๋•Œ aria-invalid ์†์„ฑ์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์„ค์ •๋œ๋‹ค", () => {
8686
render(<PasswordInput />);
8787
const input = screen.getByLabelText(/ํŒจ์Šค์›Œ๋“œ/, { selector: "input" });
88-
expect(input).not.toHaveAttribute("aria-invalid");
88+
expect(input).toHaveAttribute("aria-invalid", "false");
8989
});
9090

9191
test("invalid๊ฐ€ true์ผ ๋•Œ aria-invalid ์†์„ฑ์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์„ค์ •๋œ๋‹ค", () => {
@@ -97,13 +97,13 @@ test("invalid๊ฐ€ true์ผ ๋•Œ aria-invalid ์†์„ฑ์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์„ค์ •๋œ๋‹ค",
9797
test("invalid๊ฐ€ false์ผ ๋•Œ aria-invalid ์†์„ฑ์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์„ค์ •๋œ๋‹ค", () => {
9898
render(<PasswordInput invalid={false} />);
9999
const input = screen.getByLabelText(/ํŒจ์Šค์›Œ๋“œ/, { selector: "input" });
100-
expect(input).not.toHaveAttribute("aria-invalid");
100+
expect(input).toHaveAttribute("aria-invalid", "false");
101101
});
102102

103103
test("required prop์ด ์—†์„ ๋•Œ aria-required ์†์„ฑ์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์„ค์ •๋œ๋‹ค", () => {
104104
render(<PasswordInput />);
105105
const input = screen.getByLabelText(/ํŒจ์Šค์›Œ๋“œ/, { selector: "input" });
106-
expect(input).not.toHaveAttribute("aria-required");
106+
expect(input).toHaveAttribute("aria-required", "false");
107107
});
108108

109109
test("required๊ฐ€ true์ผ ๋•Œ aria-required ์†์„ฑ์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์„ค์ •๋œ๋‹ค", () => {
@@ -115,7 +115,7 @@ test("required๊ฐ€ true์ผ ๋•Œ aria-required ์†์„ฑ์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์„ค์ •๋œ๋‹ค"
115115
test("required๊ฐ€ false์ผ ๋•Œ aria-required ์†์„ฑ์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์„ค์ •๋œ๋‹ค", () => {
116116
render(<PasswordInput required={false} />);
117117
const input = screen.getByLabelText(/ํŒจ์Šค์›Œ๋“œ/, { selector: "input" });
118-
expect(input).not.toHaveAttribute("aria-required");
118+
expect(input).toHaveAttribute("aria-required", "false");
119119
});
120120

121121
test("ํ‚ค๋ณด๋“œ(Space/Enter)๋กœ ๊ฐ€์‹œ์„ฑ์„ ํ† ๊ธ€ํ•  ์ˆ˜ ์žˆ๋‹ค", async () => {

โ€Žsrc/components/PasswordInput/PasswordInput.tsxโ€Ž

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,8 @@ export function PasswordInput({
5050
disabled={disabled}
5151
className={inputStyles()}
5252
aria-label="ํŒจ์Šค์›Œ๋“œ"
53-
aria-invalid={invalid ? true : undefined}
54-
aria-required={required ? true : undefined}
53+
aria-invalid={invalid}
54+
aria-required={required}
5555
{...rest}
5656
/>
5757
<button

โ€Žsrc/components/Select/Select.test.tsxโ€Ž

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -440,7 +440,10 @@ describe("์ ‘๊ทผ์„ฑ ๋ฐ ๊ธฐํƒ€", () => {
440440
<option value="react">React</option>
441441
</Select>,
442442
);
443-
expect(screen.getByRole("combobox")).not.toHaveAttribute("aria-invalid");
443+
expect(screen.getByRole("combobox")).toHaveAttribute(
444+
"aria-invalid",
445+
"false",
446+
);
444447
});
445448

446449
test("invalid๊ฐ€ true์ผ ๋•Œ aria-invalid ์†์„ฑ์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์„ค์ •๋œ๋‹ค", () => {
@@ -461,7 +464,10 @@ describe("์ ‘๊ทผ์„ฑ ๋ฐ ๊ธฐํƒ€", () => {
461464
<option value="react">React</option>
462465
</Select>,
463466
);
464-
expect(screen.getByRole("combobox")).not.toHaveAttribute("aria-invalid");
467+
expect(screen.getByRole("combobox")).toHaveAttribute(
468+
"aria-invalid",
469+
"false",
470+
);
465471
});
466472

467473
test("required prop์ด ์—†์„ ๋•Œ aria-required ์†์„ฑ์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์„ค์ •๋œ๋‹ค", () => {
@@ -470,7 +476,10 @@ describe("์ ‘๊ทผ์„ฑ ๋ฐ ๊ธฐํƒ€", () => {
470476
<option value="react">React</option>
471477
</Select>,
472478
);
473-
expect(screen.getByRole("combobox")).not.toHaveAttribute("aria-required");
479+
expect(screen.getByRole("combobox")).toHaveAttribute(
480+
"aria-required",
481+
"false",
482+
);
474483
});
475484

476485
test("required๊ฐ€ true์ผ ๋•Œ aria-required ์†์„ฑ์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์„ค์ •๋œ๋‹ค", () => {
@@ -491,7 +500,10 @@ describe("์ ‘๊ทผ์„ฑ ๋ฐ ๊ธฐํƒ€", () => {
491500
<option value="react">React</option>
492501
</Select>,
493502
);
494-
expect(screen.getByRole("combobox")).not.toHaveAttribute("aria-required");
503+
expect(screen.getByRole("combobox")).toHaveAttribute(
504+
"aria-required",
505+
"false",
506+
);
495507
});
496508

497509
test("disabled ์˜ต์…˜์ด ์žˆ์„ ๋•Œ ํ•ด๋‹น ์˜ต์…˜์€ disabled ์†์„ฑ์„ ๊ฐ€์ง„๋‹ค", () => {

โ€Žsrc/components/Select/Select.tsxโ€Ž

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -52,8 +52,8 @@ export function Select({
5252
value,
5353
defaultValue,
5454
disabled,
55-
required,
56-
invalid,
55+
required = false,
56+
invalid = false,
5757
clearButtonName,
5858
placeholder,
5959
children,
@@ -165,8 +165,8 @@ export function Select({
165165
onChange={handleChange}
166166
disabled={disabled}
167167
required={required}
168-
aria-invalid={invalid ? true : undefined}
169-
aria-required={required ? true : undefined}
168+
aria-invalid={invalid}
169+
aria-required={required}
170170
className={selectStyles({ invalid, showClearButton })}
171171
{...rest}
172172
>

โ€Žsrc/components/TextInput/TextInput.test.tsxโ€Ž

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ describe("TextInput", () => {
5858
test("invalid prop์ด ์—†์„ ๋•Œ aria-invalid ์†์„ฑ์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์„ค์ •๋œ๋‹ค", () => {
5959
render(<TextInput />);
6060
const inputElement = screen.getByRole("textbox");
61-
expect(inputElement).not.toHaveAttribute("aria-invalid");
61+
expect(inputElement).toHaveAttribute("aria-invalid", "false");
6262
});
6363

6464
test("invalid๊ฐ€ true์ผ ๋•Œ aria-invalid ์†์„ฑ์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์„ค์ •๋œ๋‹ค", () => {
@@ -70,13 +70,13 @@ describe("TextInput", () => {
7070
test("invalid๊ฐ€ false์ผ ๋•Œ aria-invalid ์†์„ฑ์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์„ค์ •๋œ๋‹ค", () => {
7171
render(<TextInput invalid={false} />);
7272
const inputElement = screen.getByRole("textbox");
73-
expect(inputElement).not.toHaveAttribute("aria-invalid");
73+
expect(inputElement).toHaveAttribute("aria-invalid", "false");
7474
});
7575

7676
test("required prop์ด ์—†์„ ๋•Œ aria-required ์†์„ฑ์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์„ค์ •๋œ๋‹ค", () => {
7777
render(<TextInput />);
7878
const inputElement = screen.getByRole("textbox");
79-
expect(inputElement).not.toHaveAttribute("aria-required");
79+
expect(inputElement).toHaveAttribute("aria-required", "false");
8080
});
8181

8282
test("required๊ฐ€ true์ผ ๋•Œ aria-required ์†์„ฑ์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์„ค์ •๋œ๋‹ค", () => {
@@ -88,7 +88,7 @@ describe("TextInput", () => {
8888
test("required๊ฐ€ false์ผ ๋•Œ aria-required ์†์„ฑ์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์„ค์ •๋œ๋‹ค", () => {
8989
render(<TextInput required={false} />);
9090
const inputElement = screen.getByRole("textbox");
91-
expect(inputElement).not.toHaveAttribute("aria-required");
91+
expect(inputElement).toHaveAttribute("aria-required", "false");
9292
});
9393

9494
test("leadingIcon๊ณผ trailingIcon์ด ์ œ๊ณต๋  ๋•Œ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋ Œ๋”๋ง๋˜์–ด์•ผ ํ•œ๋‹ค.", () => {

โ€Žsrc/components/TextInput/TextInput.tsxโ€Ž

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,8 @@ export interface TextInputProps extends Omit<
2424
* - `disabled` prop์œผ๋กœ ๋น„ํ™œ์„ฑํ™” ์ƒํƒœ๋ฅผ ์ œ์–ดํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, `state` prop์„ ํ†ตํ•ด 'error'์™€ ๊ฐ™์€ ํŠน์ • ์ƒํƒœ๋ฅผ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
2525
*/
2626
export function TextInput({
27-
invalid,
28-
required,
27+
invalid = false,
28+
required = false,
2929
className,
3030
leadingIcon,
3131
trailingIcon,
@@ -57,8 +57,8 @@ export function TextInput({
5757
className={inputStyles()}
5858
ref={ref}
5959
disabled={disabled}
60-
aria-invalid={invalid ? true : undefined}
61-
aria-required={required ? true : undefined}
60+
aria-invalid={invalid}
61+
aria-required={required}
6262
{...rest}
6363
/>
6464
{trailingIcon && renderIcon(trailingIcon)}

0 commit comments

Comments
ย (0)