Zizzamia/perfume.js

View on GitHub
__tests__/onVisibilityChange.spec.ts

Summary

Maintainability
A
3 hrs
Test Coverage
/**
 * @jest-environment jsdom
 */
import { didVisibilityChange, visibility } from '../src/onVisibilityChange';

describe('onVisibilityChange', () => {
  beforeEach(() => {
    visibility.isHidden = false;
  });

  describe('didVisibilityChange()', () => {
    it('should keep "hidden" default value when is false', () => {
      jest.spyOn(document, 'hidden', 'get').mockReturnValue(false);
      didVisibilityChange();
      expect(visibility.isHidden).toEqual(false);
    });

    it('should set "hidden" value when is true', () => {
      visibility.isHidden = false;
      jest.spyOn(document, 'hidden', 'get').mockReturnValue(true);
      didVisibilityChange();
      expect(visibility.isHidden).toEqual(true);
    });

    it('should set "hidden" value when changes to false', () => {
      visibility.isHidden = true;
      jest.spyOn(document, 'hidden', 'get').mockReturnValue(false);
      didVisibilityChange();
      expect(visibility.isHidden).toEqual(false);
    });
  });
});