aviation-model
Version:
Public methods for querying the information from aviation-pg
198 lines (167 loc) • 6.98 kB
JavaScript
;
var assert = require("assert");
var methods = require("../src/index.js");
var queryData = methods.queryData;
var airportsBounds = methods.airportsBounds;
describe("query fn \n", function () {
var AIRPORT_SEARCH = "Valencia%";
var AIRLINE_SEARCH = "American_Airlines";
var airportOptions = {
searchString: AIRPORT_SEARCH,
distance: 100 * 1000
};
var airlineOptions = {searchString: AIRLINE_SEARCH};
it("airline_destinations.sql should return the destinations", function (done) {
var expectedDestinations = require("./fixtures/airline_destinations.json");
queryData(airlineOptions, "airlineDestinations", function(err, destinations) {
if (err) {throw err;}
assert.deepEqual(destinations, expectedDestinations, "the destinations are not right.");
done();
});
});
it("airport_data.sql should return the airport data", function (done) {
var expectedAirportData = [{
airport_id: "Valencia_Airport",
latitude: "39°29′22″N",
longitude: "00°28′54″W",
name: "Valencia Airport",
nickname: "IATA: VLC",
iata: "VLC",
icao: "LEVC",
dd_latitude: 39.489444444444445,
dd_longitude: -0.4816666666666667,
"airlines_flying": 32
}];
queryData(airportOptions, "airportData", function (err, airportData) {
if (err) {throw err;}
assert.deepEqual(airportData, expectedAirportData, "query failed.");
done();
});
});
it("airport_runways.sql should return the runways.", function (done) {
var expectedRunways =
[{
name: "Valencia Airport",
direction: "12/30",
ft: "10,548",
m: "3,215",
surface: "Asphalt"
}];
queryData(airportOptions, "airportRunways", function (err, runways) {
if (err) {throw err;}
assert.deepEqual(runways, expectedRunways, "not returning the proper runway.");
done();
});
});
it("cities_by_airline.sql should return the list of cities where the airline is flying.", function (done) {
var expectedCities = require("./fixtures/airline_cities.json");
queryData({ searchString: "%American_Airlines%"}, "citiesByAirline", function(err, cities) {
if (err) {throw err;}
assert.deepEqual(cities, expectedCities, "the cities are not exactly the same.");
done();
});
});
it("radius_airports.sql should return the airports within the radius", function (done) {
var expectedAirports = require("./fixtures/airports_radius_valencia_100km.json");
queryData(airportOptions, "radiusAirports", function(err, radiusAirports) {
if (err) {throw err;}
assert.deepEqual(radiusAirports, expectedAirports);
done();
});
});
it("airlines.sql should return the airlines", function (done) {
var expectedAirlines = require("./fixtures/airline_data.json");
queryData(airlineOptions, "airlines", function(err, airlines) {
if (err) {throw err;}
assert.deepEqual(airlines, expectedAirlines);
done();
});
});
it("airlines_by_airport.sql should return the airlines", function (done) {
var expectedAirlines = require("./fixtures/airlines_by_airport.json");
queryData(airportOptions, "airlinesByAirport", function(err, airlines) {
if (err) {throw err;}
assert.deepEqual(airlines, expectedAirlines);
done();
});
});
it("airports_bounds.sql should return the airports", function (done) {
var boundsAirports = require("./fixtures/airports_bounds.json");
airportsBounds({
latitude1: 38,
longitude1: -123,
latitude2: 37,
longitude2: -122
}, function (err, airports) {
if (err) {throw err;}
assert.deepEqual(airports, boundsAirports );
done();
});
});
describe("sql counters", function() {
it("airports_count_with_coordinates.sql should return the destinations", function (done) {
queryData({}, "airportsCountWithCoords", function(err, result) {
if (err) {throw err;}
assert.ok(typeof Number(result[0].count) === "number" , "it should be a number" + typeof Number(result[0].count));
assert.ok(Number(result[0].count) > 0);
done();
});
});
it("airports_count_without_coordinates.sql should return the destinations", function (done) {
queryData({}, "airportsCountWithoutCoords", function(err, result) {
if (err) {throw err;}
assert.ok(typeof Number(result[0].count) === "number" , "it should be a number" + typeof Number(result[0].count));
assert.ok(Number(result[0].count) > 0);
done();
});
});
it("airlines_count.sql should return the destinations", function (done) {
queryData({}, "airlinesCount", function(err, result) {
if (err) {throw err;}
assert.ok(typeof Number(result[0].count) === "number" , "it should be a number" + typeof Number(result[0].count));
assert.ok(Number(result[0].count) > 0);
done();
});
});
it("airlines_count_no_callsign.sql should return the destinations", function (done) {
queryData({}, "airlinesCountNoCallsign", function(err, result) {
if (err) {throw err;}
assert.ok(typeof Number(result[0].count) === "number" , "it should be a number" + typeof Number(result[0].count));
assert.ok(Number(result[0].count) > 0);
done();
});
});
it("airlines_count_no_iata.sql should return the destinations", function (done) {
queryData({}, "airlinesCountNoIata", function(err, result) {
if (err) {throw err;}
assert.ok(typeof Number(result[0].count) === "number" , "it should be a number" + typeof Number(result[0].count));
assert.ok(Number(result[0].count) > 0);
done();
});
});
it("airlines_count_no_icao.sql should return the destinations", function (done) {
queryData({}, "airlinesCountNoIcao", function(err, result) {
if (err) {throw err;}
assert.ok(typeof Number(result[0].count) === "number" , "it should be a number" + typeof Number(result[0].count));
assert.ok(Number(result[0].count) > 0);
done();
});
});
it("airlines_count_no_logo_url.sql should return the destinations", function (done) {
queryData({}, "airlinesCountNoLogoUrl", function(err, result) {
if (err) {throw err;}
assert.ok(typeof Number(result[0].count) === "number" , "it should be a number" + typeof Number(result[0].count));
assert.ok(Number(result[0].count) > 0);
done();
});
});
it("airlines_count_no_website.sql should return the destinations", function (done) {
queryData({}, "airlinesCountNoWebsite", function(err, result) {
if (err) {throw err;}
assert.ok(typeof Number(result[0].count) === "number" , "it should be a number" + typeof Number(result[0].count));
assert.ok(Number(result[0].count) > 0);
done();
});
});
});
});