mirror of
https://github.com/James-Yu/LaTeX-Workshop.git
synced 2024-10-04 23:27:20 +03:00
Add rootfile detection tests
This commit is contained in:
parent
6fa6381324
commit
c6244723cd
1
test/fixtures/rootfile/fixture001/abc/lmn/uvw/two.tex
vendored
Normal file
1
test/fixtures/rootfile/fixture001/abc/lmn/uvw/two.tex
vendored
Normal file
@ -0,0 +1 @@
|
||||
toto
|
1
test/fixtures/rootfile/fixture001/abc/one.tex
vendored
Normal file
1
test/fixtures/rootfile/fixture001/abc/one.tex
vendored
Normal file
@ -0,0 +1 @@
|
||||
\subimport{lmn/uvw}{two}
|
5
test/fixtures/rootfile/fixture001/atrap.tex
vendored
Normal file
5
test/fixtures/rootfile/fixture001/atrap.tex
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
\documentclass{article}
|
||||
|
||||
\begin{document}
|
||||
empty
|
||||
\end{document}
|
6
test/fixtures/rootfile/fixture001/main.tex
vendored
Normal file
6
test/fixtures/rootfile/fixture001/main.tex
vendored
Normal file
@ -0,0 +1,6 @@
|
||||
\documentclass{article}
|
||||
\usepackage{import}
|
||||
|
||||
\begin{document}
|
||||
\subimport{abc}{one}
|
||||
\end{document}
|
38
test/rootfile.index.ts
Normal file
38
test/rootfile.index.ts
Normal file
@ -0,0 +1,38 @@
|
||||
import * as path from 'path'
|
||||
import Mocha from 'mocha'
|
||||
import glob from 'glob'
|
||||
|
||||
export function run(): Promise<void> {
|
||||
// Create the mocha test
|
||||
const mocha = new Mocha({
|
||||
ui: 'tdd',
|
||||
color: true,
|
||||
timeout: 0
|
||||
})
|
||||
const testsRoot = path.resolve(__dirname, '.')
|
||||
|
||||
return new Promise((resolve, reject) => {
|
||||
glob('rootfile.test.js', { cwd: testsRoot }, (err, files) => {
|
||||
if (err) {
|
||||
return reject(err)
|
||||
}
|
||||
|
||||
// Add files to the test suite
|
||||
files.forEach(f => mocha.addFile(path.resolve(testsRoot, f)))
|
||||
|
||||
try {
|
||||
// Run the mocha test
|
||||
mocha.run(failures => {
|
||||
if (failures > 0) {
|
||||
reject(new Error(`${failures} tests failed.`))
|
||||
} else {
|
||||
resolve()
|
||||
}
|
||||
})
|
||||
} catch (e) {
|
||||
console.error(e)
|
||||
reject(e)
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
37
test/rootfile.test.ts
Normal file
37
test/rootfile.test.ts
Normal file
@ -0,0 +1,37 @@
|
||||
import * as assert from 'assert'
|
||||
import * as path from 'path'
|
||||
|
||||
import * as process from 'process'
|
||||
import * as vscode from 'vscode'
|
||||
|
||||
import {
|
||||
getFixtureDir,
|
||||
runTestWithFixture,
|
||||
waitLatexWorkshopActivated,
|
||||
waitRootFileFound
|
||||
} from './utils'
|
||||
|
||||
|
||||
suite('RootFile test suite', () => {
|
||||
|
||||
suiteSetup(() => {
|
||||
const config = vscode.workspace.getConfiguration()
|
||||
if (process.env['LATEXWORKSHOP_CI_ENABLE_DOCKER']) {
|
||||
config.update('latex-workshop.docker.enabled', true, vscode.ConfigurationTarget.Global)
|
||||
}
|
||||
})
|
||||
|
||||
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 vscode.window.showTextDocument(doc)
|
||||
const extension = await waitLatexWorkshopActivated()
|
||||
await waitRootFileFound()
|
||||
console.log(`rootFile: ${extension.exports.manager.rootFile()}`)
|
||||
assert.ok(extension.exports.manager.rootFile() === path.join(fixtureDir, mainFileName))
|
||||
})
|
||||
|
||||
})
|
@ -22,7 +22,7 @@ function writeSettingsJson(userDataDir: string) {
|
||||
fs.writeFileSync(settingFilePath, settingsJson)
|
||||
}
|
||||
|
||||
async function runTestsOnEachFixture(targetName: 'build' | 'viewer' | 'completion') {
|
||||
async function runTestsOnEachFixture(targetName: 'build' | 'rootfile' | 'viewer' | 'completion') {
|
||||
const extensionDevelopmentPath = path.resolve(__dirname, '../../')
|
||||
const extensionTestsPath = path.resolve(__dirname, `./${targetName}.index`)
|
||||
const tmpdir = tmpFile.dirSync({ unsafeCleanup: true })
|
||||
@ -65,9 +65,10 @@ async function runTestsOnEachFixture(targetName: 'build' | 'viewer' | 'completio
|
||||
|
||||
async function main() {
|
||||
try {
|
||||
await runTestsOnEachFixture('build')
|
||||
await runTestsOnEachFixture('viewer')
|
||||
await runTestsOnEachFixture('completion')
|
||||
await runTestsOnEachFixture('rootfile')
|
||||
// await runTestsOnEachFixture('build')
|
||||
// await runTestsOnEachFixture('viewer')
|
||||
// await runTestsOnEachFixture('completion')
|
||||
} catch (err) {
|
||||
console.error('Failed to run tests')
|
||||
process.exit(1)
|
||||
|
Loading…
Reference in New Issue
Block a user