diff --git a/packages/schema/src/language-server/validator/attribute-application-validator.ts b/packages/schema/src/language-server/validator/attribute-application-validator.ts index 0e1d8e885..b22a6f372 100644 --- a/packages/schema/src/language-server/validator/attribute-application-validator.ts +++ b/packages/schema/src/language-server/validator/attribute-application-validator.ts @@ -212,6 +212,21 @@ export default class AttributeApplicationValidator implements AstValidator { if (isDataModelFieldReference(node) && hasAttribute(node.target.ref as DataModelField, '@encrypted')) { diff --git a/packages/schema/tests/schema/validation/attribute-validation.test.ts b/packages/schema/tests/schema/validation/attribute-validation.test.ts index 0133f452c..3e0553ee2 100644 --- a/packages/schema/tests/schema/validation/attribute-validation.test.ts +++ b/packages/schema/tests/schema/validation/attribute-validation.test.ts @@ -1369,4 +1369,26 @@ describe('Attribute tests', () => { `) ).resolves.toContain(`attribute "@omit" cannot be used on type declaration fields`); }); + + it('validates regex', async () => { + await expect( + loadModelWithError(` + ${prelude} + model User { + id String @id + phone String @regex(id) + } + `) + ).resolves.toContain('Expecting a string literal'); + + await expect( + loadModelWithError(` + ${prelude} + model User { + id String @id + phone String @regex("^(\\+46|0)[0-9]{7,12}$") + } + `) + ).resolves.toContain('Invalid regular expression'); + }); });