Skip to content

Commit 1fe0022

Browse files
Merge pull request #4074 from aakashreddy-p/aakash/fix/schedule-name-validation
fix: schedule name validation added in configuration [SPRW-2351]
2 parents 15ca10a + 05875c6 commit 1fe0022

File tree

1 file changed

+30
-0
lines changed
  • packages/@sparrow-workspaces/src/features/testflow-schedule-explorer/components/configurations

1 file changed

+30
-0
lines changed

packages/@sparrow-workspaces/src/features/testflow-schedule-explorer/components/configurations/Configurations.svelte

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,9 @@
9292
let scheduleName = "";
9393
let selectedEnvironment = "";
9494
let isError = false;
95+
let isErrors = {
96+
scheduleNameError: false,
97+
};
9598
let isUpdating = false;
9699
let selectedTestData = "none";
97100
@@ -511,6 +514,24 @@
511514
$: if (formattedDate) {
512515
selectedDate = parseDateString(formattedDate);
513516
}
517+
518+
const isValidScheduleName = (name: string) => {
519+
// Regex: 1–30 characters, allows letters, numbers, spaces, hyphens, and underscores
520+
const regex = /^[A-Za-z0-9 _-]{1,30}$/;
521+
return regex.test(name);
522+
};
523+
524+
$: {
525+
if (scheduleName && scheduleName.trim()) {
526+
if (!isValidScheduleName(scheduleName.trim())) {
527+
isErrors.scheduleNameError = true;
528+
} else {
529+
isErrors.scheduleNameError = false;
530+
}
531+
} else {
532+
isErrors.scheduleNameError = false;
533+
}
534+
}
514535
</script>
515536

516537
<div class="configurations-container">
@@ -542,6 +563,14 @@
542563
>
543564
Schedule name is required
544565
</p>
566+
{:else if isErrors.scheduleNameError}
567+
<p
568+
class="error-text text-ds-font-size-12 mt-1"
569+
style="color: var(--text-ds-danger-300);"
570+
>
571+
Schedule name must be 1-30 characters and can only contain letters,
572+
numbers, spaces, hyphens (-), and underscores (_).
573+
</p>
545574
{/if}
546575
</div>
547576

@@ -892,6 +921,7 @@
892921
disable={!isModified ||
893922
isSaved ||
894923
!scheduleName.trim() ||
924+
isErrors.scheduleNameError ||
895925
(selectedCycle === "once" && (!formattedDate || !selectedTime)) ||
896926
(selectedCycle === "daily" && !selectedTime) ||
897927
(selectedCycle === "hourly" && !intervalHours) ||

0 commit comments

Comments
 (0)