0.2.0 • Published 8 years ago

chai-geojson v0.2.0

Weekly downloads
3
License
MIT
Repository
github
Last release
8 years ago

chai-geojson

This plugin extends existing chaijs APIs and introduces new ones for testing GeoJSON elegantly. It provides brief syntax for:

  • type assertion
  • geographic area and length assertion

Installation

  • NodeJS
npm install chai-geojson --save-dev

Usage

  • NodeJS
const chai = require('chai');

chai.use(require('chai-geojson'));

const expect = chai.expect;
const assert = chai.assert;
const should = chai.should();

/**
 * Do your tests with the following APIs.
 */

API

See test cases for complete use examples.

Expect / Should

  • .a(type)

    • @Param {String} type

The a assertion can be used to assert a GeoJSON object’s type and its geometry coordinates if there is any. Noted this doesn't recursively iterate each features in a FeatureCollection or assert the geometry in a Feature.

Supported types:

  • FeatureCollection
  • Feature
  • Geometry
  • Point
  • MultiPoint
  • LineString
  • MultiLineString
  • Polygon
  • MultiPolygon
expect(geojson).to.be.a('FeatureCollection');
expect(geojson).to.be.a('Feature');
expect(geojson).not.to.be.a('Point');

geojson.should.be.a('FeatureCollection');
geojson.should.not.be.a('Feature');
  • length

Sets the geomLength flag later used as a chain precursor to a value comparison for the geographic length.

expect(geojson).to.have.length.above(2);
  • .lengthOf(value, precision)

  • @param {Number} value expected length value in meters

  • @param {Number} precision=0 difference tolerance in percentage of the geographic length

Asserts that the length of LineString feature/geometry has the expected value.

expect(geojson).to.have.lengthOf(250, 0.01);
expect(geojson).not.to.have.lengthOf(250);
  • area

Sets the geomArea flag later used as a chain precursor to a value comparison for the geographic area.

expect(geojson).to.have.area.below(2000);
  • .areaOf(value, precision)

  • @param {Number} value expected area value in square meters

  • @param {Number} precision=0 difference tolerance in percentage of the geographic area

Asserts that the area of polygon feature/geometry has the expected value.

expect(geojson).to.have.areaOf(250, 0.05);
  • .equal(value, precision)

  • @param {Number} value expected value in meters for length or in square meters for square meters

  • @param {Number} precision=0 difference tolerance in percentage of the expected value

The equal assertion can be used to assert whether the length or area of a geojson feature/geometry is equal to the expected value.

expect(geojson).to.have.area.equal(500);
expect(geojson).to.have.length.equal(250, 0.05);
  • .above(value)

  • @param {Number} value expected value in meters for length or in square meters for area

The above assertion can be used to assert whether the length or area of a geojson feature/geometry is above the given value.

expect(geojson).to.have.area.above(500);
expect(geojson).to.have.length.above(250);
  • .least(value)

  • @param {Number} value expected value in meters for length or in square meters for area

The above assertion can be used to assert whether the length or area of a geojson feature/geometry is at least the given value.

expect(geojson).to.have.area.at.least(500);
expect(geojson).to.have.length.at.least(250);
  • .most(value)

  • @param {Number} value expected value in meters for length or in square meters for area

The above assertion can be used to assert whether the length or area of a geojson feature/geometry is at most the given value.

expect(geojson).to.have.area.at.most(500);
expect(geojson).to.have.length.at.most(250);
  • .below(value)

  • @param {Number} value expected value in meters for length or in square meters for area

The above assertion can be used to assert whether the length or area of a geojson feature/geometry is below the given value.

expect(geojson).to.have.area.below(500);
expect(geojson).to.have.length.below(250);
  • .within(lower, upper)

  • @param {Number} lower expected lower bound of input value

  • @param {Number} upper expected upper bound of input value

The within assertion can be used to assert whether the length or area of a geojson feature/geometry is within the given range.

expect(geojson).to.have.area.within(500, 800);
expect(geojson).to.have.length.within(250, 300);

Assert

  • .typeOf(type)

    • @Param {String} type

Same as .a(type) in expect / should style.

assert.typeOf(geojson, 'Feature');
  • .notTypeOf(type)

    • @Param {String} type

Same as .not.a(type) in expect / should style.

assert.notTypeOf(geojson, 'Feature');

Lincense

MIT

0.2.0

8 years ago

0.1.0

8 years ago