[ranges-tracker] add legacy orderedRejections field in tracked-changes (#36565)

* [docstore] use more realistic test stubs for ranges

* [monorepo] define ranges schemas in @overleaf/ranges-tracker

* [ranges-tracker] add legacy orderedRejections field in tracked-changes

* [monorepo] resolve @overleaf/ranges-tracker subpath imports in typescript

* [real-time] validate comment thread ids and tracked change id seeds

* [ranges-tracker] require ObjectId ids and tracked change metadata in ranges

* [monorepo] require ObjectId tracked change ids on the accept routes

* [web] use ObjectId comment thread ids in the DocumentController tests

GitOrigin-RevId: 58b20dec311d85b917ef63f9efbe745a265a2de6
This commit is contained in:
Jakob Ackermann
2026-09-17 12:01:19 +00:00
committed by Copybot
parent 833e44d142
commit 4e80d65efc
23 changed files with 501 additions and 383 deletions
@@ -1,27 +0,0 @@
import { describe, it, expect } from 'vitest'
import { ranges } from '../../../app/js/schemas.js'
describe('schemas', function () {
describe('ranges', function () {
it('accepts a legacy fixedRemoveChange flag on an insert op', function () {
const result = ranges.safeParse({
changes: [{ op: { i: 'foo', p: 0, fixedRemoveChange: true } }],
})
expect(result.success).to.equal(true)
})
it('accepts a legacy fixedRemoveChange flag on a delete op', function () {
const result = ranges.safeParse({
changes: [{ op: { d: 'foo', p: 0, fixedRemoveChange: true } }],
})
expect(result.success).to.equal(true)
})
it('rejects an unrecognized key on an insert op', function () {
const result = ranges.safeParse({
changes: [{ op: { i: 'foo', p: 0, somethingElse: true } }],
})
expect(result.success).to.equal(false)
})
})
})