// SPDX-License-Identifier: AGPL-3.0-only 'use strict'; const fs = require('node:fs'); const os = require('node:os'); const path = require('node:path'); const {downloadAndUnzipVSCode, runTests} = require('@vscode/test-electron'); (async () => { const extensionDevelopmentPath = path.resolve(__dirname, '..', '..'); const sourceWorkspace = path.join(extensionDevelopmentPath, 'test', 'workspace'); const temporary = fs.mkdtempSync(path.join(os.tmpdir(), 'himesan-vscode-integration-')); const workspace = path.join(temporary, 'project [safe]'); fs.cpSync(sourceWorkspace, workspace, {recursive: true}); try { const vscodeExecutablePath = await downloadAndUnzipVSCode('1.96.4'); await runTests({ vscodeExecutablePath, extensionDevelopmentPath, extensionTestsPath: path.join(__dirname, 'suite', 'index.js'), launchArgs: [workspace, '--disable-extensions', '--disable-gpu', '--skip-welcome', '--skip-release-notes'], extensionTestsEnv: {HIMESAN_TEST_BINARY: process.env.HIMESAN_TEST_BINARY || ''}, }); } finally { fs.rmSync(temporary, {recursive: true, force: true}); } })().catch((error) => { console.error(error); process.exitCode = 1; });