mock-cookie

0.3.2 • Public • Published

Mock Cookie

Status

Branch Status
master Build Status

A mocked version of the "standard" cookie used in browsers. It doesn't include options for path, domain, secure or http only at the moment.

The primary purpose of its creation was for unit tests. Having to clear out cookies for unit tests was tedious and not always reliable/accurate. Sometimes in some tests, document.cookie wasn't even available. This mock version helps ensure clean, consistent results.

Installation

The best way is to use bower to manage the process:

bower install --save-dev mock-cookie

Usage

Assign a new version of the cookie to the object you want to represent it, usually document.

In unit tests:

window = require('path/to/mock-cookie.js').Document;
document = new window();
document.cookie = 'value to add';

From there, use document.cookie as you normally would to test your application.

In code:

<script src='path/to/mock-cookie.js'></script>
<script>
  myDoc = new window.Document();
  myDoc.cookie = 'value to add';
</script>

By using myDoc.cookie instead of document.cookie in your application, you can keep the original functionality to test against. If you really want to override document.cookie for some reason:

<script src='path/to/mock-cookie.js'></script>
<script>
  document.cookie = (new window.Document()).cookie;
  document.cookie = 'value to add';
</script>

Future Plans

  • Max-age support needs to be added.
  • Path: Support for this woud depend on window.location.pathname being mocked out as well.
  • Domain: Similiar to path but with window.location.{host|hostname|origin}
  • Secure: Similiar to path but with window.location.protocol
  • Http-only: Not sure how to mock this out since JS wouldn't have access to the cookie. That could probably be the test

Readme

Keywords

none

Package Sidebar

Install

npm i mock-cookie

Weekly Downloads

150

Version

0.3.2

License

none

Last publish

Collaborators

  • luanpotter