yohei0125 4 лет назад
Родитель
Сommit
86f94d3499
1 измененных файлов с 34 добавлено и 1 удалено
  1. 34 1
      packages/app/test/integration/models/pagev5.test.js

+ 34 - 1
packages/app/test/integration/models/pagev5.test.js

@@ -49,24 +49,57 @@ describe('Page', () => {
       rootPage = pages[0];
     }
 
+    const createPageId1 = new mongoose.Types.ObjectId();
+
+    await Page.insertMany([
+      {
+        _id: createPageId1,
+        path: '/v5_empty_create_4',
+        grant: Page.GRANT_PUBLIC,
+        parent: rootPage._id,
+        isEmpty: true,
+      },
+      {
+        path: '/v5_empty_create_4/v5_create_5',
+        grant: Page.GRANT_PUBLIC,
+        creator: dummyUser1,
+        lastUpdateUser: dummyUser1._id,
+        parent: createPageId1,
+      },
+    ]);
 
   });
   describe('create', () => {
+
     test('Should create single page', async() => {
       const page = await Page.create('/v5_create1', 'create1', dummyUser1, {});
       expect(page).toBeTruthy();
-      expect(page.path).toBe('/v5_create1');
       expect(page.parent).toStrictEqual(rootPage._id);
     });
 
     test('Should create empty-child and non-empty grandchild', async() => {
       const grandchildPage = await Page.create('/v5_empty_create2/v5_create_3', 'grandchild', dummyUser1, {});
       const childPage = await Page.findOne({ path: '/v5_empty_create2' });
+
       expect(grandchildPage).toBeTruthy();
       expect(childPage).toBeTruthy();
       expect(childPage.parent).toStrictEqual(rootPage._id);
       expect(grandchildPage.parent).toStrictEqual(childPage._id);
     });
 
+    test('Should create on empty page', async() => {
+      const beforeCreatePage = await Page.findOne({ path: '/v5_empty_create_4' });
+      expect(beforeCreatePage.isEmpty).toBe(true);
+
+      const childPage = await Page.create('/v5_empty_create_4', 'body', dummyUser1, {});
+      const grandchildPage = await Page.findOne({ parent: childPage._id });
+
+      expect(childPage).toBeTruthy();
+      expect(childPage.isEmpty).toBe(false);
+      expect(grandchildPage).toBeTruthy();
+      expect(childPage.parent).toStrictEqual(rootPage._id);
+      expect(grandchildPage.parent).toStrictEqual(childPage._id);
+    });
+
   });
 });