You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
.describe("If provided, only return cases in this folder."),
21
+
.describe(
22
+
"Optional. If provided, only return test cases in this folder. If omitted, returns all test cases in the project. Folder ids can be discovered via listFolders.",
.describe("Updated list of test case steps with expected results."),
60
+
owner: z
61
+
.string()
62
+
.email()
63
+
.optional()
64
+
.describe("Email of the test case owner."),
65
+
priority: z
66
+
.string()
67
+
.optional()
68
+
.describe(
69
+
"Updated priority. Accepts either display name (e.g. 'Medium', 'Critical', 'High', 'Low') or internal name (e.g. 'medium'). Valid values are per-project and discoverable via the form-fields endpoint.",
70
+
),
71
+
case_type: z
72
+
.string()
73
+
.optional()
74
+
.describe(
75
+
"Updated test case type. Accepts either display name (e.g. 'Functional', 'Regression', 'Smoke & Sanity') or internal name (e.g. 'functional', 'smoke_sanity'). Valid values are per-project.",
76
+
),
77
+
automation_status: z
78
+
.string()
79
+
.optional()
80
+
.describe(
81
+
"Updated automation status. Use internal name such as 'not_automated', 'automated', 'automation_not_required', 'cannot_be_automated', or 'obsolete'.",
82
+
),
83
+
status: z
84
+
.string()
85
+
.optional()
86
+
.describe(
87
+
"Updated review status of the test case (e.g. 'active', 'draft', 'in_review', 'outdated', 'rejected').",
88
+
),
89
+
tags: z
90
+
.array(z.string())
91
+
.optional()
92
+
.describe("Replacement list of tags for the test case."),
93
+
issues: z
94
+
.array(z.string())
95
+
.optional()
96
+
.describe(
97
+
"Replacement list of linked Jira/Asana/Azure issue IDs for the test case.",
98
+
),
99
+
custom_fields: z
100
+
.record(
101
+
z.string(),
102
+
z.union([z.string(),z.number(),z.boolean()]),
103
+
)
104
+
.optional()
105
+
.describe(
106
+
"Map of custom field name/id to value. Valid field names and value types are per-project; discover them via the project's form fields.",
107
+
),
52
108
});
53
109
110
+
/**
111
+
* Build a normalizer for a default field's accepted value.
112
+
* The TM PATCH endpoint accepts different casings for different default
113
+
* fields (Title-Case display name for priority/case_type, snake_case
114
+
* internal_name for automation_status). We accept either from the caller
115
+
* and emit the form the API actually wants.
116
+
*
117
+
* Returns undefined when no matching option is found — callers should
118
+
* pass the raw value through so the backend can surface its own error.
0 commit comments