perf: optimize app startup and background lifecycles
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import { beforeEach, describe, expect, it, vi } from 'vitest';
|
||||
import { safeStorage } from 'electron';
|
||||
|
||||
const fakeStore = vi.hoisted(() => ({
|
||||
options: null as Record<string, unknown> | null,
|
||||
@@ -39,7 +40,7 @@ describe('Works Square encrypted session persistence', () => {
|
||||
|
||||
it('stores one encrypted Main-only record and restores it', async () => {
|
||||
const firstModule = await import('@electron/services/works-square-session');
|
||||
await firstModule.initializeWorksSquareSession();
|
||||
await firstModule.initializeWorksSquareSession({ secureStorage: safeStorage });
|
||||
firstModule.storeWorksSquareSession({
|
||||
accessToken: 'plain-access-token',
|
||||
refreshToken: 'plain-refresh-token',
|
||||
@@ -58,7 +59,7 @@ describe('Works Square encrypted session persistence', () => {
|
||||
|
||||
vi.resetModules();
|
||||
const restoredModule = await import('@electron/services/works-square-session');
|
||||
await expect(restoredModule.initializeWorksSquareSession()).resolves.toMatchObject({
|
||||
await expect(restoredModule.initializeWorksSquareSession({ secureStorage: safeStorage })).resolves.toMatchObject({
|
||||
accessToken: 'plain-access-token',
|
||||
canRefresh: true,
|
||||
});
|
||||
@@ -73,7 +74,7 @@ describe('Works Square encrypted session persistence', () => {
|
||||
fakeStore.values.set('record', record);
|
||||
|
||||
const sessionModule = await import('@electron/services/works-square-session');
|
||||
await expect(sessionModule.initializeWorksSquareSession()).resolves.toBeNull();
|
||||
await expect(sessionModule.initializeWorksSquareSession({ secureStorage: safeStorage })).resolves.toBeNull();
|
||||
|
||||
expect(fakeStore.values.get('record')).toEqual(record);
|
||||
expect(sessionModule.getWorksSquareSessionRestoreStatus()).toBe('unavailable');
|
||||
@@ -87,7 +88,7 @@ describe('Works Square encrypted session persistence', () => {
|
||||
fakeStore.constructorError = new SyntaxError('Unexpected token in JSON');
|
||||
|
||||
const sessionModule = await import('@electron/services/works-square-session');
|
||||
await expect(sessionModule.initializeWorksSquareSession()).resolves.toBeNull();
|
||||
await expect(sessionModule.initializeWorksSquareSession({ secureStorage: safeStorage })).resolves.toBeNull();
|
||||
|
||||
expect(fakeStore.options).toMatchObject({
|
||||
name: 'works-square-session',
|
||||
@@ -97,4 +98,23 @@ describe('Works Square encrypted session persistence', () => {
|
||||
expect(sessionModule.getWorksSquareSessionRestoreStatus()).toBe('ready');
|
||||
expect(sessionModule.consumeWorksSquareStartupRuntimeCleanupRequired()).toBe(true);
|
||||
});
|
||||
|
||||
it('keeps unpackaged development sessions in memory without opening the disk store', async () => {
|
||||
const sessionModule = await import('@electron/services/works-square-session');
|
||||
await expect(sessionModule.initializeWorksSquareSession()).resolves.toBeNull();
|
||||
|
||||
await expect(sessionModule.commitWorksSquareSession({
|
||||
accessToken: 'development-access-token',
|
||||
refreshToken: 'development-refresh-token',
|
||||
expiresAt: Date.now() + 3600_000,
|
||||
lastActiveAt: Date.now(),
|
||||
})).resolves.toMatchObject({
|
||||
accessToken: 'development-access-token',
|
||||
canRefresh: true,
|
||||
});
|
||||
await sessionModule.flushWorksSquareSessionPersistence();
|
||||
|
||||
expect(fakeStore.options).toBeNull();
|
||||
expect(fakeStore.values.size).toBe(0);
|
||||
});
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user