Files
iptvnator/libs/services/src/lib/database-electron.service.spec.ts
T

79 lines
2.8 KiB
TypeScript

import { DatabaseService } from './database-electron.service';
describe('DatabaseService browser guards', () => {
const originalElectron = window.electron;
let service: DatabaseService;
let consoleErrorSpy: jest.SpyInstance;
beforeEach(() => {
Object.defineProperty(window, 'electron', {
configurable: true,
writable: true,
value: undefined,
});
consoleErrorSpy = jest
.spyOn(console, 'error')
.mockImplementation(() => undefined);
service = new DatabaseService();
});
afterEach(() => {
consoleErrorSpy.mockRestore();
Object.defineProperty(window, 'electron', {
configurable: true,
writable: true,
value: originalElectron,
});
});
it('treats app state persistence as unavailable without the Electron bridge', async () => {
await expect(service.getAppState('xtream-key')).resolves.toBeNull();
await expect(
service.setAppState('xtream-key', 'completed')
).resolves.toBe(false);
await expect(
service.getXtreamImportStatus('playlist-1', 'movie')
).resolves.toBe('idle');
await expect(
service.setXtreamImportStatus('playlist-1', 'movie', 'completed')
).resolves.toBe(false);
await expect(
service.getContentByXtreamId(20229, 'playlist-1', 'movie')
).resolves.toBeNull();
await expect(service.getGlobalRecentlyViewed()).resolves.toEqual([]);
await expect(service.getGlobalFavorites()).resolves.toEqual([]);
await expect(service.getAllGlobalFavorites()).resolves.toEqual([]);
await expect(
service.clearGlobalRecentlyViewed()
).resolves.toBeUndefined();
await expect(service.addToFavorites(20229, 'playlist-1')).resolves.toBe(
false
);
await expect(
service.removeFromFavorites(20229, 'playlist-1')
).resolves.toBe(false);
await expect(service.isFavorite(20229, 'playlist-1')).resolves.toBe(
false
);
await expect(service.getFavorites('playlist-1')).resolves.toEqual([]);
await expect(service.getRecentItems('playlist-1')).resolves.toEqual([]);
await expect(service.addRecentItem(20229, 'playlist-1')).resolves.toBe(
false
);
await expect(
service.clearPlaylistRecentItems('playlist-1')
).resolves.toBe(false);
await expect(
service.removeRecentItem(20229, 'playlist-1')
).resolves.toBe(false);
await expect(
service.removeRecentItemsBatch([
{ contentId: 20229, playlistId: 'playlist-1' },
])
).resolves.toBe(false);
expect(consoleErrorSpy).not.toHaveBeenCalled();
});
});