diff --git a/src/Terminal/DirectoryHelpers.ts b/src/Terminal/DirectoryHelpers.ts index 56574afd4..3b9eb0b45 100644 --- a/src/Terminal/DirectoryHelpers.ts +++ b/src/Terminal/DirectoryHelpers.ts @@ -51,7 +51,7 @@ export function isValidFilename(filename: string): boolean { export function isValidDirectoryName(name: string): boolean { // Allows alphanumerics, hyphens, underscores, and percentage signs. // Name can begin with a single period, but otherwise cannot have any - const regex = /^.?[a-zA-Z0-9_-]+$/; + const regex = /^\.?(?:\w[_\-.%]*)+$/; // match() returns null if no match is found return name.match(regex) != null; diff --git a/test/jest/Terminal/Directory.test.js b/test/jest/Terminal/Directory.test.js index 337a96ca4..94c3a4d2e 100644 --- a/test/jest/Terminal/Directory.test.js +++ b/test/jest/Terminal/Directory.test.js @@ -102,17 +102,18 @@ describe("Terminal Directory Tests", function () { expect(isValidDirectoryName(".a1")).toEqual(true); expect(isValidDirectoryName("._foo")).toEqual(true); expect(isValidDirectoryName("_foo")).toEqual(true); + expect(isValidDirectoryName("foo.dir")).toEqual(true); + expect(isValidDirectoryName("1.")).toEqual(true); + expect(isValidDirectoryName("foo.")).toEqual(true); }); it("should return false for invalid directory names", function () { expect(isValidDirectoryName("")).toEqual(false); - expect(isValidDirectoryName("foo.dir")).toEqual(false); - expect(isValidDirectoryName("1.")).toEqual(false); - expect(isValidDirectoryName("foo.")).toEqual(false); expect(isValidDirectoryName("dir#")).toEqual(false); expect(isValidDirectoryName("dir!")).toEqual(false); expect(isValidDirectoryName("dir*")).toEqual(false); expect(isValidDirectoryName(".")).toEqual(false); + expect(isValidDirectoryName("..")).toEqual(false); }); });