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 🙏

© 2026 – Pkg Stats / Ryan Hefner

@tolicodes/picklejs

v0.75.0

Published

"Cucumber with Brine"

Readme

PickleJS

"Cucumber with Brine"

PickleJS is an addon for the Cucumber plugin for Cypress allowing automatic story writing.

Installation

Add The Dependency

yarn add --dev https://github.com/tolicodes/picklejs

Create the Selector JSON Files

Inside your step_definitions for each feature, create a

selectors.json

{
    "Plain English Name": ".Selector",
    "Some Container": {
        "default": ".Container-Class",
        "Some Subcomponent": ".Subcomponent Class"
    },
}

In your JS file for the feature add

import selectors from './selectors.json';
import {
    setElementSelector,
} from '../../helpers/variables';

setElementSelector(selectors);

Add generateAutoPhrases

Inside your step_definitions for each feature, put in the main JS file:

import generateAutoPhrases from '../../helpers/generateAutoPhrases';

generateAutoPhrases();

Add Helper Functions

Inside your step_definitions for each module, create a

import {
    getNormalized,
    waitForResults,
    clickElement,
    getSelector,
} from '../../helpers/functions';

API

Scenarios

When I click [an] <Element>

Clicks on element

Ex:

  • I click on the "Button"
  • I click "Save"
  • I click on "Save" inside the "Modal"

When I type "{string}" [into the] <Element>

Types string into a text input

Ex:

  • I type "toli" into the "Username Input"
  • I type "toli" into "Username"
  • I type "toli" into the "Username Input" on the "SignIn form"

When I replace the contents [of] <Element> with "{string}"

Replace the content of text input with string

Ex:

  • When I replace the contents of "Username" with "toli"
  • When I replace the contents of "Username" inside of the "Login Modal" with "toli"

I open [the] <Screen>

Navigates to a Screen's URL

Ex:

  • I open the "Login Screen"

I scroll to the bottom of the <Element>

Scrolls to the bottom of an Element (note: currently only scrolls to bottom of the page)

Ex:

  • I scroll to the bottom the "Modal"

I wait for results to load

Waits for an AJAX request to finish

This is currently not working as it should so I replaced with a wait(1000)

I should be redirected to the <Screen>

Redirects to a the Screen's url

Ex:

  • I should be redirected to the "Login Screen"

I should see {int} <Element> [in] <Element> [containing "{string}]

Checks to see if there are specified number of Elements (optionally containing some text) in another Element

Ex:

  • I should see 3 "Buttons" in "Modal" containing "Click Me"
  • I should 3 "Buttons" in "Modal"

I should see "{string}" [on the] <Element>

Ex:

  • I should see "Press Me" on the "Button" inside the "Modal"

I should see <Element> [on the] <Element>

There is text present inside the element

Ex:

  • I should see "Press Me" on the "Button" inside the "Modal"

I should not see <Element> [on the] <Element>

An element should not be present

Ex:

  • I should not see the "Buttons" in the "Modal"
  • I should not see "Buttons" on the "Page"
  • I should not see the "Button"

<Element> should be "{string}"

There should be text present on the element

Ex:

  • "Username" should be "toli"

<Element> value should be "{string}"

There should be text present on the element

Ex:

  • "Username's" value should be "toli"

Router

Write about it....

API

Write about it...

Functions

Wriate about it...

Example App

WORK IN PROGRESS

Run

yarn cypress:open

Website:

Run:

yarn start

Developing

When making a change just run the following to build.

yarn buildLib