diff --git a/components/server/src/workspace/workspace-starter.spec.ts b/components/server/src/workspace/workspace-starter.spec.ts index 5161477e8fcf6d..12fd1b290361ae 100644 --- a/components/server/src/workspace/workspace-starter.spec.ts +++ b/components/server/src/workspace/workspace-starter.spec.ts @@ -249,5 +249,19 @@ describe("workspace-starter", function () { const result = chooseIDE("unknown-custom", customOptions, useLatest, hasPerm); expect(result.ideImage).to.equal(ideOptions.options["code"].latestImage); }); + + it("not exists ide with custom permission", function () { + const useLatest = true; + const hasPerm = true; + const result = chooseIDE("not-exists", ideOptions, useLatest, hasPerm); + expect(result.ideImage).to.equal(ideOptions.options["code"].latestImage); + }); + + it("not exists ide with custom permission", function () { + const useLatest = true; + const hasPerm = false; + const result = chooseIDE("not-exists", ideOptions, useLatest, hasPerm); + expect(result.ideImage).to.equal(ideOptions.options["code"].latestImage); + }); }); }); diff --git a/components/server/src/workspace/workspace-starter.ts b/components/server/src/workspace/workspace-starter.ts index 39ccab35dc6596..a08e83820130c2 100644 --- a/components/server/src/workspace/workspace-starter.ts +++ b/components/server/src/workspace/workspace-starter.ts @@ -159,7 +159,7 @@ export const chooseIDE = ( const data: { desktopIdeImage?: string; ideImage: string } = { ideImage: defaultIdeImage, }; - const chooseOption = ideOptions.options[ideChoice]; + const chooseOption = ideOptions.options[ideChoice] ?? defaultIDEOption; const isDesktopIde = chooseOption.type === "desktop"; if (isDesktopIde) { data.desktopIdeImage = useLatest ? chooseOption?.latestImage ?? chooseOption?.image : chooseOption?.image;