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

dredd-hooks-template

v1.1.8

Published

Test suite template for Dredd hooks handler implementations

Downloads

22

Readme

Cross-Language Test Suite for Dredd Hooks Handlers

Build Status

Dredd is a tool for testing web APIs. It supports hooks written in many languages. To support a particular language, it needs an adapter, so-called hooks handler. This BDD test suite ensures that the public interface of each hooks handler works as Dredd expects. The test suite is written in Gherkin and uses Cucumber as a test runner.

To use the test suite, first read the docs about how to create a new hooks handler for Dredd. Implement your hooks handler and then continue with the following guide.

Installation

  1. Make sure you have Node.js (ideally version 10 or higher) and npm available.

  2. Create a package.json file in the root of your project. This is where your JavaScript dependencies are going to be specified:

    {
      "scripts": { "test": "dredd-hooks-template test" },
      "private": true
    }
  3. Run npm install dredd-hooks-template --save-dev --save-exact to install and declare this test suite as your development dependency.

  4. Run npx dredd-hooks-template init to get a copy of the test suite in the ./features directory.

  5. Open the feature files in ./features/*.feature and in all of them

    • replace {{my-executable-path}} with a path to your hooks handler executable which you want to get tested (e.g. ./bin/dredd_hooks)
    • replace {{my-extension}} by the extension of the hooks handler language (e.g. .py),
    • uncomment the code blocks and rewrite them to the hooks handler language.

Now you have the test suite ready.

Usage

Every time you run npx dredd-hooks-template test (or npm test), you should see the test suite running. The end goal is that all the tests pass:

test suite passing

You should add the package.json file to Git. When starting from scratch, you can run npm install to install the JavaScript dependencies.

Upgrading

Watch for newer versions of the dredd-hooks-template package and upgrade regularly to keep up with development of Dredd and the test suite itself. To upgrade, run:

$ npx dredd-hooks-template upgrade

It upgrades the package to the latest version and copies the latest feature files to the project's ./features/ directory. It won't overwrite the existing files as the names of the new files get suffixed with version. Then it's up to you to compare the old and new files, spot changes, and update the project's test suite.

Reference Implementations

The Python hooks and the Ruby hooks can be used as examples of how to use this cross-language test suite.

Keep Tests Running with CI

To make sure the hooks handler will always work correctly with Dredd and the expectations won't get accidentally broken, put the tests into Travis CI, which runs the tests for each change on your repository. See existing configuration files for inspiration: