https://github.com/juliuste/fpti-tests
Collection of validator/test functions for FPTI (Friendly Public Transport Interface) modules.
https://github.com/juliuste/fpti-tests
library public-transport
Last synced: about 1 year ago
JSON representation
Collection of validator/test functions for FPTI (Friendly Public Transport Interface) modules.
- Host: GitHub
- URL: https://github.com/juliuste/fpti-tests
- Owner: juliuste
- License: isc
- Created: 2018-08-29T14:39:31.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2020-05-25T04:13:17.000Z (about 6 years ago)
- Last Synced: 2025-02-16T14:24:30.498Z (over 1 year ago)
- Topics: library, public-transport
- Language: JavaScript
- Size: 58.6 KB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 8
-
Metadata Files:
- Readme: readme.md
- License: license
Awesome Lists containing this project
README
# fpti-tests
This package provides a collection of validator/test methods for [FPTI-JS](https://github.com/juliuste/fpti-js) (Friendly Public Transport Interface) modules.
[](https://www.npmjs.com/package/fpti-tests)
[](https://travis-ci.org/juliuste/fpti-tests)
[](https://greenkeeper.io/)
[](https://david-dm.org/juliuste/fpti-tests)
[](license)
[](https://gitter.im/juliuste)
## Installation
```shell
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](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/promise). Throws if the given package.json is invalid. Will check the version of `validate-fptf` used by your module.
```js
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.
```js
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:
```js
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](https://github.com/juliuste/fpti-tests/issues).