Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including mockis with all npm packages installed. Try it out:

mockis lists no main file and has no index.js, so it can't be directly required. If this is a mistake, please let us know. It may however contain internal files that you can require manually:

// require("mockis/[??]")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

mockis v0.0.6

A mock of redis

Mockis

A self indulgent coffeescript mock of redis.

Status

Build Status

It works for certain things. It should match the success behavior of the node_redis library. Failure behavior may not match, but we try to do something sane.

It's also very incomplete. I've implemented the basic things I need. I will try to add other things as well, but if it's missing things you need, send a PR.

Supported Commands

Keys
  • expire
  • exists
  • ttl
  • persist
Strings
  • set
  • setex
  • setnx
  • get
  • del
  • incr
  • mget
  • mset
Sets
  • sadd
  • smembers
  • srem
  • sismember
Sorted Sets
  • zadd
  • zrange
  • zrevrange
  • zremrangebyscore
  • zrem
  • zremrangebyrank
Hashes
  • hset
  • hget
  • hgetall
  • hmset
Server
  • flushall
Pub/sub (be sure to check out child nodes)
  • subscribe
  • unsubscribe
  • publish
Transactions
  • multi
  • exec
  • discard
  • watch
  • unwatch

Sharing storage between mockis instances

Multiple instances of Mockis can share the same storage like such:

parent = new Mockis()
child = new Mockis()
parent.addChild(child)

child.set "foo", "bar", ->
  parent.get "foo", (err, result) ->
    result is "bar" # true

One important note about this is that if the child already has data, it will be lost. There is no merge.

Parents can have arbitrary numbers of children. The whole children of children thing can get wacky. Don't do it.

Contribution

Contributions are totes welcome. When possible, please submit a PR for each command. This isn't a requirement, but it can streamline reviewing them.

All methods must call callbacks synchronously. Multi requires it.

Please create at least the most basic of tests for any command you add. Also, test only pull requests are greatly appreciated.

Alternatives

License

Apache 2.0

Author(s)

  • Pat Shields (Adzerk)

Metadata

RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free