diff --git a/site/src/utils/templateVersion.test.ts b/site/src/utils/templateVersion.test.ts new file mode 100644 index 0000000000..6e73e027f9 --- /dev/null +++ b/site/src/utils/templateVersion.test.ts @@ -0,0 +1,25 @@ +import { TarReader, TarWriter } from "./tar"; +import { createTemplateVersionFileTree } from "./templateVersion"; + +test("createTemplateVersionFileTree ignores empty path segments", async () => { + const writer = new TarWriter(); + writer.addFolder("files/etc/apt/"); + writer.addFile( + "files/etc/apt/sources.list", + "deb http://example.com stable main", + ); + + const tarFile = await writer.write(); + const reader = new TarReader(); + await reader.readFile(tarFile); + + expect(createTemplateVersionFileTree(reader)).toEqual({ + files: { + etc: { + apt: { + "sources.list": "deb http://example.com stable main", + }, + }, + }, + }); +}); diff --git a/site/src/utils/templateVersion.ts b/site/src/utils/templateVersion.ts index ac0e0d8908..5da96aa302 100644 --- a/site/src/utils/templateVersion.ts +++ b/site/src/utils/templateVersion.ts @@ -30,7 +30,7 @@ export const createTemplateVersionFileTree = ( for (const file of tarReader.fileInfo) { fileTree = set( fileTree, - file.name.split("/"), + file.name.split("/").filter((part) => part !== ""), file.type === TarFileTypeCodes.Dir ? {} : (tarReader.getTextFile(file.name) as string),