From 8a67258461b66f6f36da7e8cd4191ceb8041a2ce Mon Sep 17 00:00:00 2001 From: Jakob Ackermann Date: Mon, 30 Mar 2026 15:32:09 +0200 Subject: [PATCH] [project-history] remove unused DocumentUpdaterManager (#32537) GitOrigin-RevId: f2806187e2ae4e768f48a724712daffd4168e4fb --- .../app/js/DocumentUpdaterManager.js | 84 -------- .../unit/js/DiffManager/DiffManagerTests.js | 3 - .../DocumentUpdaterManagerTests.js | 184 ------------------ 3 files changed, 271 deletions(-) delete mode 100644 services/project-history/app/js/DocumentUpdaterManager.js delete mode 100644 services/project-history/test/unit/js/DocumentUpdaterManager/DocumentUpdaterManagerTests.js diff --git a/services/project-history/app/js/DocumentUpdaterManager.js b/services/project-history/app/js/DocumentUpdaterManager.js deleted file mode 100644 index a791870cef..0000000000 --- a/services/project-history/app/js/DocumentUpdaterManager.js +++ /dev/null @@ -1,84 +0,0 @@ -/* eslint-disable - no-unused-vars, -*/ -// TODO: This file was created by bulk-decaffeinate. -// Fix any style issues and re-enable lint. -/* - * decaffeinate suggestions: - * DS102: Remove unnecessary code created because of implicit returns - * DS207: Consider shorter variations of null checks - * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md - */ -import request from 'request' -import logger from '@overleaf/logger' -import Settings from '@overleaf/settings' -import OError from '@overleaf/o-error' - -export function getDocument(projectId, docId, callback) { - if (callback == null) { - callback = function () {} - } - const url = `${Settings.apis.documentupdater.url}/project/${projectId}/doc/${docId}` - logger.debug({ projectId, docId }, 'getting doc from document updater') - return request.get(url, function (error, res, body) { - if (error != null) { - return callback(OError.tag(error)) - } - if (res.statusCode >= 200 && res.statusCode < 300) { - try { - body = JSON.parse(body) - } catch (error1) { - error = error1 - return callback(error) - } - logger.debug( - { projectId, docId, version: body.version }, - 'got doc from document updater' - ) - return callback(null, body.lines.join('\n'), body.version) - } else { - error = new OError('doc updater returned a non-success status code', { - project_id: projectId, - doc_id: docId, - url, - statusCode: res.statusCode, - }) - return callback(error) - } - }) -} - -export function setDocument(projectId, docId, content, userId, callback) { - if (callback == null) { - callback = function () {} - } - const url = `${Settings.apis.documentupdater.url}/project/${projectId}/doc/${docId}` - logger.debug({ projectId, docId }, 'setting doc in document updater') - return request.post( - { - url, - json: { - lines: content.split('\n'), - source: 'restore', - user_id: userId, - undoing: true, - }, - }, - function (error, res, body) { - if (error != null) { - return callback(OError.tag(error)) - } - if (res.statusCode >= 200 && res.statusCode < 300) { - return callback(null) - } else { - error = new OError('doc updater returned a non-success status code', { - project_id: projectId, - doc_id: docId, - url, - statusCode: res.statusCode, - }) - return callback(error) - } - } - ) -} diff --git a/services/project-history/test/unit/js/DiffManager/DiffManagerTests.js b/services/project-history/test/unit/js/DiffManager/DiffManagerTests.js index ba2c15543d..ac20bf5c65 100644 --- a/services/project-history/test/unit/js/DiffManager/DiffManagerTests.js +++ b/services/project-history/test/unit/js/DiffManager/DiffManagerTests.js @@ -6,7 +6,6 @@ const MODULE_PATH = '../../../../app/js/DiffManager.js' describe('DiffManager', function () { beforeEach(async function () { - this.DocumentUpdaterManager = {} this.DiffGenerator = { buildDiff: sinon.stub(), } @@ -24,8 +23,6 @@ describe('DiffManager', function () { } this.FileTreeDiffGenerator = {} this.DiffManager = await esmock(MODULE_PATH, { - '../../../../app/js/DocumentUpdaterManager.js': - this.DocumentUpdaterManager, '../../../../app/js/DiffGenerator.js': this.DiffGenerator, '../../../../app/js/UpdatesProcessor.js': this.UpdatesProcessor, '../../../../app/js/HistoryStoreManager.js': this.HistoryStoreManager, diff --git a/services/project-history/test/unit/js/DocumentUpdaterManager/DocumentUpdaterManagerTests.js b/services/project-history/test/unit/js/DocumentUpdaterManager/DocumentUpdaterManagerTests.js deleted file mode 100644 index e298110a7a..0000000000 --- a/services/project-history/test/unit/js/DocumentUpdaterManager/DocumentUpdaterManagerTests.js +++ /dev/null @@ -1,184 +0,0 @@ -/* eslint-disable - no-return-assign, - no-undef, - no-unused-vars, -*/ -// TODO: This file was created by bulk-decaffeinate. -// Fix any style issues and re-enable lint. -/* - * decaffeinate suggestions: - * DS102: Remove unnecessary code created because of implicit returns - * Full docs: https://github.com/decaffeinate/decaffeinate/blob/master/docs/suggestions.md - */ -import sinon from 'sinon' -import { expect } from 'chai' -import { strict as esmock } from 'esmock' - -const MODULE_PATH = '../../../../app/js/DocumentUpdaterManager.js' - -describe('DocumentUpdaterManager', function () { - beforeEach(async function () { - this.settings = { - apis: { documentupdater: { url: 'http://example.com' } }, - } - this.request = { - get: sinon.stub(), - post: sinon.stub(), - } - this.DocumentUpdaterManager = await esmock(MODULE_PATH, { - request: this.request, - '@overleaf/settings': this.settings, - }) - this.callback = sinon.stub() - this.lines = ['one', 'two', 'three'] - return (this.version = 42) - }) - - describe('getDocument', function () { - describe('successfully', function () { - beforeEach(function () { - this.body = JSON.stringify({ - lines: this.lines, - version: this.version, - ops: [], - }) - this.request.get.yields(null, { statusCode: 200 }, this.body) - return this.DocumentUpdaterManager.getDocument( - this.project_id, - this.doc_id, - this.callback - ) - }) - - it('should get the document from the document updater', function () { - const url = `${this.settings.apis.documentupdater.url}/project/${this.project_id}/doc/${this.doc_id}` - return this.request.get.calledWith(url).should.equal(true) - }) - - return it('should call the callback with the content and version', function () { - return this.callback - .calledWith(null, this.lines.join('\n'), this.version) - .should.equal(true) - }) - }) - - describe('when the document updater API returns an error', function () { - beforeEach(function () { - this.error = new Error('something went wrong') - this.request.get.yields(this.error, null, null) - return this.DocumentUpdaterManager.getDocument( - this.project_id, - this.doc_id, - this.callback - ) - }) - - return it('should return an error to the callback', function () { - return this.callback.calledWith(this.error).should.equal(true) - }) - }) - - return describe('when the document updater returns a failure error code', function () { - beforeEach(function () { - this.request.get.yields(null, { statusCode: 500 }, '') - return this.DocumentUpdaterManager.getDocument( - this.project_id, - this.doc_id, - this.callback - ) - }) - - return it('should return the callback with an error', function () { - return this.callback - .calledWith( - sinon.match.has( - 'message', - 'doc updater returned a non-success status code' - ) - ) - .should.equal(true) - }) - }) - }) - - return describe('setDocument', function () { - beforeEach(function () { - this.content = 'mock content' - return (this.user_id = 'user-id-123') - }) - - describe('successfully', function () { - beforeEach(function () { - this.request.post.yields(null, { statusCode: 200 }) - return this.DocumentUpdaterManager.setDocument( - this.project_id, - this.doc_id, - this.content, - this.user_id, - this.callback - ) - }) - - it('should set the document in the document updater', function () { - const url = `${this.settings.apis.documentupdater.url}/project/${this.project_id}/doc/${this.doc_id}` - return this.request.post - .calledWith({ - url, - json: { - lines: this.content.split('\n'), - source: 'restore', - user_id: this.user_id, - undoing: true, - }, - }) - .should.equal(true) - }) - - return it('should call the callback', function () { - return this.callback.calledWith(null).should.equal(true) - }) - }) - - describe('when the document updater API returns an error', function () { - beforeEach(function () { - this.error = new Error('something went wrong') - this.request.post.yields(this.error, null, null) - return this.DocumentUpdaterManager.setDocument( - this.project_id, - this.doc_id, - this.content, - this.user_id, - this.callback - ) - }) - - return it('should return an error to the callback', function () { - return this.callback.calledWith(this.error).should.equal(true) - }) - }) - - return describe('when the document updater returns a failure error code', function () { - beforeEach(function () { - this.request.post.yields(null, { statusCode: 500 }, '') - return this.DocumentUpdaterManager.setDocument( - this.project_id, - this.doc_id, - this.content, - this.user_id, - this.callback - ) - }) - - return it('should return the callback with an error', function () { - return this.callback - .calledWith( - sinon.match.has( - 'message', - 'doc updater returned a non-success status code' - ) - ) - .should.equal(true) - }) - }) - }) -})