fpti-tests v0.0.0
fpti-tests
This package provides a collection of validator/test methods for FPTI-JS (Friendly Public Transport Interface) modules.
Installation
npm install fpti-testsAPI
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.
7 years ago