From b5fb402606b3b53ffc04d0d8f8e2ee99130a2d50 Mon Sep 17 00:00:00 2001 From: Vincent Audebert Date: Thu, 17 Nov 2022 13:33:30 +0100 Subject: [PATCH 1/4] fix: cron regex --- packages/regex/src/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/regex/src/index.ts b/packages/regex/src/index.ts index 026301eaf..c294c53d8 100644 --- a/packages/regex/src/index.ts +++ b/packages/regex/src/index.ts @@ -22,7 +22,7 @@ export const basicDomain = /^[a-z0-9-]+(\.[a-z0-9-]{1,63})+$/ export const uppercaseBasicDomain = /^(?![-])+[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]{1,63})+$/ -export const cron = /^[0-9,/*-]+$/ +export const cron = /^[0-9,/*-\s]+$/ export const digits = /^[0-9]*$/ export const macAddress = /^([0-9a-fA-F][0-9a-fA-F]:){5}([0-9a-fA-F][0-9a-fA-F])$/ From ecd23d2bda09975a9c20dac62e17dfda57ea4fe3 Mon Sep 17 00:00:00 2001 From: Vincent Audebert Date: Thu, 17 Nov 2022 13:52:10 +0100 Subject: [PATCH 2/4] fix: testing love --- packages/regex/src/__tests__/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/regex/src/__tests__/index.ts b/packages/regex/src/__tests__/index.ts index 8c0be06e8..5e141e271 100644 --- a/packages/regex/src/__tests__/index.ts +++ b/packages/regex/src/__tests__/index.ts @@ -501,7 +501,7 @@ describe('@regex', () => { [hexdigits, false], [printable, false], [punctuation, false], - [whitespace, false], + [whitespace, true], [cronTest, true], ])('should match regex %s to be %s', (string, expected) => { expect(cron.test(string)).toBe(expected) From ce782e4b6aaeca5620cf1e97f4333e7c71d938a3 Mon Sep 17 00:00:00 2001 From: Vincent Audebert Date: Thu, 17 Nov 2022 13:54:19 +0100 Subject: [PATCH 3/4] fix: testing love --- packages/regex/src/__tests__/index.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/packages/regex/src/__tests__/index.ts b/packages/regex/src/__tests__/index.ts index 5e141e271..3c02f09a4 100644 --- a/packages/regex/src/__tests__/index.ts +++ b/packages/regex/src/__tests__/index.ts @@ -49,6 +49,7 @@ const dashStartDomain = '-sub.another-example.com' const uppercaseDomain = 'SUB.another-example.com' const longTldDomain = 'sub.another-example.verylongtld' const cronTest = '0/15*-' +const cronScheduleExample = '1 * * * *' const digitsTest = '0123456789' const emailTest = 'test@scaleway.com' const fourDigitsTest = '2345' @@ -502,6 +503,7 @@ describe('@regex', () => { [printable, false], [punctuation, false], [whitespace, true], + [cronScheduleExample, true], [cronTest, true], ])('should match regex %s to be %s', (string, expected) => { expect(cron.test(string)).toBe(expected) From 3eb7b9e32e1026d35c378879b244ac12d8a9ad0a Mon Sep 17 00:00:00 2001 From: Vincent Audebert Date: Thu, 17 Nov 2022 14:57:38 +0100 Subject: [PATCH 4/4] fix: test love --- packages/regex/src/__tests__/index.ts | 6 ++---- packages/regex/src/index.ts | 2 +- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/packages/regex/src/__tests__/index.ts b/packages/regex/src/__tests__/index.ts index 3c02f09a4..e3b70f94c 100644 --- a/packages/regex/src/__tests__/index.ts +++ b/packages/regex/src/__tests__/index.ts @@ -48,8 +48,7 @@ const subDomain = 'sub.another-example.com' const dashStartDomain = '-sub.another-example.com' const uppercaseDomain = 'SUB.another-example.com' const longTldDomain = 'sub.another-example.verylongtld' -const cronTest = '0/15*-' -const cronScheduleExample = '1 * * * *' +const cronTest = '0 0 0 * * 0 1-4' const digitsTest = '0123456789' const emailTest = 'test@scaleway.com' const fourDigitsTest = '2345' @@ -502,8 +501,7 @@ describe('@regex', () => { [hexdigits, false], [printable, false], [punctuation, false], - [whitespace, true], - [cronScheduleExample, true], + [whitespace, false], [cronTest, true], ])('should match regex %s to be %s', (string, expected) => { expect(cron.test(string)).toBe(expected) diff --git a/packages/regex/src/index.ts b/packages/regex/src/index.ts index c294c53d8..53694c10d 100644 --- a/packages/regex/src/index.ts +++ b/packages/regex/src/index.ts @@ -22,7 +22,7 @@ export const basicDomain = /^[a-z0-9-]+(\.[a-z0-9-]{1,63})+$/ export const uppercaseBasicDomain = /^(?![-])+[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]{1,63})+$/ -export const cron = /^[0-9,/*-\s]+$/ +export const cron = /^((((\d+,)+\d+|(\d+(\/|-)\d+)|\d+|\*) ?){5,7})$/ export const digits = /^[0-9]*$/ export const macAddress = /^([0-9a-fA-F][0-9a-fA-F]:){5}([0-9a-fA-F][0-9a-fA-F])$/