All files / lib/jsdom/window window.mock.ts

100% Statements 19/19
100% Branches 0/0
100% Functions 12/12
100% Lines 19/19

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66          14x       14x 14x 14x   14x       14x                       14x 1x         14x         1x             14x 1x           14x       14x 14x 14x 14x 14x 14x    
import { vi } from 'vitest';
 
import { AppLocalStorageMock } from '../../local-storage/local-storage.mock';
 
function setupWindowLocalStorageMock(): AppLocalStorageMock {
  Object.defineProperty(window, 'localStorage', {
    value: new AppLocalStorageMock(),
    writable: true,
  });
  const localStorage = window.localStorage;
  vi.spyOn(localStorage, 'setItem');
  vi.spyOn(localStorage, 'getItem');
 
  return localStorage;
}
 
function setupWindowMatchMediaMock() {
  window.matchMedia = vi.fn().mockImplementation(query => {
    return {
      matches: false,
      media: query,
      onchange: null,
      addListener: vi.fn(),
      removeListener: vi.fn(),
    };
  });
}
 
function setupWindowResizeToMock() {
  window.resizeTo = vi.fn().mockImplementation((width, height) => {
    return { width, height };
  });
}
 
function setupWindowGetComputedStyleMock() {
  Object.defineProperty(window, 'getComputedStyle', {
    value: () => {
      return {
        display: 'none',
        appearance: ['-webkit-appearance'],
        getPropertyValue: (): void => void 0,
      };
    },
  });
}
 
function setupWindowCreateObjectUrlMock() {
  Object.defineProperty(window.URL, 'createObjectURL', {
    value: vi.fn().mockImplementation(() => 'this is mock'),
    writable: true,
  });
}
 
function setupWindowCssMock() {
  Object.defineProperty(window, 'CSS', { value: null });
}
 
export function setupWindowMocks() {
  setupWindowLocalStorageMock();
  setupWindowMatchMediaMock();
  setupWindowResizeToMock();
  setupWindowGetComputedStyleMock();
  setupWindowCreateObjectUrlMock();
  setupWindowCssMock();
}