Skip to content

Commit

Permalink
forbid sys_
Browse files Browse the repository at this point in the history
  • Loading branch information
calypsomatic committed Feb 2, 2024
1 parent 55b889e commit 75b799e
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 1 deletion.
12 changes: 12 additions & 0 deletions src/workspace-data/data-table/shared/RenameColumnModal.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -52,4 +52,16 @@ describe('RenameColumnModal', () => {
// Assert
expect(renameModal.getByText(/already exists as an attribute name/));
});

it('Errors on column name starting with sys_', async () => {
// Arrange
const renameProps = { ...defaultRenameColumnModalProps };
// Act
const renameModal = render(h(RenameColumnModal, renameProps));
// User enters 'attribute2'
const input = screen.getByLabelText(/New Name/);
await userEvent.type(input, 'sys_attribute');
// Assert
expect(renameModal.getByText(/Column name cannot start with "sys_"/));
});
});
3 changes: 2 additions & 1 deletion src/workspace-data/data-table/shared/RenameColumnModal.ts
Original file line number Diff line number Diff line change
Expand Up @@ -36,13 +36,14 @@ export const RenameColumnModal = (props: RenameColumnModalProps): ReactNode => {
message: 'Column name is required',
},
format: {
pattern: `^(?!name$|entityType$|${entityType}_id$)[A-Za-z0-9_-]+$`,
pattern: `^(?!name$|entityType$|${entityType}_id$|sys_)[A-Za-z0-9_-]+$`,
flags: 'i',
message: Utils.cond(
[
['name', 'entityType', `${entityType}_id`].includes(newAttributeName),
() => `Column name cannot be "name", "entityType" or "${entityType}_id".`,
],
[newAttributeName.startsWith('sys_'), () => 'Column name cannot start with "sys_".'],

() => 'Column name may only contain alphanumeric characters, underscores, and dashes.'
),
Expand Down

0 comments on commit 75b799e

Please sign in to comment.