pagev5.test.js 1.6 KB

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