From 711c7cf5a9710693cfffb465f8826e4c7d4b8a16 Mon Sep 17 00:00:00 2001 From: Danila Poyarkov Date: Fri, 15 May 2026 12:18:50 +0300 Subject: [PATCH] refactor(vue): use shared test id prop types --- packages/vue/src/index.ts | 9 ++++++++- packages/vue/src/testing/test-id.ts | 10 ++++++++++ src/components/PickerSlider.vue | 2 +- src/components/Toolbar/ToolButton.vue | 16 +++++++++------- .../chat/ProviderSelect/ProviderSelect.vue | 8 +++++--- .../chat/ProviderSelect/ProviderSelectField.vue | 6 +++--- .../properties/BoundVariableButton.vue | 11 +++++++---- .../properties/LayoutSection/SizeControls.vue | 4 ++-- src/components/ui/AppGroupedSelect.vue | 14 +++++++------- src/components/ui/AppSelect.vue | 14 +++++++------- 10 files changed, 59 insertions(+), 35 deletions(-) diff --git a/packages/vue/src/index.ts b/packages/vue/src/index.ts index 7d727be92..9b99fa01b 100644 --- a/packages/vue/src/index.ts +++ b/packages/vue/src/index.ts @@ -48,7 +48,14 @@ export { useNodeFontStatus } from '#vue/shared/font-status/use' export { usePropScrub } from '#vue/controls/prop-scrub/use' export { toolCursor } from '#vue/editor/tool-cursor' export { testId, testIdSelector } from '#vue/testing/test-id' -export type { TestId, TestIdProps } from '#vue/testing/test-id' +export type { + RequiredTestIdProps, + TestId, + TestIdProps, + WithoutTestId, + WithRequiredTestId, + WithTestId +} from '#vue/testing/test-id' /** Property-panel composables. */ export { usePosition } from '#vue/controls/position/use' diff --git a/packages/vue/src/testing/test-id.ts b/packages/vue/src/testing/test-id.ts index 521690fb6..60e0273d0 100644 --- a/packages/vue/src/testing/test-id.ts +++ b/packages/vue/src/testing/test-id.ts @@ -4,6 +4,16 @@ export type TestIdProps = { testId?: TestId } +export type RequiredTestIdProps = { + testId: TestId +} + +export type WithTestId = TProps & TestIdProps + +export type WithRequiredTestId = TProps & RequiredTestIdProps + +export type WithoutTestId = Omit + export function testId(id?: TestId | null): { 'data-test-id'?: TestId } { return id ? { 'data-test-id': id } : {} } diff --git a/src/components/PickerSlider.vue b/src/components/PickerSlider.vue index 0a6f1bbac..cdc9478f5 100644 --- a/src/components/PickerSlider.vue +++ b/src/components/PickerSlider.vue @@ -11,7 +11,7 @@ type PickerSliderDisplay = { parse?: (value: number) => number } -type PickerSliderProps = TestIdProps & { +interface PickerSliderProps extends TestIdProps { label: string modelValue: number min: number diff --git a/src/components/Toolbar/ToolButton.vue b/src/components/Toolbar/ToolButton.vue index a7d4d4d27..e945e2320 100644 --- a/src/components/Toolbar/ToolButton.vue +++ b/src/components/Toolbar/ToolButton.vue @@ -1,17 +1,19 @@