2022-06-25 00:33:38 +08:00
|
|
|
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)
|
2022-08-10 04:41:37 +08:00
|
|
|
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")
|
|
|
|
})
|
2022-06-25 00:33:38 +08:00
|
|
|
})
|