Files
SRCmail/stores/__tests__/managed-account-store.test.ts
T

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();
});
});