| ... | @@ -1,11 +1,9 @@ | ... | @@ -1,11 +1,9 @@ |
| 1 | import { describe, it, expect } from "vite-plus/test"; | 1 | import { describe, it, expect } from "vite-plus/test"; |
| 2 | | 2 | |
| 3 | import { | 3 | import { |
| 4 | DISTRO_NAME_PATTERN, | | |
| 5 | extractDistroFromUncPath, | 4 | extractDistroFromUncPath, |
| 6 | isValidDistroName, | 5 | isValidDistroName, |
| 7 | parseWslDistroList, | 6 | parseWslDistroList, |
| 8 | resolveWslHomeUncPath, | | |
| 9 | resolveWslPickFolderDefaultPath, | 7 | resolveWslPickFolderDefaultPath, |
| 10 | wslUncPathToLinuxPath, | 8 | wslUncPathToLinuxPath, |
| 11 | } from "./wslPathParsing.ts"; | 9 | } from "./wslPathParsing.ts"; |
| ... | @@ -116,29 +114,6 @@ describe("wslUncPathToLinuxPath", () => { | ... | @@ -116,29 +114,6 @@ describe("wslUncPathToLinuxPath", () => { |
| 116 | }); | 114 | }); |
| 117 | }); | 115 | }); |
| 118 | | 116 | |
| 119 | describe("resolveWslHomeUncPath", () => { | | |
| 120 | const distros = [ | | |
| 121 | { name: "Debian", isDefault: true, version: 2 as const }, | | |
| 122 | { name: "Ubuntu", isDefault: false, version: 2 as const }, | | |
| 123 | ]; | | |
| 124 | | | |
| 125 | it("uses the configured distro when one is selected", () => { | | |
| 126 | expect(resolveWslHomeUncPath({ distro: "Ubuntu" }, distros)).toBe( | | |
| 127 | "\\\\wsl.localhost\\Ubuntu\\home", | | |
| 128 | ); | | |
| 129 | }); | | |
| 130 | | | |
| 131 | it("uses the actual default distro when config uses the WSL default", () => { | | |
| 132 | expect(resolveWslHomeUncPath({ distro: null }, distros)).toBe( | | |
| 133 | "\\\\wsl.localhost\\Debian\\home", | | |
| 134 | ); | | |
| 135 | }); | | |
| 136 | | | |
| 137 | it("omits the default path when no default distro is known", () => { | | |
| 138 | expect(resolveWslHomeUncPath({ distro: null }, [])).toBeNull(); | | |
| 139 | }); | | |
| 140 | }); | | |
| 141 | | | |
| 142 | describe("resolveWslPickFolderDefaultPath", () => { | 117 | describe("resolveWslPickFolderDefaultPath", () => { |
| 143 | const config = { distro: null }; | 118 | const config = { distro: null }; |
| 144 | const distros = [{ name: "Debian", isDefault: true, version: 2 as const }]; | 119 | const distros = [{ name: "Debian", isDefault: true, version: 2 as const }]; |
| ... | @@ -184,23 +159,22 @@ describe("resolveWslPickFolderDefaultPath", () => { | ... | @@ -184,23 +159,22 @@ describe("resolveWslPickFolderDefaultPath", () => { |
| 184 | }); | 159 | }); |
| 185 | }); | 160 | }); |
| 186 | | 161 | |
| 187 | describe("DISTRO_NAME_PATTERN / isValidDistroName", () => { | 162 | describe("isValidDistroName", () => { |
| 188 | it("accepts common distro names", () => { | 163 | it("accepts common distro names", () => { |
| 189 | for (const name of ["Ubuntu", "Ubuntu-22.04", "kali-linux", "Debian", "Ubuntu 22.04"]) { | 164 | for (const name of ["Ubuntu", "Ubuntu-22.04", "kali-linux", "Debian", "Ubuntu 22.04"]) { |
| 190 | expect(DISTRO_NAME_PATTERN.test(name)).toBe(true); | | |
| 191 | expect(isValidDistroName(name)).toBe(true); | 165 | expect(isValidDistroName(name)).toBe(true); |
| 192 | } | 166 | } |
| 193 | }); | 167 | }); |
| 194 | | 168 | |
| 195 | it("rejects names with trailing whitespace, hyphen, or dot", () => { | 169 | it("rejects names with trailing whitespace, hyphen, or dot", () => { |
| 196 | for (const name of ["Ubuntu ", "Ubuntu-", "Ubuntu."]) { | 170 | for (const name of ["Ubuntu ", "Ubuntu-", "Ubuntu."]) { |
| 197 | expect(DISTRO_NAME_PATTERN.test(name)).toBe(false); | 171 | expect(isValidDistroName(name)).toBe(false); |
| 198 | } | 172 | } |
| 199 | }); | 173 | }); |
| 200 | | 174 | |
| 201 | it("rejects names containing control or shell-meta characters", () => { | 175 | it("rejects names containing control or shell-meta characters", () => { |
| 202 | for (const name of ["bad\nname", "bad\tname", "bad/name", "bad!name", "bad;name"]) { | 176 | for (const name of ["bad\nname", "bad\tname", "bad/name", "bad!name", "bad;name"]) { |
| 203 | expect(DISTRO_NAME_PATTERN.test(name)).toBe(false); | 177 | expect(isValidDistroName(name)).toBe(false); |
| 204 | } | 178 | } |
| 205 | }); | 179 | }); |
| 206 | }); | 180 | }); |