Add rootfile detection tests

This commit is contained in:
Jerome Lelong 2021-02-26 16:59:10 +01:00
parent 6fa6381324
commit c6244723cd
7 changed files with 93 additions and 4 deletions

View File

@ -0,0 +1 @@
toto

View File

@ -0,0 +1 @@
\subimport{lmn/uvw}{two}

View File

@ -0,0 +1,5 @@
\documentclass{article}
\begin{document}
empty
\end{document}

View File

@ -0,0 +1,6 @@
\documentclass{article}
\usepackage{import}
\begin{document}
\subimport{abc}{one}
\end{document}

38
test/rootfile.index.ts Normal file
View 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
View 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))
})
})

View File

@ -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)