Add validation for new file names for sql projects (#21601)

* Add validation for new file names for sql projects

* Addres comments and add validation for new project dialog

* Address comments

* Address comments on test

* Fix tests

* Remove extra error messages and rename file

* Address comments

* Fix tests

* Add test file back
This commit is contained in:
Sakshi Sharma
2023-02-02 07:25:26 -08:00
committed by GitHub
parent 1071c6dfff
commit 972312b3f5
12 changed files with 438 additions and 29 deletions

View File

@@ -651,7 +651,7 @@ export class ProjectsController {
}
private async promptForNewObjectName(itemType: templates.ProjectScriptType, _project: ISqlProject, folderPath: string, fileExtension?: string, defaultName?: string): Promise<string | undefined> {
const suggestedName = defaultName ?? itemType.friendlyName.replace(/\s+/g, '');
const suggestedName = utils.sanitizeStringForFilename(defaultName ?? itemType.friendlyName.replace(/\s+/g, ''));
let counter: number = 0;
do {
@@ -662,6 +662,9 @@ export class ProjectsController {
const itemObjectName = await vscode.window.showInputBox({
prompt: constants.newObjectNamePrompt(itemType.friendlyName),
value: `${suggestedName}${counter}`,
validateInput: (value) => {
return utils.isValidBasename(value) ? undefined : utils.isValidBasenameErrorMessage(value);
},
ignoreFocusOut: true,
});
@@ -1279,7 +1282,7 @@ export class ProjectsController {
prompt: constants.autorestProjectName,
value: defaultName,
validateInput: (value) => {
return value.trim() ? undefined : constants.nameMustNotBeEmpty;
return utils.isValidBasename(value.trim()) ? undefined : utils.isValidBasenameErrorMessage(value.trim());
}
});