Validate special chars when creating a team (#209)
* Add validation for team account names - Prevent creating teams with reserved names like 'billing' and 'settings' - Add regex validation to block team names with special characters - Update localization for new error messages - Extend E2E tests to cover various invalid team name scenarios * Enhance team account name validation and slug generation - Add comprehensive tests for account slug generation in Supabase - Improve team name validation schema to handle special characters - Add form validation message display in update team account name form - Refine slug generation to handle various edge cases like special characters, non-ASCII text, and mixed case
This commit is contained in:
committed by
GitHub
parent
b265f596da
commit
bd723dccce
@@ -96,6 +96,99 @@ test.describe('Team Accounts', () => {
|
||||
|
||||
await expect(teamAccounts.getTeamFromSelector(teamName)).toBeVisible();
|
||||
});
|
||||
|
||||
test('cannot create a Team account using reserved names', async ({
|
||||
page,
|
||||
}) => {
|
||||
const teamAccounts = new TeamAccountsPageObject(page);
|
||||
await teamAccounts.setup();
|
||||
|
||||
await teamAccounts.openAccountsSelector();
|
||||
await page.click('[data-test="create-team-account-trigger"]');
|
||||
|
||||
await teamAccounts.tryCreateTeam('billing');
|
||||
|
||||
await expect(
|
||||
page.getByText('This name is reserved. Please choose a different one.'),
|
||||
).toBeVisible();
|
||||
|
||||
await teamAccounts.tryCreateTeam('settings');
|
||||
|
||||
await expect(
|
||||
page.getByText('This name is reserved. Please choose a different one.'),
|
||||
).toBeVisible();
|
||||
|
||||
function expectError() {
|
||||
return expect(
|
||||
page.getByText(
|
||||
'This name cannot contain special characters. Please choose a different one.',
|
||||
),
|
||||
).toBeVisible();
|
||||
}
|
||||
|
||||
await teamAccounts.tryCreateTeam('Test-Name#');
|
||||
await expectError();
|
||||
|
||||
await teamAccounts.tryCreateTeam('Test,Name');
|
||||
await expectError();
|
||||
|
||||
await teamAccounts.tryCreateTeam('Test Name/')
|
||||
await expectError();
|
||||
|
||||
await teamAccounts.tryCreateTeam('Test Name\\')
|
||||
await expectError();
|
||||
|
||||
await teamAccounts.tryCreateTeam('Test Name:')
|
||||
await expectError();
|
||||
|
||||
await teamAccounts.tryCreateTeam('Test Name;')
|
||||
await expectError();
|
||||
|
||||
await teamAccounts.tryCreateTeam('Test Name=');
|
||||
await expectError();
|
||||
|
||||
await teamAccounts.tryCreateTeam('Test Name>');
|
||||
await expectError();
|
||||
|
||||
await teamAccounts.tryCreateTeam('Test Name<');
|
||||
await expectError();
|
||||
|
||||
await teamAccounts.tryCreateTeam('Test Name?');
|
||||
await expectError();
|
||||
|
||||
await teamAccounts.tryCreateTeam('Test Name@');
|
||||
await expectError();
|
||||
|
||||
await teamAccounts.tryCreateTeam('Test Name^');
|
||||
await expectError();
|
||||
|
||||
await teamAccounts.tryCreateTeam('Test Name&');
|
||||
await expectError();
|
||||
|
||||
await teamAccounts.tryCreateTeam('Test Name*');
|
||||
await expectError();
|
||||
|
||||
await teamAccounts.tryCreateTeam('Test Name(');
|
||||
await expectError();
|
||||
|
||||
await teamAccounts.tryCreateTeam('Test Name)');
|
||||
await expectError();
|
||||
|
||||
await teamAccounts.tryCreateTeam('Test Name+');
|
||||
await expectError();
|
||||
|
||||
await teamAccounts.tryCreateTeam('Test Name%');
|
||||
await expectError();
|
||||
|
||||
await teamAccounts.tryCreateTeam('Test Name$');
|
||||
await expectError();
|
||||
|
||||
await teamAccounts.tryCreateTeam('Test Name[');
|
||||
await expectError();
|
||||
|
||||
await teamAccounts.tryCreateTeam('Test Name]');
|
||||
await expectError();
|
||||
});
|
||||
});
|
||||
|
||||
test.describe('Team Account Deletion', () => {
|
||||
|
||||
Reference in New Issue
Block a user