UNPKG

kinvey-local

Version:

Tool to mock the Kinvey environment for testing.

111 lines (94 loc) 4.08 kB
# kinvey-local [![Build Status](http://img.shields.io/travis/karimsa/kinvey-local.svg?style=flat)](https://travis-ci.org/karimsa/kinvey-local) [![View on NPM](http://img.shields.io/npm/dm/kinvey-local.svg?style=flat)](http://npmjs.org/package/kinvey-local) [![code climate](http://img.shields.io/codeclimate/github/karimsa/kinvey-local.svg?style=flat)](https://codeclimate.com/github/karimsa/kinvey-local) [![code coverage](http://img.shields.io/codeclimate/coverage/github/karimsa/kinvey-local.svg?style=flat)](https://codeclimate.com/github/karimsa/kinvey-local) Tool to mock the [Kinvey](http://kinvey.com/) environment for testing. [![NPM](https://nodei.co/npm/kinvey-local.png)](https://nodei.co/npm/kinvey-local/) ## Installation Install the latest version of this package with npm: ``` $ npm install kinvey-local ``` ## Usage This package can simply replace your regular Kinvey import. For example: ```javascript // with regular kinvey object var Kinvey = require('kinvey'); Kinvey.User.login('username', 'password', { success: function () { console.log('Success.'); } }); ``` ```javascript // inside your tests var Kinvey = require('kinvey-local'); test.expect(1); Kinvey.User.login('username', 'password', { success: function () { test.ok(true); } }); ``` ## Example Usage An example of a business-logic repository is available in the [example](https://github.com/karimsa/kinvey-local/blob/master/example) directory. ## Options ### How to Set Options Options for kinvey-local should be saved inside a JSON file in your repo and loaded through the `.setOptions()` member of the `kinvey-local` object: ```javascript var Kinvey = require('kinvey-local'); // you can use a file path to load the document Kinvey.setOptions(path.resolve('./kinvey-local.json')); // you can also send a pre-parsed document as an argument: Kinvey.setOptions({ /* .. TODO: add values .. */ }); ``` ### List of Options - `endpoints-base`: an absolute path to the directory with all the endpoints source code. (i.e. `options["endpoints-base"] = path.resolve('./endpoints')`) - `email`: a JSON document consisting of the [nodemailer configuration](http://www.nodemailer.com/) to use for the email module. Most basic example (with gmail): ```json { "email": { "service": "Gmail", "auth": { "user": "my-email@gmail.com", "pass": "my-password" } } } ``` **Note:** you can set this property to the string `events` to turn the event reporting into an event-based thing, where the event emitter is: `Kinvey._events` - `collections`: a JSON document to add pre-made data stores to the phony local environment. The property names are the names of the data stores and the value must an array of documents. Sample: ```json { "collections": { "my-data-store": [ { "_id": "xxx", "name": "Document #1" } ] } } ``` - `users`: an array of user configurations. Sample: ```json { "users": [ { // the _id property is required // and must be a valid string containing // only letters and numbers "_id": "identifier", "username": "userone", "password": "******", "email": "user.one@example.com" } ] } ``` ## What isn't yet supported? This project is still in its early stages, so the local environment does not support **everything**. I've tried to extend the support as much for it to work exactly as intended, but have no gotten around to *implementing hooks and the tempObjectStore* just yet. This is on the TODO list and will be supported soon. ## Licensing For license information, see [LICENSE.md](http://github.com/karimsa/kinvey-local/blob/master/LICENSE.md). ## Support I will try to keep this project as up-to-date as possible with the Kinvey spec, and bring the hooks support in soon. For all issues/todo-wishes, please use the official [GitHub issues](http://github.com/karimsa/kinvey-local/issues) section.