Просмотр исходного кода

[dsmp] replace stubs with MockDocStoreApi and MockDocUpdaterApi (#28122)

* [dsmp] replace stubs with MockDocStoreApi and MockDocUpdaterApi

* fix reject changes test

GitOrigin-RevId: 692195545b16e9674327f7a9828b53f5271b6f20
Domagoj Kriskovic 1 год назад
Родитель
Сommit
f6820ed794

+ 15 - 0
services/web/test/acceptance/src/mocks/MockDocUpdaterApi.mjs

@@ -34,6 +34,21 @@ class MockDocUpdaterApi extends AbstractMockApi {
       res.sendStatus(200)
     })
 
+    this.app.post(
+      '/project/:projectId/doc/:docId/change/accept',
+      (req, res) => {
+        res.sendStatus(204)
+      }
+    )
+
+    this.app.post(
+      '/project/:projectId/doc/:docId/change/reject',
+      (req, res) => {
+        const { change_ids: changeIds } = req.body
+        res.json({ rejectedChangeIds: changeIds })
+      }
+    )
+
     this.app.post('/project/:projectId/doc/:doc_id', (req, res) => {
       res.sendStatus(204)
     })

+ 22 - 0
services/web/test/acceptance/src/mocks/MockDocstoreApi.mjs

@@ -6,6 +6,20 @@ class MockDocstoreApi extends AbstractMockApi {
     this.docs = {}
   }
 
+  addDocument(projectId, docId, { lines, version, ranges }) {
+    if (!this.docs[projectId]) {
+      this.docs[projectId] = {}
+    }
+    this.docs[projectId][docId] = {
+      _id: docId,
+      lines: lines || [],
+      version: version || 1,
+      ranges: ranges || {},
+      rev: 1,
+    }
+    return this.docs[projectId][docId]
+  }
+
   createLegacyDeletedDoc(projectId, docId) {
     if (!this.docs[projectId]) {
       this.docs[projectId] = {}
@@ -53,6 +67,14 @@ class MockDocstoreApi extends AbstractMockApi {
       res.json(Object.values(this.docs[req.params.projectId] || {}))
     })
 
+    this.app.get('/project/:projectId/ranges', (req, res) => {
+      const { projectId } = req.params
+      const docs = Object.values(this.docs[projectId] || {})
+        .filter(doc => !doc.deleted)
+        .map(doc => ({ _id: doc._id, ranges: doc.ranges }))
+      res.json(docs)
+    })
+
     this.app.get('/project/:projectId/doc-deleted', (req, res) => {
       res.json(this.getDeletedDocs(req.params.projectId))
     })