pagev5.test.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. import mongoose from 'mongoose';
  2. import { getInstance } from '../setup-crowi';
  3. describe('Page', () => {
  4. // ルートの下にページ作成
  5. // /a/bを作成
  6. // 子持ち空ページのパスでcreate
  7. let crowi;
  8. let Page;
  9. let Revision;
  10. let User;
  11. let Tag;
  12. let PageTagRelation;
  13. let Bookmark;
  14. let Comment;
  15. let ShareLink;
  16. let PageRedirect;
  17. let xssSpy;
  18. let rootPage;
  19. let dummyUser1;
  20. beforeAll(async() => {
  21. crowi = await getInstance();
  22. await crowi.configManager.updateConfigsInTheSameNamespace('crowi', { 'app:isV5Compatible': true });
  23. jest.restoreAllMocks();
  24. User = mongoose.model('User');
  25. Page = mongoose.model('Page');
  26. Revision = mongoose.model('Revision');
  27. Tag = mongoose.model('Tag');
  28. PageTagRelation = mongoose.model('PageTagRelation');
  29. Bookmark = mongoose.model('Bookmark');
  30. Comment = mongoose.model('Comment');
  31. ShareLink = mongoose.model('ShareLink');
  32. PageRedirect = mongoose.model('PageRedirect');
  33. dummyUser1 = await User.findOne({ username: 'v5DummyUser1' });
  34. if (dummyUser1 == null) {
  35. dummyUser1 = await User.create({ name: 'v5DummyUser1', username: 'v5DummyUser1', email: 'v5DummyUser1@example.com' });
  36. }
  37. rootPage = await Page.findOne({ path: '/' });
  38. if (rootPage == null) {
  39. const pages = await Page.insertMany([
  40. {
  41. path: '/',
  42. grant: Page.GRANT_PUBLIC,
  43. },
  44. ]);
  45. rootPage = pages[0];
  46. }
  47. });
  48. describe('create', () => {
  49. test('Should create single page', async() => {
  50. const page = await Page.create('/v5_create1', 'create1', dummyUser1, {});
  51. expect(page).toBeTruthy();
  52. expect(page.path).toBe('/v5_create1');
  53. expect(page.parent).toStrictEqual(rootPage._id);
  54. });
  55. });
  56. });