universo-platform-2d

Форк
0
116 строк · 4.0 Кб
1
import { patchDataEnhancement } from '@affine-test/kit/e2e-enhance/initializer';
2
import { SnapshotStorage } from '@affine-test/kit/e2e-enhance/snapshot';
3
import { test } from '@affine-test/kit/playwright';
4
import { clickEdgelessModeButton } from '@affine-test/kit/utils/editor';
5
import { coreUrl } from '@affine-test/kit/utils/load-page';
6
import { waitForEditorLoad } from '@affine-test/kit/utils/page-logic';
7
import { clickSideBarAllPageButton } from '@affine-test/kit/utils/sidebar';
8
import type { Page } from '@playwright/test';
9
import { expect } from '@playwright/test';
10

11
async function open404PageToInitData(page: Page, version: string) {
12
  const snapshotStorage = new SnapshotStorage(version);
13
  const { binaries, idbData, localStorageData } = await snapshotStorage.read();
14

15
  // Open other page to init data
16
  await page.goto(`${coreUrl}/404`);
17
  await page.evaluate(
18
    ([v1, v2]) => window.writeAffineDatabase(v1, v2),
19
    [idbData, binaries]
20
  );
21
  await page.evaluate(
22
    value => window.writeAffineLocalStorage(value),
23
    localStorageData
24
  );
25

26
  return { localStorageData };
27
}
28

29
test.beforeEach(async ({ page }) => {
30
  await patchDataEnhancement(page);
31
});
32

33
test('v1 to v4', async ({ page }) => {
34
  await open404PageToInitData(page, '0.7.0-canary.18');
35

36
  await page.goto(coreUrl);
37
  await clickSideBarAllPageButton(page);
38

39
  await expect(page.getByTestId('upgrade-workspace-button')).toBeVisible();
40
  await page.getByTestId('upgrade-workspace-button').click();
41

42
  await expect(page.getByTestId('page-list-item')).toHaveCount(2);
43
  await page
44
    .getByTestId('page-list-item-title-text')
45
    .getByText('hello')
46
    .click();
47

48
  await waitForEditorLoad(page);
49
  await expect(page.locator('v-line').nth(0)).toHaveText('hello');
50
});
51

52
test('v2 to v4, database migration', async ({ page }) => {
53
  const { localStorageData } = await open404PageToInitData(
54
    page,
55
    '0.8.0-canary.7'
56
  );
57

58
  const detailPagePath = `${coreUrl}/workspace/${localStorageData.last_workspace_id}/${localStorageData.last_page_id}`;
59
  await page.goto(detailPagePath);
60

61
  await expect(page.getByTestId('upgrade-workspace-button')).toBeVisible();
62
  await page.getByTestId('upgrade-workspace-button').click();
63

64
  // check page mode is correct
65
  await expect(page.locator('v-line').nth(0)).toHaveText('hello');
66
  await expect(page.locator('affine-database')).toBeVisible();
67

68
  // check edgeless mode is correct
69
  await clickEdgelessModeButton(page);
70
  await expect(page.locator('affine-database')).toBeVisible();
71
});
72

73
test('v3 to v4, surface migration', async ({ page }) => {
74
  const { localStorageData } = await open404PageToInitData(page, '0.8.4');
75

76
  const detailPagePath = `${coreUrl}/workspace/${localStorageData.last_workspace_id}/${localStorageData.last_page_id}`;
77
  await page.goto(detailPagePath);
78

79
  await expect(page.getByTestId('upgrade-workspace-button')).toBeVisible();
80
  await page.getByTestId('upgrade-workspace-button').click();
81
  await waitForEditorLoad(page);
82

83
  await page.waitForTimeout(500);
84

85
  // check edgeless mode is correct
86
  await clickEdgelessModeButton(page);
87
  await expect(page.locator('.edgeless-toolbar-container')).toBeVisible();
88
  await expect(page.locator('affine-edgeless-root')).toBeVisible();
89
});
90

91
test('v0 to v4, subdoc migration', async ({ page }) => {
92
  await open404PageToInitData(page, '0.6.1-beta.1');
93

94
  await page.goto(coreUrl);
95
  await clickSideBarAllPageButton(page);
96

97
  await expect(page.getByTestId('upgrade-workspace-button')).toBeVisible();
98
  await page.getByTestId('upgrade-workspace-button').click();
99

100
  await expect(page.getByTestId('page-list-item')).toHaveCount(2);
101
  await page
102
    .getByTestId('page-list-item-title-text')
103
    .getByText('hello')
104
    .click();
105

106
  await waitForEditorLoad(page);
107

108
  // check page mode is correct
109
  await expect(page.locator('v-line').nth(0)).toHaveText('hello');
110
  await expect(page.locator('v-line').nth(1)).toHaveText('TEST CONTENT');
111

112
  // check edgeless mode is correct
113
  await clickEdgelessModeButton(page);
114
  await expect(page.locator('.edgeless-toolbar-container')).toBeVisible();
115
  await expect(page.locator('affine-edgeless-root')).toBeVisible();
116
});
117

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.