@xnstream/player-sdk
Version:
XStream Player SDK - A powerful video player SDK for streaming content
93 lines • 3.04 kB
JavaScript
;
// Mock window.crypto
Object.defineProperty(window, 'crypto', {
value: {
getRandomValues: (arr) => {
for (let i = 0; i < arr.length; i++) {
arr[i] = Math.floor(Math.random() * 256);
}
return arr;
},
subtle: {
generateKey: jest.fn().mockResolvedValue(new CryptoKey()),
importKey: jest.fn().mockResolvedValue(new CryptoKey()),
exportKey: jest.fn().mockResolvedValue(new ArrayBuffer(32)),
encrypt: jest.fn().mockResolvedValue(new ArrayBuffer(32)),
decrypt: jest.fn().mockResolvedValue(new ArrayBuffer(32)),
digest: jest.fn().mockResolvedValue(new ArrayBuffer(32))
}
}
});
// Mock localStorage
const localStorageMock = {
getItem: jest.fn(),
setItem: jest.fn(),
removeItem: jest.fn(),
clear: jest.fn(),
key: jest.fn(),
length: 0
};
Object.defineProperty(window, 'localStorage', { value: localStorageMock });
// Mock IndexedDB
const indexedDBMock = {
open: jest.fn().mockReturnValue({
onerror: null,
onsuccess: null,
onupgradeneeded: null,
result: {
createObjectStore: jest.fn(),
transaction: jest.fn().mockReturnValue({
objectStore: jest.fn().mockReturnValue({
get: jest.fn().mockReturnValue({
onsuccess: null,
onerror: null,
result: null
}),
put: jest.fn().mockReturnValue({
onsuccess: null,
onerror: null
})
})
})
}
}),
deleteDatabase: jest.fn().mockReturnValue({
onerror: null,
onsuccess: null
})
};
Object.defineProperty(window, 'indexedDB', { value: indexedDBMock });
// Mock HTMLVideoElement
class MockHTMLVideoElement {
constructor() {
this.play = jest.fn().mockResolvedValue(undefined);
this.pause = jest.fn();
this.currentTime = 0;
this.addEventListener = jest.fn();
this.removeEventListener = jest.fn();
this.setAttribute = jest.fn();
this.style = {};
}
}
Object.defineProperty(window, 'HTMLVideoElement', { value: MockHTMLVideoElement });
// Mock HTMLElement
class MockHTMLElement {
constructor() {
this.appendChild = jest.fn();
this.remove = jest.fn();
}
}
Object.defineProperty(window, 'HTMLElement', { value: MockHTMLElement });
// Mock document.getElementById
document.getElementById = jest.fn().mockReturnValue(new MockHTMLElement());
// Reset all mocks before each test
beforeEach(() => {
jest.clearAllMocks();
localStorageMock.getItem.mockClear();
localStorageMock.setItem.mockClear();
localStorageMock.removeItem.mockClear();
localStorageMock.clear.mockClear();
indexedDBMock.open.mockClear();
indexedDBMock.deleteDatabase.mockClear();
});
//# sourceMappingURL=setup.js.map