mirror of
https://github.com/James-Yu/LaTeX-Workshop.git
synced 2024-10-05 07:37:24 +03:00
65 lines
2.8 KiB
TypeScript
65 lines
2.8 KiB
TypeScript
import * as assert from 'assert'
|
|
import * as path from 'path'
|
|
|
|
import * as process from 'process'
|
|
import * as vscode from 'vscode'
|
|
|
|
import {
|
|
getFixtureDir,
|
|
runTestWithFixture,
|
|
waitLatexWorkshopActivated,
|
|
promisify,
|
|
sleep
|
|
} from './utils/ciutils'
|
|
|
|
suite('RootFile test suite', () => {
|
|
|
|
suiteSetup(() => {
|
|
const config = vscode.workspace.getConfiguration()
|
|
if (process.env['LATEXWORKSHOP_CI_ENABLE_DOCKER']) {
|
|
return config.update('latex-workshop.docker.enabled', true, vscode.ConfigurationTarget.Global)
|
|
}
|
|
return
|
|
})
|
|
|
|
runTestWithFixture('fixture001', 'import package', async () => {
|
|
const fixtureDir = getFixtureDir()
|
|
const texFileName = 'abc/lmn/uvw/two.tex'
|
|
const mainFileName = 'main.tex'
|
|
const texFilePath = vscode.Uri.file(path.join(fixtureDir, texFileName))
|
|
const doc = await vscode.workspace.openTextDocument(texFilePath)
|
|
await sleep(1000)
|
|
const rootFileFound = promisify('findrootfileend')
|
|
await vscode.window.showTextDocument(doc)
|
|
const extension = await waitLatexWorkshopActivated()
|
|
await rootFileFound
|
|
console.log(`rootFile: ${extension.exports.extension.manager.rootFile}`)
|
|
assert.strictEqual(extension.exports.extension.manager.rootFile, path.join(fixtureDir, mainFileName))
|
|
})
|
|
|
|
runTestWithFixture('fixture002', 'circular inclusion', async () => {
|
|
const fixtureDir = getFixtureDir()
|
|
const texFileName = 'a.tex'
|
|
const tex2FileName = 'poo.tex'
|
|
const mainFileName = 'main.tex'
|
|
const texFilePath = vscode.Uri.file(path.join(fixtureDir, texFileName))
|
|
const rootFileFound = promisify('findrootfileend')
|
|
const doc = await vscode.workspace.openTextDocument(texFilePath)
|
|
await vscode.window.showTextDocument(doc)
|
|
const extension = await waitLatexWorkshopActivated()
|
|
await rootFileFound
|
|
console.log(`rootFile: ${extension.exports.extension.manager.rootFile}`)
|
|
assert.strictEqual(extension.exports.extension.manager.rootFile, path.join(fixtureDir, mainFileName))
|
|
if (extension.exports.extension) {
|
|
extension.exports.extension.manager.rootFile = undefined
|
|
await extension.exports.extension.manager.findRoot()
|
|
const includedTeX = extension.exports.extension.manager.getIncludedTeX()
|
|
console.log(`rootFile: ${extension.exports.extension.manager.rootFile}`)
|
|
console.log(JSON.stringify(includedTeX))
|
|
return assert.ok(includedTeX.includes(path.join(fixtureDir, texFileName)) && includedTeX.includes(path.join(fixtureDir, tex2FileName)) && includedTeX.includes(path.join(fixtureDir, mainFileName)))
|
|
}
|
|
assert.fail('Real extension is undefined.')
|
|
})
|
|
|
|
})
|