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

impl revert deleted descendants

itizawa 5 лет назад
Родитель
Сommit
ac9d802b33
1 измененных файлов с 24 добавлено и 2 удалено
  1. 24 2
      src/test/service/page.test.js

+ 24 - 2
src/test/service/page.test.js

@@ -27,6 +27,7 @@ let parentForRevert2;
 let childForDuplicate;
 let childForDuplicate;
 let childForDelete;
 let childForDelete;
 let childForDeleteCompletely;
 let childForDeleteCompletely;
+
 let childForRevert;
 let childForRevert;
 
 
 describe('PageService', () => {
 describe('PageService', () => {
@@ -456,6 +457,7 @@ describe('PageService', () => {
   describe('revert page', () => {
   describe('revert page', () => {
     let getRevertDeletedPageNameSpy;
     let getRevertDeletedPageNameSpy;
     let findByPathSpy;
     let findByPathSpy;
+    let findSpy;
     let deleteCompletelySpy;
     let deleteCompletelySpy;
     let revertDeletedDescendantsWithStreamSpy;
     let revertDeletedDescendantsWithStreamSpy;
 
 
@@ -506,8 +508,28 @@ describe('PageService', () => {
       expect(resultPage.deletedAt).toBeNull();
       expect(resultPage.deletedAt).toBeNull();
     });
     });
 
 
-    test('revertDeletedPages()', () => {
-      expect(3).toBe(3);
+    test('revert deleted descendants', async() => {
+
+      findSpy = jest.spyOn(Page, 'find').mockImplementation(() => {
+        return [{ path: '/parentForRevert/child', redirectTo: '/trash/parentForRevert/child' }];
+      });
+
+      await crowi.pageService.revertDeletedDescendants([childForRevert], testUser2);
+      const resultPage = await Page.findOne({ path: '/parentForRevert/child' });
+      const revrtedFromPage = await Page.findOne({ path: '/trash/parentForRevert/child' });
+      const revrtedFromPageRevision = await Revision.findOne({ path: '/trash/parentForRevert/child' });
+
+      expect(getRevertDeletedPageNameSpy).toHaveBeenCalledWith(childForRevert.path);
+      expect(findSpy).toHaveBeenCalledWith({ path: { $in: ['/parentForRevert/child'] } });
+
+      expect(resultPage.path).toBe('/parentForRevert/child');
+      expect(resultPage.lastUpdateUser._id).toEqual(testUser2._id);
+      expect(resultPage.status).toBe(Page.STATUS_PUBLISHED);
+      expect(resultPage.deleteUser).toBeNull();
+      expect(resultPage.deletedAt).toBeNull();
+
+      expect(revrtedFromPage).toBeNull();
+      expect(revrtedFromPageRevision).toBeNull();
     });
     });
   });
   });