import { stat } from "fs/promises"
import path from "path"
import { clean, tmpdir } from "../utils/helpers"
import { runCodeServerCommand } from "../utils/runCodeServerCommand"
describe("--install-extension", () => {
const testName = "installExtension"
let tempDir: string
let setupFlags: string[]
beforeEach(async () => {
await clean(testName)
tempDir = await tmpdir(testName)
setupFlags = ["--extensions-dir", tempDir]
})
it("should install an extension", async () => {
const extName = `wesbos.theme-cobalt2-2.1.6`
const vsixFileName = "wesbos.theme-cobalt2-2.1.6.vsix"
const extensionFixture = path.resolve(`./test/integration/fixtures/${vsixFileName}`)
await runCodeServerCommand([...setupFlags, "--install-extension", extensionFixture])
const pathToExtFolder = path.join(tempDir, extName)
const statInfo = await stat(pathToExtFolder)
expect(statInfo.isDirectory()).toBe(true)
}, 20000)
it("should use EXTENSIONS_GALLERY when set", async () => {
const extName = `author.extension-1.0.0`
const { stderr } = await runCodeServerCommand([...setupFlags, "--install-extension", extName], {
EXTENSIONS_GALLERY: "{}",
expect(stderr).toMatch("No extension gallery service configured")