UNPKG

howsmydriving-seattle

Version:
80 lines (79 loc) 3.41 kB
"use strict"; 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; }); }); }); });