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 fpti-tests with all npm packages installed. Try it out:

var fptiTests = require("fpti-tests")

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

fpti-tests v0.0.0

Validator/test methods for FPTI (friendly public transport interface) modules.

fpti-tests

This package provides a collection of validator/test methods for FPTI-JS (Friendly Public Transport Interface) modules.

npm version Build Status Greenkeeper badge dependency status license chat on gitter

Installation

npm install fpti-tests

API

General methods

These two methods should be used in every package.

packageJson(pkg)

Takes the contents of your package's package.json and returns a Promise. Throws if the given package.json is invalid. Will check the version of validate-fptf used by your module.

const tests = require('fpti-tests')
const pkg = require('./package.json') // your-package/package.json

const test = async () => {
    await tests.packageJson(pkg) // throws when invalid
}

packageExports(module, expectedMethods)

Takes the module.exports of your module and a list of supported FPTI methods. Throws if expectedMethods doesn't match the module's exports or if the module structure is invalid.

const tests = require('fpti-tests')
const module = require('.') // your-package

const test = () => {
    tests.packageExports(module, ['stations.all', 'stops.nearby', 'stopovers']) // throws when invalid
}

Feature check methods

Use those for the FPTI methods exposed by your module: Check if the features object exported by your FPTI methods matches the spec and a given list of expected options.

Example for the stopovers method:

const tests = require('fpti-tests')
const stopoversFeatures = require('.').stopovers.features // your-package

const test = () => {
    tests.stopoversFeatures(stopoversFeatures, ['interval', 'when', 'departureAfter', 'results', 'direction']) // throws when invalid, given a list of expected options
}

All methods:

  • stationsAllFeatures(features, expectedList)
  • stationsNearbyFeatures(features, expectedList)
  • stationsSearchFeatures(features, expectedList)
  • stopsAllFeatures(features, expectedList)
  • stopsNearbyFeatures(features, expectedList)
  • stopsSearchFeatures(features, expectedList)
  • regionsAllFeatures(features, expectedList)
  • regionsNearbyFeatures(features, expectedList)
  • regionsSearchFeatures(features, expectedList)
  • stopoversFeatures(features, expectedList)
  • journeysFeatures(features, expectedList)

Contributing

If you found a bug or want to propose a feature, feel free to visit the issues page.

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