New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

mock-async

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

mock-async

Simple one-method library for mocking asynchronous methods

  • 0.1.2
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

Mock Async

Build Status

How to use

Just mock an asynchronous method with this simple function.

@getJSON = mockAsync($, 'getJSON')

The first argument here is an object, and the second one is method name. Mocked method API will be returned. Here we've saved reference to it with @getJSON variable.

Mock API

Than we can make our mocked method to do what we want from it to do.

MockApi.shouldSucceed(callback or value)

Makes mocked method to resolve with specified result by default.

@getJSON = mockAsync($, 'getJSON')

@getJSON.shouldSucceed '5'
$.getJSON().done (result) ->
  console.log result # => 5

You can provide callback, so, result will be calculated, based on callback's returned value.

a = 5, b = 3
@getJSON = mockAsync($, 'getJSON')

@getJSON.shouldSucceed -> a + b
$.getJSON().done (result) ->
  console.log result # => 8

MockApi.shouldFail(callback or value)

The same as MockApi.shouldSucceed, but rejects mocked promise.

MockApi.whenCalledWith(arguments...).shouldSucceed(callback or value)

You can make mocked method to return different results based on provided to this method arguments.

@getJSON = mockAsync($, 'getJSON')

@getJSON.whenCalledWith(location.pathname).shouldSucceed
  html: '<div class="page1"></div>'

@getJSON.whenCalledWith(location.pathname, page: 1).shouldSucceed
  html: '<div class="page1"></div>'

@getJSON.whenCalledWith(location.pathname, page: 2).shouldSucceed
  html: '<div class="page2"></div>'

$.getJSON(location.pathname, page: 1).done (result) ->
  console.log result.html # => '<div class="page1"></div>'

$.getJSON(location.pathname, page: 2).done (result) ->
  console.log result.html # => '<div class="page2"></div>'

You can also chain different mocking rules.

@mockApi = mockAsync($, 'getJSON')
  .whenCalledWith(location.pathname).shouldSucceed(html: '<div class="page1"></div>')
  .whenCalledWith(location.pathname, page: 1).shouldSucceed(html: '<div class="page1"></div>')
  .whenCalledWith(location.pathname, page: 2).shouldSucceed(html: '<div class="page2"></div>')

MockApi.restore()

Restores mocked method.

initialMethod = $.getJSON

@getJSON = mockAsync($, 'getJSON')
$.getJSON is initialMehod # => false

@getJSON.restore()
$.getJSON is initialMethod # => true

FAQs

Package last updated on 04 Mar 2016

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc