39 lines
1.5 KiB
TypeScript
39 lines
1.5 KiB
TypeScript
import { describe, it, expect, beforeEach } from 'vitest';
|
|
import { useManagedAccountStore } from '../managed-account-store';
|
|
import type { SharedAccount } from '@/lib/jmap/types';
|
|
|
|
const sharedAccount: SharedAccount = {
|
|
id: 'group-1',
|
|
name: 'Sales',
|
|
isPrimary: false,
|
|
capabilities: { mail: true, sieve: true, calendars: true, contacts: true, filenode: false },
|
|
};
|
|
|
|
describe('managed-account-store', () => {
|
|
beforeEach(() => {
|
|
useManagedAccountStore.getState().clear();
|
|
});
|
|
|
|
it('defaults to no managed account (own account)', () => {
|
|
expect(useManagedAccountStore.getState().managedAccountId).toBeNull();
|
|
expect(useManagedAccountStore.getState().managedAccount).toBeNull();
|
|
});
|
|
|
|
it('setManagedAccount enters scoped mode for the account', () => {
|
|
useManagedAccountStore.getState().setManagedAccount(sharedAccount);
|
|
expect(useManagedAccountStore.getState().managedAccountId).toBe('group-1');
|
|
expect(useManagedAccountStore.getState().managedAccount).toEqual(sharedAccount);
|
|
});
|
|
|
|
it('setManagedAccount(null) and clear() return to the own account', () => {
|
|
useManagedAccountStore.getState().setManagedAccount(sharedAccount);
|
|
useManagedAccountStore.getState().setManagedAccount(null);
|
|
expect(useManagedAccountStore.getState().managedAccountId).toBeNull();
|
|
expect(useManagedAccountStore.getState().managedAccount).toBeNull();
|
|
|
|
useManagedAccountStore.getState().setManagedAccount(sharedAccount);
|
|
useManagedAccountStore.getState().clear();
|
|
expect(useManagedAccountStore.getState().managedAccountId).toBeNull();
|
|
});
|
|
});
|