howsmydriving-seattle
Version:
Seattle region plug-in for @HowsMyDrivingWA.
80 lines (79 loc) • 3.41 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var assert = require('assert'), sinon = require('sinon');
var seattleCollision_1 = require("../src/seattleCollision");
var seattle_1 = require("../src/seattle");
var statestore_1 = require("./mocks/statestore");
describe('Collision tests', function () {
describe('Get last fatal/injury collision', function () {
var _this = this;
it('Should return a single ICollision with a date prior to today', function (done) {
// These aren't really unit tests since they make calls to the seattle opendata endpoints.
_this.timeout(5000);
seattle_1.Factory.createRegion(new statestore_1.MockStateStore('TestRegion', Date.now()))
.then(function (region) {
region.GetRecentCollisions().then(function (collisions) {
if (collisions.length == 0) {
assert(true);
}
collisions.forEach(function (collision) {
assert(collision.date_time < Date.now());
assert(collision.fatality_count > 0 ||
collision.serious_injury_count > 0 ||
collision.injury_count > 0);
});
done();
});
})
.catch(function (err) {
throw err;
});
});
});
describe('Render collisions correctly', function () {
it('Should render a specific date/time', function () {
var collision = new seattleCollision_1.SeattleCollision({
id: '111111',
date_time: 1583539200000,
x: -122.31346221462668,
y: 47.567243070925294,
location: 'In Seattle anywhere',
region: 'Fake City',
ped_count: 1,
cycler_count: 2,
person_count: 4,
vehicle_count: 1,
injury_count: 1,
serious_injury_count: 1,
fatality_count: 1,
dui: false
});
assert.notEqual(collision.toString(), undefined, 'collision.toString() is undefined.');
assert.notEqual(collision.toString(), '', 'collision.toString() is empty.');
});
});
describe('Check tweet freshness logic', function () {
// These aren't really unit tests since they make calls to the seattle opendata endpoints.
this.timeout(5000);
it('Should not tweet again within a day', function (done) {
seattle_1.Factory.createRegion(new statestore_1.MockStateStore('TestRegion', Date.now()))
.then(function (mockRegion) {
mockRegion
.GetRecentCollisions()
.then(function (collisions) {
if (collisions.length == 0) {
assert(true);
}
collisions.forEach(function (collision) {
var seattleRegion = mockRegion;
assert(!seattleRegion.shouldTweet(collision));
});
done();
});
})
.catch(function (err) {
throw err;
});
});
});
});