@sakura-ui/sakura-ui 0.1.21 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +16 -6
- package/package.json +26 -20
- package/packages/core/package.json +30 -18
- package/packages/core/src/components/Button.tsx +33 -32
- package/packages/core/src/components/Card.tsx +38 -20
- package/packages/core/src/components/Code.tsx +6 -4
- package/packages/core/src/components/Faq.tsx +13 -7
- package/packages/core/src/components/Heading.tsx +42 -32
- package/packages/core/src/components/Icon.tsx +43 -13
- package/packages/core/src/components/IconButton.tsx +56 -45
- package/packages/core/src/components/LangSelector.tsx +135 -0
- package/packages/core/src/components/Link.tsx +38 -65
- package/packages/core/src/components/LinkCard.tsx +91 -0
- package/packages/core/src/components/List.tsx +14 -12
- package/packages/core/src/components/MenuButton.tsx +112 -0
- package/packages/core/src/components/NavigationItem.tsx +41 -0
- package/packages/core/src/components/OverflowContainer.tsx +24 -0
- package/packages/core/src/components/PopoverMenu.tsx +81 -0
- package/packages/core/src/components/Pre.tsx +6 -4
- package/packages/core/src/components/Table.tsx +35 -28
- package/packages/core/src/components/buttonStyle.ts +55 -38
- package/packages/core/src/components/index.ts +13 -28
- package/packages/core/src/icons/Close.tsx +21 -0
- package/packages/core/src/icons/CloseMobile.tsx +43 -0
- package/packages/core/src/icons/KeyboardArrowDown.tsx +24 -0
- package/packages/core/src/icons/Language.tsx +25 -0
- package/packages/core/src/icons/LanguageMobile.tsx +40 -0
- package/packages/core/src/icons/Menu.tsx +24 -0
- package/packages/core/src/icons/MenuMobile.tsx +40 -0
- package/packages/core/src/icons/index.ts +8 -0
- package/packages/core/src/icons/props.ts +5 -0
- package/packages/core/src/index.ts +9 -29
- package/packages/core/src/type.d.ts +1 -0
- package/packages/core/tests/Button.test.tsx +40 -0
- package/packages/core/tests/Card.test.tsx +36 -8
- package/packages/core/tests/IconButton.test.tsx +57 -0
- package/packages/core/tests/Link.test.tsx +60 -0
- package/packages/core/tests/vitest.setup.ts +2 -0
- package/packages/core/tsconfig.node.json +3 -2
- package/packages/core/vite.config.ts +3 -2
- package/packages/forms/.turbo/turbo-build.log +22 -0
- package/packages/forms/dist/index.cjs.js +242 -152
- package/packages/forms/dist/index.es.js +947 -1010
- package/packages/forms/dist/types/components/Checkbox.d.ts +10 -3
- package/packages/forms/dist/types/components/Checkbox.d.ts.map +1 -1
- package/packages/forms/dist/types/components/FieldsetControl.d.ts +14 -9
- package/packages/forms/dist/types/components/FieldsetControl.d.ts.map +1 -1
- package/packages/forms/dist/types/components/FileInput.d.ts +10 -3
- package/packages/forms/dist/types/components/FileInput.d.ts.map +1 -1
- package/packages/forms/dist/types/components/Input.d.ts +10 -3
- package/packages/forms/dist/types/components/Input.d.ts.map +1 -1
- package/packages/forms/dist/types/components/LabelControl.d.ts +13 -8
- package/packages/forms/dist/types/components/LabelControl.d.ts.map +1 -1
- package/packages/forms/dist/types/components/Radio.d.ts +10 -3
- package/packages/forms/dist/types/components/Radio.d.ts.map +1 -1
- package/packages/forms/dist/types/components/Select.d.ts +10 -3
- package/packages/forms/dist/types/components/Select.d.ts.map +1 -1
- package/packages/forms/dist/types/components/Textarea.d.ts +8 -3
- package/packages/forms/dist/types/components/Textarea.d.ts.map +1 -1
- package/packages/forms/dist/types/components/controlled/CheckboxGroup.d.ts +18 -11
- package/packages/forms/dist/types/components/controlled/CheckboxGroup.d.ts.map +1 -1
- package/packages/forms/dist/types/components/controlled/RadioGroup.d.ts +19 -12
- package/packages/forms/dist/types/components/controlled/RadioGroup.d.ts.map +1 -1
- package/packages/forms/dist/types/components/controlled/index.d.ts +0 -2
- package/packages/forms/dist/types/components/controlled/index.d.ts.map +1 -1
- package/packages/forms/dist/types/components/index.d.ts +8 -8
- package/packages/forms/dist/types/components/index.d.ts.map +1 -1
- package/packages/forms/dist/types/components/inputStyle.d.ts +13 -0
- package/packages/forms/dist/types/components/inputStyle.d.ts.map +1 -0
- package/packages/forms/dist/types/index.d.ts +1 -2
- package/packages/forms/dist/types/index.d.ts.map +1 -1
- package/packages/forms/node_modules/.bin/autoprefixer +2 -2
- package/packages/forms/node_modules/.bin/tailwind +2 -2
- package/packages/forms/node_modules/.bin/tailwindcss +2 -2
- package/packages/forms/node_modules/.bin/ts-node +4 -4
- package/packages/forms/node_modules/.bin/ts-node-cwd +4 -4
- package/packages/forms/node_modules/.bin/ts-node-esm +4 -4
- package/packages/forms/node_modules/.bin/ts-node-script +4 -4
- package/packages/forms/node_modules/.bin/ts-node-transpile-only +4 -4
- package/packages/forms/node_modules/.bin/ts-script +4 -4
- package/packages/forms/node_modules/.bin/tsc +17 -0
- package/packages/forms/node_modules/.bin/tsserver +17 -0
- package/packages/forms/node_modules/.vite/vitest/results.json +1 -0
- package/packages/forms/package.json +21 -17
- package/packages/forms/src/components/Checkbox.tsx +82 -64
- package/packages/forms/src/components/FieldsetControl.tsx +21 -28
- package/packages/forms/src/components/FileInput.tsx +88 -62
- package/packages/forms/src/components/Input.tsx +35 -41
- package/packages/forms/src/components/LabelControl.tsx +19 -25
- package/packages/forms/src/components/Radio.tsx +73 -61
- package/packages/forms/src/components/Select.tsx +71 -61
- package/packages/forms/src/components/Textarea.tsx +50 -54
- package/packages/forms/src/components/controlled/CheckboxGroup.tsx +25 -19
- package/packages/forms/src/components/controlled/RadioGroup.tsx +22 -20
- package/packages/forms/src/components/controlled/index.ts +0 -2
- package/packages/forms/src/components/index.ts +8 -8
- package/packages/forms/src/components/inputStyle.ts +82 -0
- package/packages/forms/src/index.ts +1 -17
- package/packages/forms/tests/Checkbox.test.tsx +44 -0
- package/packages/forms/tests/FieldsetControl.test.tsx +63 -12
- package/packages/forms/tests/FileInput.test.tsx +25 -0
- package/packages/forms/tests/Input.test.tsx +13 -84
- package/packages/forms/tests/LabelControl.test.tsx +83 -21
- package/packages/forms/tests/Radio.test.tsx +24 -79
- package/packages/forms/tests/Select.test.tsx +30 -0
- package/packages/forms/tests/Textarea.test.tsx +25 -0
- package/packages/forms/tests/vitest.setup.ts +2 -0
- package/packages/forms/tsconfig.node.json +3 -2
- package/packages/forms/vite.config.ts +3 -2
- package/packages/helper/.turbo/turbo-build.log +23 -0
- package/packages/helper/dist/index.cjs.js +78 -0
- package/packages/helper/dist/index.es.js +119 -0
- package/packages/helper/dist/types/calc.d.ts +2 -0
- package/packages/helper/dist/types/calc.d.ts.map +1 -0
- package/packages/{forms/dist/types/utils/class.d.ts → helper/dist/types/cx.d.ts} +1 -1
- package/packages/helper/dist/types/cx.d.ts.map +1 -0
- package/packages/helper/dist/types/index.d.ts +6 -0
- package/packages/helper/dist/types/index.d.ts.map +1 -0
- package/packages/helper/dist/types/querySelector.d.ts +2 -0
- package/packages/helper/dist/types/querySelector.d.ts.map +1 -0
- package/packages/helper/dist/types/styles.d.ts +22 -0
- package/packages/helper/dist/types/styles.d.ts.map +1 -0
- package/packages/helper/dist/types/treefy.d.ts +8 -0
- package/packages/helper/dist/types/treefy.d.ts.map +1 -0
- package/packages/{config → helper}/package.json +13 -19
- package/packages/helper/src/calc.ts +1 -0
- package/packages/{core/src/libs → helper/src}/cx.ts +1 -0
- package/packages/helper/src/index.ts +5 -0
- package/packages/helper/src/querySelector.ts +20 -0
- package/packages/helper/src/styles.ts +116 -0
- package/packages/helper/src/treefy.ts +22 -0
- package/packages/helper/vite.config.ts +26 -0
- package/packages/markdown/.turbo/turbo-build.log +22 -0
- package/packages/markdown/README.md +129 -0
- package/packages/markdown/dist/index.cjs.js +175 -0
- package/packages/markdown/dist/index.es.js +17098 -0
- package/packages/markdown/dist/types/components/Markdown.d.ts +15 -0
- package/packages/markdown/dist/types/components/Markdown.d.ts.map +1 -0
- package/packages/markdown/dist/types/components/index.d.ts +2 -0
- package/packages/markdown/dist/types/components/index.d.ts.map +1 -0
- package/packages/markdown/dist/types/index.d.ts +2 -0
- package/packages/markdown/dist/types/index.d.ts.map +1 -0
- package/packages/markdown/dist/types/plugins/attr.d.ts +3 -0
- package/packages/markdown/dist/types/plugins/attr.d.ts.map +1 -0
- package/packages/markdown/dist/types/plugins/card.d.ts +3 -0
- package/packages/markdown/dist/types/plugins/card.d.ts.map +1 -0
- package/packages/markdown/dist/types/plugins/cell.d.ts +3 -0
- package/packages/markdown/dist/types/plugins/cell.d.ts.map +1 -0
- package/packages/markdown/dist/types/plugins/faq.d.ts +3 -0
- package/packages/markdown/dist/types/plugins/faq.d.ts.map +1 -0
- package/packages/markdown/dist/types/plugins/grid.d.ts +3 -0
- package/packages/markdown/dist/types/plugins/grid.d.ts.map +1 -0
- package/packages/markdown/dist/types/plugins/headings.d.ts +9 -0
- package/packages/markdown/dist/types/plugins/headings.d.ts.map +1 -0
- package/packages/markdown/dist/types/plugins/helper.d.ts +9 -0
- package/packages/markdown/dist/types/plugins/helper.d.ts.map +1 -0
- package/packages/markdown/dist/types/plugins/index.d.ts +9 -0
- package/packages/markdown/dist/types/plugins/index.d.ts.map +1 -0
- package/packages/markdown/dist/types/plugins/linkButton.d.ts +3 -0
- package/packages/markdown/dist/types/plugins/linkButton.d.ts.map +1 -0
- package/packages/markdown/dist/types/plugins/youtube.d.ts +3 -0
- package/packages/markdown/dist/types/plugins/youtube.d.ts.map +1 -0
- package/packages/markdown/node_modules/.bin/autoprefixer +17 -0
- package/packages/markdown/node_modules/.bin/tailwind +17 -0
- package/packages/markdown/node_modules/.bin/tailwindcss +17 -0
- package/packages/markdown/node_modules/.bin/ts-node +17 -0
- package/packages/markdown/node_modules/.bin/ts-node-cwd +17 -0
- package/packages/markdown/node_modules/.bin/ts-node-esm +17 -0
- package/packages/markdown/node_modules/.bin/ts-node-script +17 -0
- package/packages/markdown/node_modules/.bin/ts-node-transpile-only +17 -0
- package/packages/markdown/node_modules/.bin/ts-script +17 -0
- package/packages/markdown/node_modules/.bin/tsc +17 -0
- package/packages/markdown/node_modules/.bin/tsserver +17 -0
- package/packages/markdown/package.json +83 -0
- package/packages/markdown/src/components/Markdown.tsx +361 -0
- package/packages/markdown/src/components/index.ts +1 -0
- package/packages/markdown/src/global.d.ts +9 -0
- package/packages/markdown/src/index.ts +1 -0
- package/packages/markdown/src/plugins/attr.ts +19 -0
- package/packages/markdown/src/plugins/card.ts +57 -0
- package/packages/markdown/src/plugins/cell.ts +47 -0
- package/packages/markdown/src/plugins/faq.ts +40 -0
- package/packages/markdown/src/plugins/grid.ts +51 -0
- package/packages/markdown/src/plugins/headings.ts +35 -0
- package/packages/markdown/src/plugins/helper.ts +27 -0
- package/packages/markdown/src/plugins/index.ts +8 -0
- package/packages/markdown/src/plugins/linkButton.ts +25 -0
- package/packages/markdown/src/plugins/youtube.ts +48 -0
- package/packages/markdown/tsconfig.json +13 -0
- package/packages/markdown/tsconfig.node.json +7 -0
- package/packages/{config → markdown}/vite.config.ts +6 -2
- package/packages/tailwind-theme-plugin/.turbo/turbo-build.log +22 -0
- package/packages/tailwind-theme-plugin/dist/index.cjs.js +1 -1
- package/packages/tailwind-theme-plugin/dist/index.es.js +5358 -6115
- package/packages/tailwind-theme-plugin/dist/types/index.d.ts +1 -1
- package/packages/tailwind-theme-plugin/dist/types/index.d.ts.map +1 -1
- package/packages/tailwind-theme-plugin/node_modules/.bin/autoprefixer +4 -4
- package/packages/tailwind-theme-plugin/node_modules/.bin/tailwind +4 -4
- package/packages/tailwind-theme-plugin/node_modules/.bin/tailwindcss +4 -4
- package/packages/tailwind-theme-plugin/node_modules/.bin/ts-node +4 -4
- package/packages/tailwind-theme-plugin/node_modules/.bin/ts-node-cwd +4 -4
- package/packages/tailwind-theme-plugin/node_modules/.bin/ts-node-esm +4 -4
- package/packages/tailwind-theme-plugin/node_modules/.bin/ts-node-script +4 -4
- package/packages/tailwind-theme-plugin/node_modules/.bin/ts-node-transpile-only +4 -4
- package/packages/tailwind-theme-plugin/node_modules/.bin/ts-script +4 -4
- package/packages/tailwind-theme-plugin/node_modules/.bin/tsc +17 -0
- package/packages/tailwind-theme-plugin/node_modules/.bin/tsserver +17 -0
- package/packages/tailwind-theme-plugin/package.json +10 -7
- package/packages/tailwind-theme-plugin/src/index.ts +232 -297
- package/packages/tailwind-theme-plugin/vite.config.ts +1 -1
- package/packages/config/src/index.ts +0 -347
- package/packages/config/tests/index.test.ts +0 -13
- package/packages/core/.eslintrc.json +0 -25
- package/packages/core/src/components/InfoCard.tsx +0 -50
- package/packages/core/src/libs/forward-ref.ts +0 -41
- package/packages/core/src/types/component.ts +0 -82
- package/packages/forms/coverage/clover.xml +0 -209
- package/packages/forms/coverage/coverage-final.json +0 -18
- package/packages/forms/coverage/lcov-report/base.css +0 -224
- package/packages/forms/coverage/lcov-report/block-navigation.js +0 -87
- package/packages/forms/coverage/lcov-report/favicon.png +0 -0
- package/packages/forms/coverage/lcov-report/index.html +0 -161
- package/packages/forms/coverage/lcov-report/prettify.css +0 -1
- package/packages/forms/coverage/lcov-report/prettify.js +0 -2
- package/packages/forms/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/packages/forms/coverage/lcov-report/sorter.js +0 -196
- package/packages/forms/coverage/lcov-report/src/components/Checkbox.tsx.html +0 -295
- package/packages/forms/coverage/lcov-report/src/components/FieldsetControl.tsx.html +0 -295
- package/packages/forms/coverage/lcov-report/src/components/LabelControl.tsx.html +0 -289
- package/packages/forms/coverage/lcov-report/src/components/Radio.tsx.html +0 -262
- package/packages/forms/coverage/lcov-report/src/components/Select.tsx.html +0 -259
- package/packages/forms/coverage/lcov-report/src/components/Text.tsx.html +0 -220
- package/packages/forms/coverage/lcov-report/src/components/Textarea.tsx.html +0 -229
- package/packages/forms/coverage/lcov-report/src/components/context.ts.html +0 -136
- package/packages/forms/coverage/lcov-report/src/components/controlled/CheckboxGroup.tsx.html +0 -244
- package/packages/forms/coverage/lcov-report/src/components/controlled/RadioGroup.tsx.html +0 -265
- package/packages/forms/coverage/lcov-report/src/components/controlled/SelectControl.tsx.html +0 -205
- package/packages/forms/coverage/lcov-report/src/components/controlled/TextControl.tsx.html +0 -202
- package/packages/forms/coverage/lcov-report/src/components/controlled/TextareaControl.tsx.html +0 -205
- package/packages/forms/coverage/lcov-report/src/components/controlled/index.html +0 -191
- package/packages/forms/coverage/lcov-report/src/components/controlled/index.ts.html +0 -100
- package/packages/forms/coverage/lcov-report/src/components/index.html +0 -236
- package/packages/forms/coverage/lcov-report/src/components/index.ts.html +0 -106
- package/packages/forms/coverage/lcov-report/src/index.html +0 -116
- package/packages/forms/coverage/lcov-report/src/index.ts.html +0 -136
- package/packages/forms/coverage/lcov-report/src/utils/index.html +0 -116
- package/packages/forms/coverage/lcov-report/src/utils/index.ts.html +0 -88
- package/packages/forms/coverage/lcov.info +0 -434
- package/packages/forms/dist/types/components/controlled/SelectControl.d.ts +0 -10
- package/packages/forms/dist/types/components/controlled/SelectControl.d.ts.map +0 -1
- package/packages/forms/dist/types/components/controlled/TextareaControl.d.ts +0 -10
- package/packages/forms/dist/types/components/controlled/TextareaControl.d.ts.map +0 -1
- package/packages/forms/dist/types/utils/class.d.ts.map +0 -1
- package/packages/forms/jest.config.ts +0 -11
- package/packages/forms/node_modules/.bin/browserslist +0 -17
- package/packages/forms/node_modules/.bin/eslint +0 -17
- package/packages/forms/node_modules/.bin/vitest +0 -17
- package/packages/forms/node_modules/.vitest/results.json +0 -1
- package/packages/forms/src/components/controlled/SelectControl.tsx +0 -42
- package/packages/forms/src/components/controlled/TextareaControl.tsx +0 -42
- package/packages/forms/src/utils/class.ts +0 -1
- package/packages/tailwind-theme-plugin/node_modules/.bin/browserslist +0 -17
- /package/packages/{config → helper}/tsconfig.json +0 -0
- /package/packages/{config → helper}/tsconfig.node.json +0 -0
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { Style } from '@sakura-ui/helper'
|
|
2
|
+
|
|
3
|
+
export type InputSize = 'lg' | 'md' | 'sm'
|
|
4
|
+
|
|
5
|
+
export const borderedInputBaseStyles = `
|
|
6
|
+
bg-white
|
|
7
|
+
border
|
|
8
|
+
border-solid
|
|
9
|
+
border-solid-gray-900
|
|
10
|
+
disabled:bg-transparent
|
|
11
|
+
disabled:text-solid-gray-500
|
|
12
|
+
disabled:border-solid-gray-500
|
|
13
|
+
aria-invalid:border-red-800
|
|
14
|
+
${Style.focusRect}
|
|
15
|
+
`
|
|
16
|
+
|
|
17
|
+
// for text input and select
|
|
18
|
+
export const borderedInputSizeStyles: { [key in InputSize]: string } = {
|
|
19
|
+
// 16(p-4) * 2 + 22(text-label * leading-snug) + boader * 2 = 56px
|
|
20
|
+
lg: `
|
|
21
|
+
p-4
|
|
22
|
+
text-label
|
|
23
|
+
rounded-lg
|
|
24
|
+
leading-snug
|
|
25
|
+
`,
|
|
26
|
+
// 12(py-3) * 2 + 22(text-label * leading-snug) + boader * 2 = 48px
|
|
27
|
+
md: `
|
|
28
|
+
px-4
|
|
29
|
+
py-3
|
|
30
|
+
text-label
|
|
31
|
+
rounded-lg
|
|
32
|
+
leading-snug
|
|
33
|
+
`,
|
|
34
|
+
// 8(py-2) * 2 + 22(text-label * leading-snug) + boader * 2 = 40px
|
|
35
|
+
sm: `
|
|
36
|
+
px-3
|
|
37
|
+
py-2
|
|
38
|
+
text-label
|
|
39
|
+
rounded-md
|
|
40
|
+
leading-snug
|
|
41
|
+
`
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
export const borderlessInputBaseStyles = `
|
|
45
|
+
inline-block
|
|
46
|
+
cursor-pointer
|
|
47
|
+
border
|
|
48
|
+
border-solid
|
|
49
|
+
border-transparent
|
|
50
|
+
`
|
|
51
|
+
|
|
52
|
+
// for radio and checkbox
|
|
53
|
+
export const borderlessInputSizeStyles: { [key in InputSize]: string } = {
|
|
54
|
+
// 16(p-4) * 2 + 22(text-label * leading-snug) + boader(transparent) * 2 = 56px
|
|
55
|
+
lg: `
|
|
56
|
+
pr-8
|
|
57
|
+
py-4
|
|
58
|
+
text-label
|
|
59
|
+
leading-snug
|
|
60
|
+
`,
|
|
61
|
+
// 12(py-3) * 2 + 22(text-label * leading-snug) + boader(transparent) * 2 = 48px
|
|
62
|
+
md: `
|
|
63
|
+
pr-6
|
|
64
|
+
py-3
|
|
65
|
+
text-label
|
|
66
|
+
leading-snug
|
|
67
|
+
`,
|
|
68
|
+
// 8(py-2) * 2 + 22(text-label * leading-snug) + boader(transparent) * 2 = 40px
|
|
69
|
+
sm: `
|
|
70
|
+
pr-4
|
|
71
|
+
py-2
|
|
72
|
+
text-label
|
|
73
|
+
leading-snug
|
|
74
|
+
`
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
// for radio and checkbox
|
|
78
|
+
export const iconStyles: { [key in InputSize]: string } = {
|
|
79
|
+
lg: 'w-[22px] h-[22px] mr-2',
|
|
80
|
+
md: 'w-[18px] h-[18px] mr-1.5',
|
|
81
|
+
sm: 'w-[18px] h-[18px] mr-1'
|
|
82
|
+
}
|
|
@@ -9,20 +9,4 @@ export {
|
|
|
9
9
|
FieldsetControl
|
|
10
10
|
} from './components'
|
|
11
11
|
|
|
12
|
-
export
|
|
13
|
-
CheckboxProps,
|
|
14
|
-
RadioProps,
|
|
15
|
-
SelectProps,
|
|
16
|
-
FileInputProps,
|
|
17
|
-
InputProps,
|
|
18
|
-
TextareaProps,
|
|
19
|
-
LabelControlProps,
|
|
20
|
-
FieldsetControlProps
|
|
21
|
-
} from './components'
|
|
22
|
-
|
|
23
|
-
export {
|
|
24
|
-
CheckboxGroup,
|
|
25
|
-
RadioGroup,
|
|
26
|
-
SelectControl,
|
|
27
|
-
TextareaControl
|
|
28
|
-
} from './components/controlled'
|
|
12
|
+
export { CheckboxGroup, RadioGroup } from './components/controlled'
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import { describe, it, expect, vi } from 'vitest'
|
|
3
|
+
import { render, screen } from '@testing-library/react'
|
|
4
|
+
|
|
5
|
+
import { Checkbox } from '../src'
|
|
6
|
+
|
|
7
|
+
describe('Checkbox', () => {
|
|
8
|
+
it('should render a checkbox with a label text', async () => {
|
|
9
|
+
render(<Checkbox>test</Checkbox>)
|
|
10
|
+
|
|
11
|
+
const checkbox = screen.getByRole('checkbox')
|
|
12
|
+
|
|
13
|
+
expect(checkbox).toBeInTheDocument()
|
|
14
|
+
|
|
15
|
+
expect(screen.getByText('test')).toBeInTheDocument()
|
|
16
|
+
})
|
|
17
|
+
|
|
18
|
+
it('should render two checkbox with verify checked states', async () => {
|
|
19
|
+
render(
|
|
20
|
+
<>
|
|
21
|
+
<Checkbox id="test" value="test1" data-testid="checked" checked />
|
|
22
|
+
<Checkbox id="test" value="test2" data-testid="not_checked" />
|
|
23
|
+
</>
|
|
24
|
+
)
|
|
25
|
+
|
|
26
|
+
const checked = screen.getByTestId('checked')
|
|
27
|
+
|
|
28
|
+
expect(checked).toBeInTheDocument()
|
|
29
|
+
expect(checked).toBeChecked()
|
|
30
|
+
|
|
31
|
+
const notChecked = screen.getByTestId('not_checked')
|
|
32
|
+
|
|
33
|
+
expect(notChecked).toBeInTheDocument()
|
|
34
|
+
expect(notChecked).not.toBeChecked()
|
|
35
|
+
})
|
|
36
|
+
|
|
37
|
+
it('should pass an object to the ref property', async () => {
|
|
38
|
+
const ref = vi.fn()
|
|
39
|
+
|
|
40
|
+
render(<Checkbox ref={ref}>test</Checkbox>)
|
|
41
|
+
|
|
42
|
+
expect(ref).toHaveBeenCalledTimes(1)
|
|
43
|
+
})
|
|
44
|
+
})
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import { describe, it, expect } from 'vitest'
|
|
2
3
|
import { render, screen } from '@testing-library/react'
|
|
3
|
-
import '@testing-library/jest-dom'
|
|
4
4
|
|
|
5
|
-
import { FieldsetControl } from '../src'
|
|
5
|
+
import { FieldsetControl, Input } from '../src'
|
|
6
6
|
|
|
7
7
|
describe('FieldsetControl', () => {
|
|
8
|
-
|
|
8
|
+
it('should render a fieldset with a label text', async () => {
|
|
9
9
|
render(<FieldsetControl labelText="test" />)
|
|
10
10
|
|
|
11
11
|
const fieldset = screen.getByRole('group')
|
|
@@ -15,34 +15,55 @@ describe('FieldsetControl', () => {
|
|
|
15
15
|
expect(screen.getByText('test')).toBeInTheDocument()
|
|
16
16
|
})
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
it('should render a fieldset with a helper text and error text', async () => {
|
|
19
19
|
render(
|
|
20
20
|
<FieldsetControl
|
|
21
21
|
labelText="test"
|
|
22
22
|
helperText="helper"
|
|
23
23
|
errorMessage="error"
|
|
24
|
-
|
|
24
|
+
isInvalid
|
|
25
|
+
>
|
|
26
|
+
<Input />
|
|
27
|
+
</FieldsetControl>
|
|
25
28
|
)
|
|
26
29
|
|
|
27
30
|
expect(screen.getByText('helper')).toBeInTheDocument()
|
|
28
|
-
expect(screen.
|
|
31
|
+
expect(screen.getByText('error')).toBeInTheDocument()
|
|
32
|
+
|
|
33
|
+
const input = screen.getByRole('textbox')
|
|
34
|
+
|
|
35
|
+
expect(input).toBeInTheDocument()
|
|
36
|
+
|
|
37
|
+
expect(input).toHaveAttribute('aria-describedby', 'helper-text-:r1:')
|
|
38
|
+
expect(input).toHaveAttribute('aria-errormessage', 'error-message-:r1:')
|
|
39
|
+
|
|
40
|
+
expect(input).toBeInvalid()
|
|
41
|
+
expect(input).toHaveAttribute('aria-invalid', 'true')
|
|
29
42
|
})
|
|
30
43
|
|
|
31
|
-
|
|
44
|
+
it('should render a fieldset with a helper text', async () => {
|
|
32
45
|
render(
|
|
33
46
|
<FieldsetControl
|
|
34
47
|
labelText="test"
|
|
35
48
|
helperText="helper"
|
|
36
49
|
errorMessage="error"
|
|
37
|
-
|
|
38
|
-
|
|
50
|
+
>
|
|
51
|
+
<Input />
|
|
52
|
+
</FieldsetControl>
|
|
39
53
|
)
|
|
40
54
|
|
|
41
55
|
expect(screen.getByText('helper')).toBeInTheDocument()
|
|
42
|
-
expect(screen.
|
|
56
|
+
expect(screen.queryByText('error')).toBeNull()
|
|
57
|
+
|
|
58
|
+
const input = screen.getByRole('textbox')
|
|
59
|
+
|
|
60
|
+
expect(input).toBeInTheDocument()
|
|
61
|
+
|
|
62
|
+
expect(input).toBeValid()
|
|
63
|
+
expect(input).toHaveAttribute('aria-invalid', 'false')
|
|
43
64
|
})
|
|
44
65
|
|
|
45
|
-
|
|
66
|
+
it('should display an asterisk only when isRequired prop is true', async () => {
|
|
46
67
|
render(<FieldsetControl labelText="test" />)
|
|
47
68
|
|
|
48
69
|
expect(screen.queryByText('*')).toBeNull()
|
|
@@ -51,4 +72,34 @@ describe('FieldsetControl', () => {
|
|
|
51
72
|
|
|
52
73
|
expect(screen.getByText('*')).toBeInTheDocument()
|
|
53
74
|
})
|
|
75
|
+
|
|
76
|
+
it('should render an input with required attribute and correct label text', async () => {
|
|
77
|
+
render(
|
|
78
|
+
<FieldsetControl labelText="test" isRequired>
|
|
79
|
+
<Input defaultValue="test value" />
|
|
80
|
+
</FieldsetControl>
|
|
81
|
+
)
|
|
82
|
+
|
|
83
|
+
const input = screen.getByRole('textbox')
|
|
84
|
+
|
|
85
|
+
expect(input).toBeInTheDocument()
|
|
86
|
+
|
|
87
|
+
expect(input).toBeValid()
|
|
88
|
+
expect(input).toBeRequired()
|
|
89
|
+
})
|
|
90
|
+
|
|
91
|
+
it('should render an input as invalid when required but has no value', async () => {
|
|
92
|
+
render(
|
|
93
|
+
<FieldsetControl labelText="test" isRequired>
|
|
94
|
+
<Input />
|
|
95
|
+
</FieldsetControl>
|
|
96
|
+
)
|
|
97
|
+
|
|
98
|
+
const input = screen.getByRole('textbox')
|
|
99
|
+
|
|
100
|
+
expect(input).toBeInTheDocument()
|
|
101
|
+
|
|
102
|
+
expect(input).toBeInvalid()
|
|
103
|
+
expect(input).toBeRequired()
|
|
104
|
+
})
|
|
54
105
|
})
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import { describe, it, expect, vi } from 'vitest'
|
|
3
|
+
import { render, screen } from '@testing-library/react'
|
|
4
|
+
|
|
5
|
+
import { FileInput } from '../src'
|
|
6
|
+
|
|
7
|
+
describe('FileInput', () => {
|
|
8
|
+
it('should render a file input with a label text', async () => {
|
|
9
|
+
render(<FileInput />)
|
|
10
|
+
|
|
11
|
+
const input = screen.getByRole('button')
|
|
12
|
+
|
|
13
|
+
expect(input).toBeInTheDocument()
|
|
14
|
+
|
|
15
|
+
expect(screen.getByLabelText('File Upload')).toBeInTheDocument()
|
|
16
|
+
})
|
|
17
|
+
|
|
18
|
+
it('should pass an object to the ref property', async () => {
|
|
19
|
+
const ref = vi.fn()
|
|
20
|
+
|
|
21
|
+
render(<FileInput ref={ref} />)
|
|
22
|
+
|
|
23
|
+
expect(ref).toHaveBeenCalledTimes(1)
|
|
24
|
+
})
|
|
25
|
+
})
|
|
@@ -1,96 +1,25 @@
|
|
|
1
|
-
import
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import { describe, it, expect, vi } from 'vitest'
|
|
2
3
|
import { render, screen } from '@testing-library/react'
|
|
3
|
-
import '@testing-library/jest-dom'
|
|
4
4
|
|
|
5
|
-
import {
|
|
5
|
+
import { Input } from '../src'
|
|
6
6
|
|
|
7
|
-
describe('
|
|
8
|
-
|
|
9
|
-
render(
|
|
10
|
-
<LabelControl labelText="test">
|
|
11
|
-
<Input />
|
|
12
|
-
</LabelControl>
|
|
13
|
-
)
|
|
7
|
+
describe('Input', () => {
|
|
8
|
+
it('should render a input with a value text', async () => {
|
|
9
|
+
render(<Input value="test" />)
|
|
14
10
|
|
|
15
|
-
const
|
|
11
|
+
const input = screen.getByRole('textbox')
|
|
16
12
|
|
|
17
|
-
expect(
|
|
18
|
-
})
|
|
19
|
-
|
|
20
|
-
test('renders Text component vol2', async () => {
|
|
21
|
-
render(
|
|
22
|
-
<LabelControl labelText="test" helperText="helper" errorMessage="error">
|
|
23
|
-
<Input />
|
|
24
|
-
</LabelControl>
|
|
25
|
-
)
|
|
26
|
-
|
|
27
|
-
const text = screen.getByLabelText(/test/)
|
|
28
|
-
|
|
29
|
-
expect(text).toBeInTheDocument()
|
|
30
|
-
|
|
31
|
-
expect(text).toHaveAttribute('aria-describedby', 'helper-text-:r1:')
|
|
32
|
-
expect(text).toHaveAttribute('aria-errormessage', 'error-message-:r1:')
|
|
33
|
-
})
|
|
34
|
-
|
|
35
|
-
test('renders Text component vol3', async () => {
|
|
36
|
-
render(
|
|
37
|
-
<LabelControl labelText="test">
|
|
38
|
-
<Input />
|
|
39
|
-
</LabelControl>
|
|
40
|
-
)
|
|
41
|
-
|
|
42
|
-
const text = screen.getByLabelText(/test/)
|
|
43
|
-
|
|
44
|
-
expect(text).toBeInTheDocument()
|
|
45
|
-
|
|
46
|
-
expect(text).toBeValid()
|
|
47
|
-
expect(text).toHaveAttribute('aria-invalid', 'false')
|
|
48
|
-
})
|
|
49
|
-
|
|
50
|
-
test('renders Text component vol4', async () => {
|
|
51
|
-
render(
|
|
52
|
-
<LabelControl labelText="test" isInvalid>
|
|
53
|
-
<Input />
|
|
54
|
-
</LabelControl>
|
|
55
|
-
)
|
|
56
|
-
|
|
57
|
-
const text = screen.getByLabelText(/test/)
|
|
58
|
-
|
|
59
|
-
expect(text).toBeInTheDocument()
|
|
60
|
-
|
|
61
|
-
expect(text).toBeInvalid()
|
|
62
|
-
expect(text).toHaveAttribute('aria-invalid', 'true')
|
|
63
|
-
expect(text).not.toBeRequired()
|
|
64
|
-
})
|
|
65
|
-
|
|
66
|
-
test('renders Text component vol5', async () => {
|
|
67
|
-
render(
|
|
68
|
-
<LabelControl labelText="test" isRequired>
|
|
69
|
-
<Input defaultValue="test value" />
|
|
70
|
-
</LabelControl>
|
|
71
|
-
)
|
|
72
|
-
|
|
73
|
-
screen.getByLabelText
|
|
74
|
-
const text = screen.getByLabelText(/test/)
|
|
13
|
+
expect(input).toBeInTheDocument()
|
|
75
14
|
|
|
76
|
-
expect(
|
|
77
|
-
|
|
78
|
-
expect(text).toBeValid()
|
|
79
|
-
expect(text).toBeRequired()
|
|
15
|
+
expect(screen.getByDisplayValue('test')).toBeInTheDocument()
|
|
80
16
|
})
|
|
81
17
|
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
<LabelControl labelText="test" isRequired>
|
|
85
|
-
<Input />
|
|
86
|
-
</LabelControl>
|
|
87
|
-
)
|
|
88
|
-
|
|
89
|
-
const text = screen.getByLabelText(/test/)
|
|
18
|
+
it('should pass an object to the ref property', async () => {
|
|
19
|
+
const ref = vi.fn()
|
|
90
20
|
|
|
91
|
-
|
|
21
|
+
render(<Input ref={ref} />)
|
|
92
22
|
|
|
93
|
-
expect(
|
|
94
|
-
expect(text).toBeRequired()
|
|
23
|
+
expect(ref).toHaveBeenCalledTimes(1)
|
|
95
24
|
})
|
|
96
25
|
})
|
|
@@ -1,44 +1,62 @@
|
|
|
1
|
-
import
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import { describe, test, it, expect } from 'vitest'
|
|
2
3
|
import { render, screen } from '@testing-library/react'
|
|
3
|
-
import '@testing-library/jest-dom'
|
|
4
4
|
|
|
5
|
-
import { LabelControl, Select, Input, Textarea } from '../src'
|
|
5
|
+
import { LabelControl, Select, Input, Textarea, FileInput } from '../src'
|
|
6
6
|
|
|
7
7
|
describe('LabelControl', () => {
|
|
8
|
-
|
|
8
|
+
it('should render a label with a label text', async () => {
|
|
9
9
|
render(<LabelControl labelText="test" data-testid="label" />)
|
|
10
10
|
|
|
11
|
-
const
|
|
11
|
+
const label = screen.getByTestId('label')
|
|
12
12
|
|
|
13
|
-
expect(
|
|
13
|
+
expect(label).toBeInTheDocument()
|
|
14
14
|
|
|
15
15
|
expect(screen.getByText('test')).toBeInTheDocument()
|
|
16
16
|
})
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
render(
|
|
20
|
-
<LabelControl labelText="test" helperText="helper" errorMessage="error" />
|
|
21
|
-
)
|
|
22
|
-
|
|
23
|
-
expect(screen.getByText('helper')).toBeInTheDocument()
|
|
24
|
-
expect(screen.queryByText('error')).toBeNull()
|
|
25
|
-
})
|
|
26
|
-
|
|
27
|
-
test('renders LabelControl component vol3', async () => {
|
|
18
|
+
it('should render a fieldset with a helper text and error text', async () => {
|
|
28
19
|
render(
|
|
29
20
|
<LabelControl
|
|
30
21
|
labelText="test"
|
|
31
22
|
helperText="helper"
|
|
32
23
|
errorMessage="error"
|
|
33
24
|
isInvalid
|
|
34
|
-
|
|
25
|
+
>
|
|
26
|
+
<Input />
|
|
27
|
+
</LabelControl>
|
|
35
28
|
)
|
|
36
29
|
|
|
37
30
|
expect(screen.getByText('helper')).toBeInTheDocument()
|
|
38
31
|
expect(screen.getByText('error')).toBeInTheDocument()
|
|
32
|
+
|
|
33
|
+
const input = screen.getByLabelText(/test/)
|
|
34
|
+
|
|
35
|
+
expect(input).toBeInTheDocument()
|
|
36
|
+
|
|
37
|
+
expect(input).toHaveAttribute('aria-describedby', 'helper-text-:r1:')
|
|
38
|
+
expect(input).toHaveAttribute('aria-errormessage', 'error-message-:r1:')
|
|
39
|
+
|
|
40
|
+
expect(input).toBeInvalid()
|
|
41
|
+
expect(input).toHaveAttribute('aria-invalid', 'true')
|
|
42
|
+
})
|
|
43
|
+
|
|
44
|
+
it('should render a fieldset with a helper text', async () => {
|
|
45
|
+
render(
|
|
46
|
+
<LabelControl labelText="test">
|
|
47
|
+
<Input />
|
|
48
|
+
</LabelControl>
|
|
49
|
+
)
|
|
50
|
+
|
|
51
|
+
const input = screen.getByLabelText(/test/)
|
|
52
|
+
|
|
53
|
+
expect(input).toBeInTheDocument()
|
|
54
|
+
|
|
55
|
+
expect(input).toBeValid()
|
|
56
|
+
expect(input).toHaveAttribute('aria-invalid', 'false')
|
|
39
57
|
})
|
|
40
58
|
|
|
41
|
-
|
|
59
|
+
it('should display an asterisk only when isRequired prop is true', async () => {
|
|
42
60
|
render(<LabelControl labelText="test" />)
|
|
43
61
|
|
|
44
62
|
expect(screen.queryByText('*')).toBeNull()
|
|
@@ -48,6 +66,36 @@ describe('LabelControl', () => {
|
|
|
48
66
|
expect(screen.getByText('*')).toBeInTheDocument()
|
|
49
67
|
})
|
|
50
68
|
|
|
69
|
+
it('should render an input with required attribute and correct label text', async () => {
|
|
70
|
+
render(
|
|
71
|
+
<LabelControl labelText="test" isRequired>
|
|
72
|
+
<Input defaultValue="test value" />
|
|
73
|
+
</LabelControl>
|
|
74
|
+
)
|
|
75
|
+
|
|
76
|
+
const input = screen.getByLabelText(/test/)
|
|
77
|
+
|
|
78
|
+
expect(input).toBeInTheDocument()
|
|
79
|
+
|
|
80
|
+
expect(input).toBeValid()
|
|
81
|
+
expect(input).toBeRequired()
|
|
82
|
+
})
|
|
83
|
+
|
|
84
|
+
it('should render an input as invalid when required but has no value', async () => {
|
|
85
|
+
render(
|
|
86
|
+
<LabelControl labelText="test" isRequired>
|
|
87
|
+
<Input />
|
|
88
|
+
</LabelControl>
|
|
89
|
+
)
|
|
90
|
+
|
|
91
|
+
const input = screen.getByLabelText(/test/)
|
|
92
|
+
|
|
93
|
+
expect(input).toBeInTheDocument()
|
|
94
|
+
|
|
95
|
+
expect(input).toBeInvalid()
|
|
96
|
+
expect(input).toBeRequired()
|
|
97
|
+
})
|
|
98
|
+
|
|
51
99
|
test('Test the relationship between the label and input elements.', async () => {
|
|
52
100
|
render(
|
|
53
101
|
<>
|
|
@@ -60,6 +108,9 @@ describe('LabelControl', () => {
|
|
|
60
108
|
<Input defaultValue="1" />
|
|
61
109
|
</LabelControl>
|
|
62
110
|
<LabelControl labelText="test3">
|
|
111
|
+
<FileInput />
|
|
112
|
+
</LabelControl>
|
|
113
|
+
<LabelControl labelText="test4">
|
|
63
114
|
<Textarea defaultValue="1" />
|
|
64
115
|
</LabelControl>
|
|
65
116
|
</>
|
|
@@ -75,7 +126,11 @@ describe('LabelControl', () => {
|
|
|
75
126
|
expect(text).toHaveValue('1')
|
|
76
127
|
expect(text).toHaveAttribute('id')
|
|
77
128
|
|
|
78
|
-
const
|
|
129
|
+
const file = screen.getByLabelText(/test3/)
|
|
130
|
+
expect(file).toBeInTheDocument()
|
|
131
|
+
expect(file).toHaveAttribute('id')
|
|
132
|
+
|
|
133
|
+
const textarea = screen.getByLabelText(/test4/)
|
|
79
134
|
expect(textarea).toBeInTheDocument()
|
|
80
135
|
expect(textarea).toHaveValue('1')
|
|
81
136
|
expect(textarea).toHaveAttribute('id')
|
|
@@ -93,6 +148,9 @@ describe('LabelControl', () => {
|
|
|
93
148
|
<Input defaultValue="1" />
|
|
94
149
|
</LabelControl>
|
|
95
150
|
<LabelControl labelText="test3" htmlFor="id3">
|
|
151
|
+
<FileInput />
|
|
152
|
+
</LabelControl>
|
|
153
|
+
<LabelControl labelText="test4" htmlFor="id4">
|
|
96
154
|
<Textarea defaultValue="1" />
|
|
97
155
|
</LabelControl>
|
|
98
156
|
</>
|
|
@@ -108,9 +166,13 @@ describe('LabelControl', () => {
|
|
|
108
166
|
expect(input).toHaveValue('1')
|
|
109
167
|
expect(input).toHaveAttribute('id', 'id2')
|
|
110
168
|
|
|
111
|
-
const
|
|
169
|
+
const file = screen.getByLabelText(/test3/)
|
|
170
|
+
expect(file).toBeInTheDocument()
|
|
171
|
+
expect(file).toHaveAttribute('id', 'id3')
|
|
172
|
+
|
|
173
|
+
const textarea = screen.getByLabelText(/test4/)
|
|
112
174
|
expect(textarea).toBeInTheDocument()
|
|
113
175
|
expect(textarea).toHaveValue('1')
|
|
114
|
-
expect(textarea).toHaveAttribute('id', '
|
|
176
|
+
expect(textarea).toHaveAttribute('id', 'id4')
|
|
115
177
|
})
|
|
116
178
|
})
|
|
@@ -1,99 +1,44 @@
|
|
|
1
|
-
import
|
|
1
|
+
import React from 'react'
|
|
2
|
+
import { describe, it, expect, vi } from 'vitest'
|
|
2
3
|
import { render, screen } from '@testing-library/react'
|
|
3
|
-
import '@testing-library/jest-dom'
|
|
4
4
|
|
|
5
|
-
import {
|
|
5
|
+
import { Radio } from '../src'
|
|
6
6
|
|
|
7
|
-
describe('
|
|
8
|
-
|
|
9
|
-
render(
|
|
10
|
-
<FieldsetControl labelText="test">
|
|
11
|
-
<Radio />
|
|
12
|
-
</FieldsetControl>
|
|
13
|
-
)
|
|
14
|
-
|
|
15
|
-
const elem = screen.getByRole('radio')
|
|
16
|
-
|
|
17
|
-
expect(elem).toBeInTheDocument()
|
|
18
|
-
})
|
|
19
|
-
|
|
20
|
-
test('renders Text component vol2', async () => {
|
|
21
|
-
render(
|
|
22
|
-
<FieldsetControl
|
|
23
|
-
labelText="test"
|
|
24
|
-
helperText="helper"
|
|
25
|
-
errorMessage="error"
|
|
26
|
-
>
|
|
27
|
-
<Radio />
|
|
28
|
-
</FieldsetControl>
|
|
29
|
-
)
|
|
30
|
-
|
|
31
|
-
const elem = screen.getByRole('radio')
|
|
32
|
-
|
|
33
|
-
expect(elem).toBeInTheDocument()
|
|
34
|
-
|
|
35
|
-
expect(elem).toHaveAttribute('aria-describedby', 'helper-text-:r1:')
|
|
36
|
-
expect(elem).toHaveAttribute('aria-errormessage', 'error-message-:r1:')
|
|
37
|
-
})
|
|
7
|
+
describe('Radio', () => {
|
|
8
|
+
it('should render a radio with a value text', async () => {
|
|
9
|
+
render(<Radio id="test" value="test" />)
|
|
38
10
|
|
|
39
|
-
|
|
40
|
-
render(
|
|
41
|
-
<FieldsetControl labelText="test">
|
|
42
|
-
<Radio />
|
|
43
|
-
</FieldsetControl>
|
|
44
|
-
)
|
|
45
|
-
|
|
46
|
-
const elem = screen.getByRole('radio')
|
|
11
|
+
const radio = screen.getByRole('radio')
|
|
47
12
|
|
|
48
|
-
expect(
|
|
13
|
+
expect(radio).toBeInTheDocument()
|
|
49
14
|
|
|
50
|
-
expect(
|
|
51
|
-
expect(elem).toHaveAttribute('aria-invalid', 'false')
|
|
15
|
+
expect(screen.getByDisplayValue('test')).toBeInTheDocument()
|
|
52
16
|
})
|
|
53
17
|
|
|
54
|
-
|
|
18
|
+
it('should render two radios with verify checked states', async () => {
|
|
55
19
|
render(
|
|
56
|
-
|
|
57
|
-
<Radio />
|
|
58
|
-
|
|
20
|
+
<>
|
|
21
|
+
<Radio id="test" value="test1" data-testid="checked" checked />
|
|
22
|
+
<Radio id="test" value="test2" data-testid="not_checked" />
|
|
23
|
+
</>
|
|
59
24
|
)
|
|
60
25
|
|
|
61
|
-
const
|
|
62
|
-
|
|
63
|
-
expect(elem).toBeInTheDocument()
|
|
64
|
-
|
|
65
|
-
expect(elem).toBeInvalid()
|
|
66
|
-
expect(elem).toHaveAttribute('aria-invalid', 'true')
|
|
67
|
-
expect(elem).not.toBeRequired()
|
|
68
|
-
})
|
|
69
|
-
|
|
70
|
-
test('renders Text component vol5', async () => {
|
|
71
|
-
render(
|
|
72
|
-
<FieldsetControl labelText="test" isRequired>
|
|
73
|
-
<Radio defaultChecked={true} />
|
|
74
|
-
</FieldsetControl>
|
|
75
|
-
)
|
|
26
|
+
const checked = screen.getByTestId('checked')
|
|
76
27
|
|
|
77
|
-
|
|
28
|
+
expect(checked).toBeInTheDocument()
|
|
29
|
+
expect(checked).toBeChecked()
|
|
78
30
|
|
|
79
|
-
|
|
31
|
+
const notChecked = screen.getByTestId('not_checked')
|
|
80
32
|
|
|
81
|
-
expect(
|
|
82
|
-
expect(
|
|
33
|
+
expect(notChecked).toBeInTheDocument()
|
|
34
|
+
expect(notChecked).not.toBeChecked()
|
|
83
35
|
})
|
|
84
36
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
<FieldsetControl labelText="test" isRequired>
|
|
88
|
-
<Radio />
|
|
89
|
-
</FieldsetControl>
|
|
90
|
-
)
|
|
91
|
-
|
|
92
|
-
const elem = screen.getByRole('radio')
|
|
37
|
+
it('should pass an object to the ref property', async () => {
|
|
38
|
+
const ref = vi.fn()
|
|
93
39
|
|
|
94
|
-
|
|
40
|
+
render(<Radio ref={ref} />)
|
|
95
41
|
|
|
96
|
-
expect(
|
|
97
|
-
expect(elem).toBeRequired()
|
|
42
|
+
expect(ref).toHaveBeenCalledTimes(1)
|
|
98
43
|
})
|
|
99
44
|
})
|