feat: improve data center api typo & docs

This commit is contained in:
DarkSky
2023-01-03 20:46:38 +08:00
parent 72d38f1e70
commit 2ee99a37fb
4 changed files with 91 additions and 71 deletions

View File

@@ -7,37 +7,38 @@ import 'fake-indexeddb/auto';
test('init data center', async () => {
const dataCenter = await getDataCenter();
expect(dataCenter).toBeTruthy();
await dataCenter.clearWorkspaces();
await dataCenter.clear();
const workspace = await dataCenter.getWorkspace('test1');
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);
const [ws1, ws2] = await Promise.all([
dc1.getWorkspace('test1'),
dc2.getWorkspace('test1'),
]);
// 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 dataCenter = await getDataCenter();
await dataCenter.clearWorkspaces();
const dc = await getDataCenter();
await dc.clear();
// load workspace with unknown provider will throw error
test.fail();
await dataCenter.getWorkspace('test2', { providerId: 'not exist provider' });
await dc.load('test2', { providerId: 'not exist provider' });
});
test.skip('init affine provider', async () => {
const dataCenter = await getDataCenter();
await dataCenter.clearWorkspaces();
await dataCenter.clear();
// load workspace with affine provider
// TODO: set constant token for testing
const workspace = await dataCenter.getWorkspace('6', {
const workspace = await dataCenter.load('6', {
providerId: 'affine',
config: { token: 'YOUR_TOKEN' },
});
@@ -46,16 +47,16 @@ test.skip('init affine provider', async () => {
test('list workspaces', async () => {
const dataCenter = await getDataCenter();
await dataCenter.clearWorkspaces();
await dataCenter.clear();
await Promise.all([
dataCenter.getWorkspace('test3'),
dataCenter.getWorkspace('test4'),
dataCenter.getWorkspace('test5'),
dataCenter.getWorkspace('test6'),
dataCenter.load('test3'),
dataCenter.load('test4'),
dataCenter.load('test5'),
dataCenter.load('test6'),
]);
expect(await dataCenter.listWorkspace()).toStrictEqual([
expect(await dataCenter.list()).toStrictEqual([
'test3',
'test4',
'test5',
@@ -65,25 +66,26 @@ test('list workspaces', async () => {
test('destroy workspaces', async () => {
const dataCenter = await getDataCenter();
await dataCenter.clearWorkspaces();
await dataCenter.clear();
const dc1 = await dataCenter.getWorkspace('test7');
await dataCenter.destroyWorkspace('test7');
const dc2 = await dataCenter.getWorkspace('test7');
// 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();
expect(dc1 !== dc2).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.clearWorkspaces();
await dataCenter.clear();
await Promise.all([
dataCenter.getWorkspace('test8'),
dataCenter.getWorkspace('test9'),
]);
await dataCenter.removeWorkspace('test8');
expect(await dataCenter.listWorkspace()).toStrictEqual(['test9']);
// 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']);
});