mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-14 21:27:20 +00:00
60 lines
2.4 KiB
TypeScript
60 lines
2.4 KiB
TypeScript
import { test, describe, expect } from 'vitest';
|
|
import { WorkspaceUnitCollection } from '../../workspace-unit-collection';
|
|
import { LocalProvider } from './local';
|
|
import { MessageCenter } from '../../message';
|
|
import 'fake-indexeddb/auto';
|
|
|
|
describe('local provider', () => {
|
|
const workspaceMetaCollection = new WorkspaceUnitCollection();
|
|
const provider = new LocalProvider({
|
|
workspaces: workspaceMetaCollection.createScope(),
|
|
messageCenter: new MessageCenter(),
|
|
});
|
|
|
|
const workspaceName = 'workspace-test';
|
|
let workspaceId: string | undefined;
|
|
|
|
test('create workspace', async () => {
|
|
const workspaceUnit = await provider.createWorkspace({
|
|
name: workspaceName,
|
|
});
|
|
workspaceId = workspaceUnit?.id;
|
|
|
|
expect(workspaceMetaCollection.workspaces.length).toEqual(1);
|
|
expect(workspaceMetaCollection.workspaces[0].name).toEqual(workspaceName);
|
|
});
|
|
|
|
test('workspace list cache', async () => {
|
|
const workspacesMetaCollection1 = new WorkspaceUnitCollection();
|
|
const provider1 = new LocalProvider({
|
|
workspaces: workspacesMetaCollection1.createScope(),
|
|
messageCenter: new MessageCenter(),
|
|
});
|
|
await provider1.loadWorkspaces();
|
|
expect(workspacesMetaCollection1.workspaces.length).toEqual(1);
|
|
expect(workspacesMetaCollection1.workspaces[0].name).toEqual(workspaceName);
|
|
expect(workspacesMetaCollection1.workspaces[0].id).toEqual(workspaceId);
|
|
});
|
|
|
|
test('update workspace', async () => {
|
|
await provider.updateWorkspaceMeta(workspaceId!, {
|
|
name: '1111',
|
|
});
|
|
expect(workspaceMetaCollection.workspaces[0].name).toEqual('1111');
|
|
});
|
|
|
|
test('delete workspace', async () => {
|
|
expect(workspaceMetaCollection.workspaces.length).toEqual(1);
|
|
/**
|
|
* FIXME
|
|
* If we don't wrap setTimeout,
|
|
* Running deleteWorkspace will crash the worker, and get error like next line:
|
|
* InvalidStateError: An operation was called on an object on which it is not allowed or at a time when it is not allowed. Also occurs if a request is made on a source object that has been deleted or removed. Use TransactionInactiveError or ReadOnlyError when possible, as they are more specific variations of InvalidStateError.
|
|
* */
|
|
setTimeout(async () => {
|
|
await provider.deleteWorkspace(workspaceMetaCollection.workspaces[0].id);
|
|
expect(workspaceMetaCollection.workspaces.length).toEqual(0);
|
|
}, 10);
|
|
});
|
|
});
|