window-mock icon indicating copy to clipboard operation
window-mock copied to clipboard

A light-weight window-mock for node/ io.js unit-testing written in ES6

npm version Build Status

window-mock

Greenkeeper badge A light-weight window-mock for node/ io.js unit-testing written in ES6

Install

npm install window-mock --save-dev

Usage (ES6+)

Once you created a WindowMock-Instance the mock should behave exactly as the browser's window object.

import test from 'tape';
import WindowMock from 'window-mock';

test(`Some window interaction unit test`, (t) => {

  let
    windowMock = new WindowMock();

  windowMock.localStorage.setItem('key', 'value');

  t.equal(
    windowMock.localStorage.getItem('key'),
    'value',
    'should set `key` to `value`'
  );

  t.end();
});

Usage (ES5/ Javascript)

var
  test = require('tape'),
  WindowMock = require('window-mock');

test(`Some window interaction unit test`, function(t) {

  var
    windowMock = new WindowMock();

  windowMock.localStorage.setItem('key', 'value');

  t.equal(
    windowMock.localStorage.getItem('key'),
    'value',
    'should set `key` to `value`'
  );

  t.end();
});

Fork and Pull-request

This module was built for unit-test mocking the browser's window-object in my other projects. It's far from complete and will grow once needed.

Feel free to fork and pull-request for extending the API!