npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@nanoslices/spy

v0.0.0-rc.13

Published

Spy support for testing Nanoslices

Downloads

2

Readme

@nanoslices/spy

Nanoslices plugin for spying on and control a nanoslices store during tests.

Installation

@nanoslices/spy depends on @nanoslices/core, refer to @nanoslices/core for its installation instruction.

npm

npm install --save @nanoslices/spy

yarn

yarn add @nanoslices/spy

Usage

Simply import @nanoslices/spy somewhere in your application, preferably in the file from which your store is exported.

After that, a new spy method will be made available on your stores.

Furthermore, a spyEnabled option will be available in createStore calls. It is true by default, but can be set to false to block a store from being spied on.

Calling Store.spy() will enable spying on action execution, and easily updating that state and context in a test environment.

It returns a StoreSpy object complete with useful options for testing, and takes an options parameter to configure the testing environment.

Options:

  • reset: Testing hook in which to reset the state and actions history. Pass it one of your testing framework lifecycle functions such as beforeEach.
  • restore: Testing hook in which to restore the state, removing the spy altogether. Pass it one of your testing framework lifecycle functions such as afterAll.
  • context: Partial context to set in place of the normal store context, useful for injecting service mocks relevant to the current test suite.
  • snapshot: Partial snapshot of the state to apply when reset is called, useful for bringing the state to a relevant value for the current test suite.

StoreSpy fields:

  • context(context): Takes a new partial context and replace the store context. Useful for injecting mocks relevant to a specific test.
  • snapshot(snapshot): Takes a partial snapshot and apply it to the store. Useful for bringing the state to a relevant value for a specific test.
  • clear(): Clears all recorded actions, to get back an empty history.
  • reset(): Resets the state to its original state, then applies the snapshot passed as option to Store.spy(), if any. Also calls clear() internally. Prefer using the reset option rather than calling reset() yourself.
  • restore(): Restore the state to its original state, and removes the spy completely. Prefer using the restore option rather than calling restore directly.
  • history: Array containing an entry for each action that have been called since the last clear() call. Each action log is an object containing a type field equals to @action.[path.to.slice].[actionName] and a payload field equals to the arguments passed to the action. If an action returns a Promise, then an additional entry is added after the Promise resolves or rejects. The type is the same as the action, with either a (success) or (fail) suffix.