| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- import { beforeEach, describe, expect, it, vi } from 'vitest';
- import {
- getRememberedAccounts,
- rememberLoginAccount,
- removeRememberedAccount,
- } from '@/utils/storage';
- let storage: Map<string, unknown>;
- beforeEach(() => {
- storage = new Map<string, unknown>();
- vi.stubGlobal('uni', {
- getStorageSync: (key: string) => storage.get(key) ?? '',
- setStorageSync: (key: string, value: unknown) => storage.set(key, value),
- removeStorageSync: (key: string) => storage.delete(key),
- });
- });
- describe('remembered login accounts', () => {
- it('migrates the legacy single-account value', () => {
- storage.set('aidop_login_account', 'UATAdminA');
- expect(getRememberedAccounts()).toEqual(['UATAdminA']);
- expect(JSON.parse(String(storage.get('aidop_login_accounts')))).toEqual(['UATAdminA']);
- });
- it('keeps the most recently used account first and removes duplicates case-insensitively', () => {
- rememberLoginAccount('UATAdminA');
- rememberLoginAccount('AIDOPDemoTenant');
- rememberLoginAccount('uatadmina');
- expect(getRememberedAccounts()).toEqual(['uatadmina', 'AIDOPDemoTenant']);
- });
- it('limits history to eight accounts', () => {
- for (let index = 1; index <= 10; index += 1) {
- rememberLoginAccount(`user${index}`);
- }
- expect(getRememberedAccounts()).toEqual([
- 'user10',
- 'user9',
- 'user8',
- 'user7',
- 'user6',
- 'user5',
- 'user4',
- 'user3',
- ]);
- });
- it('removes one account without clearing the remaining history', () => {
- rememberLoginAccount('first');
- rememberLoginAccount('second');
- expect(removeRememberedAccount('SECOND')).toEqual(['first']);
- expect(storage.get('aidop_login_account')).toBe('first');
- });
- });
|