UNPKG

globi-data

Version:

Find out who eats who in the world: what do rats (Rattus rattus) eat?, or what do hardhead catfish (Ariopsis felis) eat?. Data provided via Global Biotic Interactions (GloBI, https://globalbioticinteractions.org) .

107 lines (89 loc) 6.78 kB
var globiData = require('../'); var test = require('tape'); test('url for taxon info', function(t) { t.plan(1); t.equal(globiData.urlForTaxonImageQuery('Homo sapiens'), 'https://api.globalbioticinteractions.org/imagesForName?name=Homo%20sapiens'); }); test('url for taxon info with preferred language', function(t) { t.plan(1); t.equal(globiData.urlForTaxonImageQuery('Homo sapiens', { 'lang': 'en' }), 'https://api.globalbioticinteractions.org/imagesForName?name=Homo%20sapiens&lang=en'); }); test('url for interaction no target', function(t) { t.plan(1); var search = {'sourceTaxonScientificName': 'Homo sapiens', 'interactionType': 'preysOn'}; t.equal(globiData.urlForTaxonInteractionQuery(search), 'https://api.globalbioticinteractions.org/taxon/Homo%20sapiens/preysOn?type=json.v2'); }); test('url for interaction with target', function(t) { t.plan(1); var search = {'sourceTaxonScientificName': 'Homo sapiens', 'interactionType': 'preysOn', 'targetTaxonScientificName': 'Canis lupus'}; t.equal(globiData.urlForTaxonInteractionQuery(search), 'https://api.globalbioticinteractions.org/taxon/Homo%20sapiens/preysOn/Canis%20lupus?type=json.v2'); }); test('url for interaction location only', function(t) { t.plan(1); var search = {'location': {'lat': 10.2, 'lng':12.2}}; t.equal(globiData.urlForTaxonInteractionQuery(search), 'https://api.globalbioticinteractions.org/interaction?type=json.v2&lat=10.2&lng=12.2'); }); test('url for interaction location only source taxon, target taxon', function(t) { t.plan(1); var search = {'location': {'lat': 10.2, 'lng':12.2}, 'sourceTaxa': ['Mammalia'], 'targetTaxa': ['Insecta', 'Ariopsis felis']}; t.equal(globiData.urlForTaxonInteractionQuery(search), 'https://api.globalbioticinteractions.org/interaction?type=json.v2&lat=10.2&lng=12.2&sourceTaxon=Mammalia&targetTaxon=Insecta&targetTaxon=Ariopsis%20felis'); }); test('url for interaction location include observations', function(t) { t.plan(1); var search = {'includeObservations' : true}; t.equal(globiData.urlForTaxonInteractionQuery(search), 'https://api.globalbioticinteractions.org/interaction?type=json.v2&includeObservations=true'); }); test('url for interaction exact name matches only', function(t) { t.plan(1); var search = {'exactNameMatchOnly' : true}; t.equal(globiData.urlForTaxonInteractionQuery(search), 'https://api.globalbioticinteractions.org/interaction?type=json.v2&exactNameMatchOnly=true'); }); test('url for interactions according to', function(t) { t.plan(1); var search = {'accordingTo' : 'https://inaturalist.org/observations/123'}; t.equal(globiData.urlForTaxonInteractionQuery(search), 'https://api.globalbioticinteractions.org/interaction?type=json.v2&accordingTo=https%3A%2F%2Finaturalist.org%2Fobservations%2F123'); }); test('url for search box location only source taxon, target taxon', function(t) { t.plan(1); var location = {nw_lat:41.574361, nw_lng:-125.53344800000002, se_lat:32.750323, se_lng: -114.74487299999998}; var search = {location: location, sourceTaxa: ['Animalia'], targetTaxa: ['Insecta']}; t.equal(globiData.urlForTaxonInteractionQuery(search), 'https://api.globalbioticinteractions.org/interaction?type=json.v2&nw_lat=41.574361&nw_lng=-125.53344800000002&se_lat=32.750323&se_lng=-114.74487299999998&sourceTaxon=Animalia&targetTaxon=Insecta'); }); test('url for interaction - different result types', function(t) { t.plan(5); var searchWithResultTypeJson = {'sourceTaxonScientificName': 'Homo sapiens', 'interactionType': 'preysOn', 'resultType': 'json'}; t.equal(globiData.urlForTaxonInteractionQuery(searchWithResultTypeJson), 'https://api.globalbioticinteractions.org/taxon/Homo%20sapiens/preysOn?type=json'); var searchWithResultTypeCsv = {'sourceTaxonScientificName': 'Homo sapiens', 'interactionType': 'preysOn', 'resultType': 'csv'}; t.equal(globiData.urlForTaxonInteractionQuery(searchWithResultTypeCsv), 'https://api.globalbioticinteractions.org/taxon/Homo%20sapiens/preysOn.csv?type=csv'); var searchWithResultTypeDot = {'sourceTaxonScientificName': 'Homo sapiens', 'interactionType': 'preysOn', 'resultType': 'dot'}; t.equal(globiData.urlForTaxonInteractionQuery(searchWithResultTypeDot), 'https://api.globalbioticinteractions.org/taxon/Homo%20sapiens/preysOn.dot?type=dot'); searchWithResultTypeCsv = {'sourceTaxa': ['Homo sapiens'], 'interactionType': 'preysOn', 'resultType': 'csv'}; t.equal(globiData.urlForTaxonInteractionQuery(searchWithResultTypeCsv), 'https://api.globalbioticinteractions.org/interaction.csv?type=csv&interactionType=preysOn&sourceTaxon=Homo%20sapiens'); var searchWithNoSpecificResultType = {'sourceTaxonScientificName': 'Homo sapiens', 'interactionType': 'preysOn'}; t.equal(globiData.urlForTaxonInteractionQuery(searchWithNoSpecificResultType), 'https://api.globalbioticinteractions.org/taxon/Homo%20sapiens/preysOn?type=json.v2'); }); test('url with fields', function(t) { t.plan(1); var searchWithResultTypeJson = {'sourceTaxa': ['Homo sapiens'], 'interactionType': 'preysOn', 'fields': ['interaction_type', 'source_taxon_name']}; t.equal(globiData.urlForTaxonInteractionQuery(searchWithResultTypeJson), 'https://api.globalbioticinteractions.org/interaction?type=json.v2&interactionType=preysOn&sourceTaxon=Homo%20sapiens&field=interaction_type&field=source_taxon_name'); }); test('url with taxon array', function(t) { t.plan(1); var searchWithResultTypeJson = { sourceTaxon: ['Homo sapiens'], interactionType: 'preysOn'}; t.equal(globiData.urlForTaxonInteractionQuery(searchWithResultTypeJson), 'https://api.globalbioticinteractions.org/interaction?type=json.v2&sourceTaxon=Homo%20sapiens&interactionType=preysOn'); }); test('url with taxon value', function(t) { t.plan(1); var searchWithResultTypeJson = { sourceTaxon: 'Homo sapiens', interactionType: 'preysOn'}; t.equal(globiData.urlForTaxonInteractionQuery(searchWithResultTypeJson), 'https://api.globalbioticinteractions.org/interaction?type=json.v2&sourceTaxon=Homo%20sapiens&interactionType=preysOn'); }); test('url with taxa and taxon array', function(t) { t.plan(1); var searchWithResultTypeJson = { sourceTaxa: ['Ariopsis felis'], sourceTaxon: ['Homo sapiens'], interactionType: 'preysOn'}; t.equal(globiData.urlForTaxonInteractionQuery(searchWithResultTypeJson), 'https://api.globalbioticinteractions.org/interaction?type=json.v2&sourceTaxon=Homo%20sapiens&interactionType=preysOn'); }); test('url with bbox', function(t) { t.plan(1); var searchWithBBoxSet = {'bbox': '42,23,100,100'}; t.equal(globiData.urlForTaxonInteractionQuery(searchWithBBoxSet), 'https://api.globalbioticinteractions.org/interaction?type=json.v2&bbox=42%2C23%2C100%2C100'); });