mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-12 04:18:54 +00:00
100 lines
2.8 KiB
TypeScript
100 lines
2.8 KiB
TypeScript
import { test, expect } from '@playwright/test';
|
|
|
|
import { getDataCenter } from './utils.js';
|
|
|
|
import 'fake-indexeddb/auto';
|
|
|
|
test('init data center', async () => {
|
|
const dataCenter = await getDataCenter();
|
|
expect(dataCenter).toBeTruthy();
|
|
await dataCenter.clear();
|
|
|
|
const workspace = await dataCenter.load('test1');
|
|
expect(workspace).toBeTruthy();
|
|
});
|
|
|
|
test('init data center singleton', async () => {
|
|
// data center is singleton
|
|
const [dc1, dc2] = await Promise.all([getDataCenter(), getDataCenter()]);
|
|
expect(dc1).toEqual(dc2);
|
|
|
|
// load same workspace will get same instance
|
|
const [ws1, ws2] = await Promise.all([dc1.load('test1'), dc2.load('test1')]);
|
|
expect(ws1).toEqual(ws2);
|
|
});
|
|
|
|
test('should init error with unknown provider', async () => {
|
|
const dc = await getDataCenter();
|
|
await dc.clear();
|
|
|
|
// load workspace with unknown provider will throw error
|
|
test.fail();
|
|
await dc.load('test2', { providerId: 'not exist provider' });
|
|
});
|
|
|
|
test.skip('init affine provider', async () => {
|
|
const dataCenter = await getDataCenter();
|
|
await dataCenter.clear();
|
|
|
|
// load workspace with affine provider
|
|
// TODO: set constant token for testing
|
|
const workspace = await dataCenter.load('6', {
|
|
providerId: 'affine',
|
|
config: { token: 'YOUR_TOKEN' },
|
|
});
|
|
expect(workspace).toBeTruthy();
|
|
});
|
|
|
|
test('list workspaces', async () => {
|
|
const dataCenter = await getDataCenter();
|
|
await dataCenter.clear();
|
|
|
|
await Promise.all([
|
|
dataCenter.load('test3'),
|
|
dataCenter.load('test4'),
|
|
dataCenter.load('test5'),
|
|
dataCenter.load('test6'),
|
|
]);
|
|
|
|
expect(await dataCenter.list()).toStrictEqual({
|
|
test3: { local: true },
|
|
test4: { local: true },
|
|
test5: { local: true },
|
|
test6: { local: true },
|
|
});
|
|
|
|
await dataCenter.reload('test3', { providerId: 'affine' });
|
|
expect(await dataCenter.list()).toStrictEqual({
|
|
test3: { affine: true, local: true },
|
|
test4: { local: true },
|
|
test5: { local: true },
|
|
test6: { local: true },
|
|
});
|
|
});
|
|
|
|
test('destroy workspaces', async () => {
|
|
const dataCenter = await getDataCenter();
|
|
await dataCenter.clear();
|
|
|
|
// return new workspace if origin workspace is destroyed
|
|
const ws1 = await dataCenter.load('test7');
|
|
await dataCenter.destroy('test7');
|
|
const ws2 = await dataCenter.load('test7');
|
|
expect(ws1 !== ws2).toBeTruthy();
|
|
|
|
// return new workspace if workspace is reload
|
|
const ws3 = await dataCenter.load('test8');
|
|
const ws4 = await dataCenter.reload('test8', { providerId: 'affine' });
|
|
expect(ws3 !== ws4).toBeTruthy();
|
|
});
|
|
|
|
test('remove workspaces', async () => {
|
|
const dataCenter = await getDataCenter();
|
|
await dataCenter.clear();
|
|
|
|
// remove workspace will remove workspace data
|
|
await Promise.all([dataCenter.load('test9'), dataCenter.load('test10')]);
|
|
await dataCenter.delete('test9');
|
|
expect(await dataCenter.list()).toStrictEqual({ test10: { local: true } });
|
|
});
|