From 78c81cd0d568216dd1e1cb6a5d5a80311b7b7b10 Mon Sep 17 00:00:00 2001 From: Mathias Jakobsen Date: Fri, 10 Apr 2026 10:25:59 +0100 Subject: [PATCH] Merge pull request #32730 from overleaf/mj-conversion-compiler-luatex [web] Use LuaLaTeX compiler for converted documents GitOrigin-RevId: e9a0d2020ce40a0ada16eb9afae8b1a08933db49 --- .../Uploads/ProjectUploadController.mjs | 2 ++ .../Uploads/ProjectUploadController.test.mjs | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+) diff --git a/services/web/app/src/Features/Uploads/ProjectUploadController.mjs b/services/web/app/src/Features/Uploads/ProjectUploadController.mjs index 50032f6601..27e237a225 100644 --- a/services/web/app/src/Features/Uploads/ProjectUploadController.mjs +++ b/services/web/app/src/Features/Uploads/ProjectUploadController.mjs @@ -15,6 +15,7 @@ import lodash from 'lodash' import { expressify } from '@overleaf/promise-utils' import { DuplicateNameError, FileTooLargeError } from '../Errors/Errors.js' import DocumentConversionManager from './DocumentConversionManager.mjs' +import ProjectOptionsHandler from '../Project/ProjectOptionsHandler.mjs' const defaultsDeep = lodash.defaultsDeep @@ -191,6 +192,7 @@ async function importDocx(req, res, next) { name, archivePath ) + await ProjectOptionsHandler.promises.setCompiler(project._id, 'lualatex') res.json({ success: true, project_id: project._id }) } finally { await fsPromises.unlink(archivePath).catch(() => {}) diff --git a/services/web/test/unit/src/Uploads/ProjectUploadController.test.mjs b/services/web/test/unit/src/Uploads/ProjectUploadController.test.mjs index 2e83784cd1..caf266b086 100644 --- a/services/web/test/unit/src/Uploads/ProjectUploadController.test.mjs +++ b/services/web/test/unit/src/Uploads/ProjectUploadController.test.mjs @@ -41,6 +41,11 @@ describe('ProjectUploadController', function () { ctx.EditorController = { promises: {}, } + ctx.ProjectOptionsHandler = { + promises: { + setCompiler: sinon.stub().resolves(), + }, + } ctx.DocumentConversionManager = { promises: { convertDocxToLaTeXZipArchive: sinon.stub(), @@ -93,6 +98,13 @@ describe('ProjectUploadController', function () { default: ctx.EditorController, })) + vi.doMock( + '../../../../app/src/Features/Project/ProjectOptionsHandler', + () => ({ + default: ctx.ProjectOptionsHandler, + }) + ) + vi.doMock( '../../../../app/src/Features/Uploads/DocumentConversionManager.mjs', () => ({ @@ -477,6 +489,12 @@ describe('ProjectUploadController', function () { ).to.have.been.calledWith(ctx.user_id, 'file', ctx.archivePath) }) + it('should set the compiler to lualatex', function (ctx) { + expect( + ctx.ProjectOptionsHandler.promises.setCompiler + ).to.have.been.calledWith('new-project-id', 'lualatex') + }) + it('should unlink the archive after creating the project', function (ctx) { expect(ctx.fsPromises.unlink).to.have.been.calledWith(ctx.archivePath) })