diff --git a/src/dependency-manager/spec/utils/slugs.ts b/src/dependency-manager/spec/utils/slugs.ts index 90f40523e..0c9debeb2 100644 --- a/src/dependency-manager/spec/utils/slugs.ts +++ b/src/dependency-manager/spec/utils/slugs.ts @@ -17,6 +17,10 @@ export class Slugs { public static ArchitectSlugRegexBase = `(?!-)(?!.{0,${Slugs.SLUG_CHAR_LIMIT}}--)[a-z0-9-]{1,${Slugs.SLUG_CHAR_LIMIT}}(? { '2', ]; + const case_insensitive_valid_slugs = [ + ...valid_slugs, + 'MyUsername', + 'anOtherUs3rn4me', + 'Dashed-Username' + ]; + const valid_tags = [ valid_tag, '1-0-0', @@ -54,13 +61,20 @@ describe('slugs validators', () => { 'other;punctuation', ]; - const invalid_slugs = [ + const case_insensitive_invalid_slugs = [ invalid_slug, '-leading-dashes', 'trailingdashes-', 'something-33-characters-loooooong', 'other.punctuation', - ...globally_invalid_punctuation + ...globally_invalid_punctuation, + ]; + + const invalid_slugs = [ + 'MyUsername', + 'anOtherUs3rn4me', + 'Dashed-Username', + ...case_insensitive_invalid_slugs, ]; const invalid_tags = [ @@ -80,6 +94,18 @@ describe('slugs validators', () => { } }); + it(`valid slugs are acceptable to ArchitectSlugValidatorCaseInsensitive`, async () => { + for (const slug of case_insensitive_valid_slugs) { + expect(Slugs.ArchitectSlugValidatorCaseInsensitive.test(slug)).to.be.true + } + }); + + it(`invalid slugs are NOT acceptable to ArchitectSlugValidatorCaseInsensitive`, async () => { + for (const slug of case_insensitive_invalid_slugs) { + expect(Slugs.ArchitectSlugValidatorCaseInsensitive.test(slug)).to.be.false + } + }); + it(`valid tags are acceptable to ComponentTagValidator`, async () => { for (const tag of valid_tags) { expect(Slugs.ComponentTagValidator.test(tag)).to.be.true