diff --git a/.gitignore b/.gitignore index e1758eec..f4d56c62 100755 --- a/.gitignore +++ b/.gitignore @@ -75,6 +75,8 @@ typings/ # dotenv environment variables file .env +.env.* +!.env-template # Adding the swagger project files: api_project.sublime-project diff --git a/.yarnrc.yml b/.yarnrc.yml index 03b3254d..8b757b29 100644 --- a/.yarnrc.yml +++ b/.yarnrc.yml @@ -1,3 +1 @@ -nodeLinker: node-modules - -yarnPath: .yarn/releases/yarn-4.12.0.cjs +nodeLinker: node-modules \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index eaed5180..abdf8a95 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,8 @@ FROM node:22-alpine WORKDIR /app -COPY package*.json ./ -RUN yarn install +RUN corepack enable +COPY package.json yarn.lock .yarnrc.yml ./ +RUN yarn install --immutable COPY . . EXPOSE 3001 -CMD ["npm", "start"] \ No newline at end of file +CMD ["npm", "start"] diff --git a/app.js b/app.js index 52a96103..27c3492e 100755 --- a/app.js +++ b/app.js @@ -15,7 +15,11 @@ const dbtest = require('./database/pgp_db').dbheader; const rateLimiter = require('express-rate-limit'); const dotenv = require('dotenv'); -dotenv.config(); +const env = process.env.NODE_ENV || 'development'; +dotenv.config({ path: `.env.${env}` }); +console.log(`Loaded environment from .env.${env}`); + +const apiPort = parseInt(process.env.APIPORT, 10) || 3001; const app = express(); const cache = apicache.middleware; @@ -33,18 +37,47 @@ const limiter = rateLimiter({ app.engine('html', require('ejs').renderFile); -// app.use(helmet()); -app.use(cors()); +const {optionalAuth} = require('./v2.0/helpers/validation/sessionauth'); +const corsOptions = { + origin: function(origin, callback) { + // Allow requests with no Origin header (server-to-server, R package, curl, etc.) + if (!origin) return callback(null, true); + + const allowed = [ + 'http://localhost:5173', + 'http://127.0.0.1:5173', + 'https://data.neotomadb.org', + // add other frontends as needed + ]; + + if (allowed.includes(origin)) { + return callback(null, true); + } + // For now, log and allow — Neotoma data is public. + // Tighten this later if you ever return user-specific data based on Origin. + console.warn('CORS: unrecognized origin allowed:', origin); + return callback(null, true); + }, + credentials: true, + allowedHeaders: ['Content-Type', 'Authorization'], +}; + +app.use(cors(corsOptions)); app.use(limiter); app.use(express.json()); -// app.use(cache('5 minutes')); -app.use(express.static('mochawesome-report')); +app.use(express.urlencoded({ extended: false })); +app.use(cookieParser()); app.use(compression()); +app.use(express.static('public')); +app.use(express.static('mochawesome-report')); +app.use(express.static(path.join(__dirname, 'public'))); +// Attach req.user (or null) on every request. +// Routes that need to *require* auth use requireAuth instead. +app.use(optionalAuth); app.locals.db = dbtest(); // test trigger watch restart - 09/12/20 -// // create a write stream (in append mode) const pad = (num) => (num > 9 ? '' : '0') + num; @@ -72,7 +105,7 @@ app.use(morgan(':date[iso]\t:remote-addr\t:method\t:url\t:status\t:res[content-l })); const options = { - swaggerUrl: 'http://localhost:3005/api-docs', + swaggerUrl: `http://localhost:${apiPort}/api-docs`, customCssUrl: '/custom.css', }; @@ -99,17 +132,6 @@ const healthwatch = require('./v2.0/routes/healthwatch'); app.set('views', path.join(__dirname, 'views')); app.set('view engine', 'jade'); -// uncomment after placing your favicon in /public -// app.use(favicon(path.join(__dirname, 'public', 'favicon.ico'))); - -app.use(express.static('public')); -app.use(express.urlencoded({ - extended: false, -})); -app.use(express.json()); -app.use(cookieParser()); - -app.use(express.static(path.join(__dirname, 'public'))); // optionally, re-factor route paths here to strip version string and // identify version from header; still requires version directory paths in @@ -173,12 +195,8 @@ app.all('*', function(req, res) { // in production, port is 3001 and server started in script 'www' // The variable is stored in the gitignored `.env` file. // This is managed in the www folder. -if (process.env.NODE_ENV === 'development') { - app.listen(3005); -} - -if (process.env.NODE_ENV === 'production') { - app.listen(3001); -} +app.listen(apiPort, () => { + console.log(`Neotoma API listening on port ${apiPort} (NODE_ENV=${process.env.NODE_ENV})`); +}); module.exports = app; diff --git a/genoatt.sh b/genoatt.sh index 36afce9b..70176cce 100644 --- a/genoatt.sh +++ b/genoatt.sh @@ -12,11 +12,12 @@ This bash script also performs some text replacement to account for issues in th * We ensure that all altmin values are lower than altmax values. Options: - [none] build the mocha tests and exit + [none] build the mocha tests and exit (targets localhost:3001 — local production mode) -h display this help and exit -t build the tests and run "npm test" - -d build the tests for the remove development server at api-dev. - -p build the tests for the remove production server at api.neotomadb.org + -l build the tests for the LOCAL DEV server at localhost:3005 (NODE_ENV=development) + -d build the tests for the remote development server at api-dev. + -p build the tests for the remote production server at api.neotomadb.org HELP } @@ -29,8 +30,8 @@ run_oatt() { # oatts is a bit silly in picking its variables. We need to make sure that we're # getting the proper polygons, and making sure altmin/altmax are appropriate. - find ./test/*.js -type f -exec sed -i.old -E 's/"loc":\ "\{.*?\}"/"loc": "{\"type\":\"Polygon\",\"coordinates\":[[[-104.053249,41.001406],[-104.675999,41.000957],[-104.855273,40.998048],[-105.277138,40.998173],[-105.730421,40.996886],[-106.217573,40.997734],[-106.453859,41.002057],[-106.857773,41.002663],[-107.625624,41.002124],[-108.250649,41.000114],[-108.884138,41.000094],[-109.050076,41.000659],[-109.048044,40.619231],[-109.050946,40.444368],[-109.050615,39.87497],[-109.051363,39.497674],[-109.051512,39.126095],[-109.054189,38.874984],[-109.059541,38.719888],[-109.060062,38.275489],[-109.041762,38.16469],[-109.041058,37.907236],[-109.041865,37.530726],[-109.04581,37.374993],[-109.045223,36.999084],[-108.620309,36.999287],[-108.249358,36.999015],[-108.000623,37.000001],[-107.420913,37.000005],[-106.877292,37.000139],[-106.869796,36.992426],[-106.201469,36.994122],[-105.62747,36.995679],[-105.1208,36.995428],[-105.000554,36.993264],[-104.338833,36.993535],[-103.733247,36.998016],[-103.002199,37.000104],[-102.814616,37.000783],[-102.698142,36.995149],[-102.04224,36.993083],[-102.041974,37.352613],[-102.041574,37.680436],[-102.044644,38.045532],[-102.045324,38.453647],[-102.045388,38.813392],[-102.048449,39.303138],[-102.050422,39.646048],[-102.051744,40.003078],[-102.051725,40.537839],[-102.051614,41.002377],[-102.556789,41.002219],[-102.865784,41.001988],[-103.497447,41.001635],[-104.053249,41.001406]]]}"/g' {} \; - find ./test/*.js -type f -exec sed -i.old -E 's/"loc":\ \"\{.*?\}\"/"loc": "{\"type\":\"Polygon\",\"coordinates\":[[[-104.053249,41.001406],[-104.675999,41.000957],[-104.855273,40.998048],[-105.277138,40.998173],[-105.730421,40.996886],[-106.217573,40.997734],[-106.453859,41.002057],[-106.857773,41.002663],[-107.625624,41.002124],[-108.250649,41.000114],[-108.884138,41.000094],[-109.050076,41.000659],[-109.048044,40.619231],[-109.050946,40.444368],[-109.050615,39.87497],[-109.051363,39.497674],[-109.051512,39.126095],[-109.054189,38.874984],[-109.059541,38.719888],[-109.060062,38.275489],[-109.041762,38.16469],[-109.041058,37.907236],[-109.041865,37.530726],[-109.04581,37.374993],[-109.045223,36.999084],[-108.620309,36.999287],[-108.249358,36.999015],[-108.000623,37.000001],[-107.420913,37.000005],[-106.877292,37.000139],[-106.869796,36.992426],[-106.201469,36.994122],[-105.62747,36.995679],[-105.1208,36.995428],[-105.000554,36.993264],[-104.338833,36.993535],[-103.733247,36.998016],[-103.002199,37.000104],[-102.814616,37.000783],[-102.698142,36.995149],[-102.04224,36.993083],[-102.041974,37.352613],[-102.041574,37.680436],[-102.044644,38.045532],[-102.045324,38.453647],[-102.045388,38.813392],[-102.048449,39.303138],[-102.050422,39.646048],[-102.051744,40.003078],[-102.051725,40.537839],[-102.051614,41.002377],[-102.556789,41.002219],[-102.865784,41.001988],[-103.497447,41.001635],[-104.053249,41.001406]]]}"/g' {} \; + find ./test/*.js -type f -exec sed -i.old -E 's/"loc":\ "\{[^}]*\}"/"loc": "{\"type\":\"Polygon\",\"coordinates\":[[[-104.053249,41.001406],[-104.675999,41.000957],[-104.855273,40.998048],[-105.277138,40.998173],[-105.730421,40.996886],[-106.217573,40.997734],[-106.453859,41.002057],[-106.857773,41.002663],[-107.625624,41.002124],[-108.250649,41.000114],[-108.884138,41.000094],[-109.050076,41.000659],[-109.048044,40.619231],[-109.050946,40.444368],[-109.050615,39.87497],[-109.051363,39.497674],[-109.051512,39.126095],[-109.054189,38.874984],[-109.059541,38.719888],[-109.060062,38.275489],[-109.041762,38.16469],[-109.041058,37.907236],[-109.041865,37.530726],[-109.04581,37.374993],[-109.045223,36.999084],[-108.620309,36.999287],[-108.249358,36.999015],[-108.000623,37.000001],[-107.420913,37.000005],[-106.877292,37.000139],[-106.869796,36.992426],[-106.201469,36.994122],[-105.62747,36.995679],[-105.1208,36.995428],[-105.000554,36.993264],[-104.338833,36.993535],[-103.733247,36.998016],[-103.002199,37.000104],[-102.814616,37.000783],[-102.698142,36.995149],[-102.04224,36.993083],[-102.041974,37.352613],[-102.041574,37.680436],[-102.044644,38.045532],[-102.045324,38.453647],[-102.045388,38.813392],[-102.048449,39.303138],[-102.050422,39.646048],[-102.051744,40.003078],[-102.051725,40.537839],[-102.051614,41.002377],[-102.556789,41.002219],[-102.865784,41.001988],[-103.497447,41.001635],[-104.053249,41.001406]]]}"/g' {} \; + find ./test/*.js -type f -exec sed -i.old -E 's/"loc":\ \"\{[^}]*\}\"/"loc": "{\"type\":\"Polygon\",\"coordinates\":[[[-104.053249,41.001406],[-104.675999,41.000957],[-104.855273,40.998048],[-105.277138,40.998173],[-105.730421,40.996886],[-106.217573,40.997734],[-106.453859,41.002057],[-106.857773,41.002663],[-107.625624,41.002124],[-108.250649,41.000114],[-108.884138,41.000094],[-109.050076,41.000659],[-109.048044,40.619231],[-109.050946,40.444368],[-109.050615,39.87497],[-109.051363,39.497674],[-109.051512,39.126095],[-109.054189,38.874984],[-109.059541,38.719888],[-109.060062,38.275489],[-109.041762,38.16469],[-109.041058,37.907236],[-109.041865,37.530726],[-109.04581,37.374993],[-109.045223,36.999084],[-108.620309,36.999287],[-108.249358,36.999015],[-108.000623,37.000001],[-107.420913,37.000005],[-106.877292,37.000139],[-106.869796,36.992426],[-106.201469,36.994122],[-105.62747,36.995679],[-105.1208,36.995428],[-105.000554,36.993264],[-104.338833,36.993535],[-103.733247,36.998016],[-103.002199,37.000104],[-102.814616,37.000783],[-102.698142,36.995149],[-102.04224,36.993083],[-102.041974,37.352613],[-102.041574,37.680436],[-102.044644,38.045532],[-102.045324,38.453647],[-102.045388,38.813392],[-102.048449,39.303138],[-102.050422,39.646048],[-102.051744,40.003078],[-102.051725,40.537839],[-102.051614,41.002377],[-102.556789,41.002219],[-102.865784,41.001988],[-103.497447,41.001635],[-104.053249,41.001406]]]}"/g' {} \; find ./test/*.js -type f -exec sed -i.old -E 's/"altmin":(\ )*-*[0-9]+/"altmin":\ 10/g' {} \; find ./test/*.js -type f -exec sed -i.old -E 's/"altmax":(\ )*-*[0-9]+/"altmax":\ 100/g' {} \; find ./test/*.js -type f -exec sed -i.old -E 's/"ageold":(\ )*-*[0-9]+/"ageold":\ 10000/g' {} \; @@ -41,8 +42,8 @@ run_oatt() { find ./test/*.js -type f -exec sed -i.old -E 's/"limit":(\ )*-*[0-9]+/"limit":\ 10/g' {} \; find ./test/*.js -type f -exec sed -i.old -E 's/"offset":(\ )*-*[0-9]+/"offset":\ 0/g' {} \; find ./test/*.js -type f -exec sed -i.old 's/\/[0-9]\{5,\}/\/500/g' {} \; - find ./test/*.js -type f -exec sed -i.old -E 's/"prec":(\ )*[0-9\.]*?/"prec": 1000/g' {} \; - find ./test/*.js -type f -exec sed -i.old -E 's/"proj":(\ )*[0-9\.]*?/"proj": 4326/g' {} \; + find ./test/*.js -type f -exec sed -i.old -E 's/"prec":(\ )*[0-9.]*/"prec": 1000/g' {} \; + find ./test/*.js -type f -exec sed -i.old -E 's/"proj":(\ )*[0-9.]*/"proj": 4326/g' {} \; rm -f ./test/*.old } @@ -53,7 +54,7 @@ run_oatt() { test=0 remote=localhost:3001 - while getopts "htdpa" opt; do + while getopts "htldpa" opt; do case $opt in h) show_help @@ -62,7 +63,10 @@ remote=localhost:3001 t) test=1 ;; - d) + l) + remote=localhost:3005 + ;; + d) remote=api-dev.neotomadb.org ;; p) diff --git a/nodemon.json b/nodemon.json index 670f0939..e7002abd 100755 --- a/nodemon.json +++ b/nodemon.json @@ -2,6 +2,10 @@ "ext": "sql js json yaml", "ignore": [ ".git", - "node_modules/**/node_modules" + "node_modules/**/node_modules", + "test/**", + "public/**", + "openapi.yaml", + "*.old" ] } diff --git a/package.json b/package.json index e4d6c669..536dea2a 100644 --- a/package.json +++ b/package.json @@ -12,6 +12,7 @@ "private": true, "scripts": { "start": "NODE_ENV=production nodemon --legacy-watch app.js", + "dev": "NODE_ENV=development nodemon --legacy-watch app.js", "test": "node ./node_modules/mocha/bin/mocha --config=test/.mocharc.yml --reporter-options reportDir=public,reportFilename=tests", "build:openapi": "(cd ./openapi && node ./scripts/build-openapi.js)", "validate:openapi": "yarn build:openapi && bash genoatt.sh && sleep 4 && bash runmochabatch.sh" @@ -72,5 +73,6 @@ "nodemon": "^3.1.4", "pre-commit": "^1.0.10", "supertest": "^7.2.2" - } + }, + "packageManager": "yarn@4.12.0+sha512.f45ab632439a67f8bc759bf32ead036a1f413287b9042726b7cc4818b7b49e14e9423ba49b18f9e06ea4941c1ad062385b1d8760a8d5091a1a31e5f6219afca8" } diff --git a/public/tests.html b/public/tests.html index 4249c6ca..73f3f4c3 100644 --- a/public/tests.html +++ b/public/tests.html @@ -1,2 +1,2 @@ -Mochawesome Report
\ No newline at end of file +Mochawesome Report
\ No newline at end of file diff --git a/public/tests.json b/public/tests.json index e6e1cdab..2fc6f437 100644 --- a/public/tests.json +++ b/public/tests.json @@ -2,15 +2,15 @@ "stats": { "suites": 157, "tests": 146, - "passes": 146, - "pending": 0, + "passes": 145, + "pending": 1, "failures": 0, - "start": "2026-01-27T22:07:06.094Z", - "end": "2026-01-27T22:09:00.179Z", - "duration": 114085, + "start": "2026-05-11T22:30:29.477Z", + "end": "2026-05-11T22:32:40.178Z", + "duration": 130701, "testsRegistered": 146, "passPercent": 100, - "pendingPercent": 0, + "pendingPercent": 0.684931506849315, "other": 0, "hasOther": false, "skipped": 0, @@ -18,7 +18,7 @@ }, "results": [ { - "uuid": "bd1ba631-f344-4d5b-8064-3aa358e0f750", + "uuid": "6c4e73f7-d18e-4aaa-9583-a20a61ae590d", "title": "", "fullFile": "", "file": "", @@ -37,8 +37,8 @@ "context": null, "code": "checkForUnfulfilledExpectations.call(this);\nrecordedExpects = [];", "err": {}, - "uuid": "929dceaa-c682-4b05-9033-e5af9f3c5bde", - "parentUUID": "bd1ba631-f344-4d5b-8064-3aa358e0f750", + "uuid": "1da40e8c-be76-4bb9-8c85-6d85b5ca48e1", + "parentUUID": "6c4e73f7-d18e-4aaa-9583-a20a61ae590d", "isHook": true, "skipped": false } @@ -46,52 +46,52 @@ "tests": [], "suites": [ { - "uuid": "23d7da9a-d868-4a9b-98da-6e89dfb93527", - "title": "tests for /v2.0/data/datasets/{datasetid}/taxa", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-datasets-{datasetid}-taxa-test.js", - "file": "/test/v2.0-data-datasets-{datasetid}-taxa-test.js", + "uuid": "d3eb79f4-4a72-4044-9f80-daec95a8438a", + "title": "tests for /v2.0/data/datasets_elc", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-datasets_elc-test.js", + "file": "/test/v2.0-data-datasets_elc-test.js", "beforeHooks": [], "afterHooks": [], "tests": [], "suites": [ { - "uuid": "fa105df1-5812-4df0-89cb-232d93c54a26", + "uuid": "88d2cddf-3aea-41fb-af41-7f0ce00b7f3f", "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-datasets-{datasetid}-taxa-test.js", - "file": "/test/v2.0-data-datasets-{datasetid}-taxa-test.js", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-datasets_elc-test.js", + "file": "/test/v2.0-data-datasets_elc-test.js", "beforeHooks": [], "afterHooks": [], "tests": [ { - "title": "should respond 200 for \"Taxa\"", - "fullTitle": "tests for /v2.0/data/datasets/{datasetid}/taxa tests for get should respond 200 for \"Taxa\"", + "title": "should respond 200 for \"A Neotoma datasets object suitable for the EarthLife Consortium API.\"", + "fullTitle": "tests for /v2.0/data/datasets_elc tests for get should respond 200 for \"A Neotoma datasets object suitable for the EarthLife Consortium API.\"", "timedOut": false, - "duration": 663, + "duration": 610, "state": "passed", "speed": "medium", "pass": true, "fail": false, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/datasets/500/taxa', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/datasets_elc', { \n 'qs': {\"siteid\":2955,\"contactid\":12649,\"datasettype\":\"pollen surface sample\",\"altmin\":5054,\"altmax\":8850,\"loc\":\"{\\\"type\\\":\\\"Polygon\\\",\\\"crs\\\":{\\\"type\\\":\\\"name\\\",\\\"properties\\\":{\\\"name\\\":\\\"EPSG:4326\\\"}},\\\"coordinates\\\":[[[13.4,55.92],[13.5,55.92],[13.5,55.95],[13.4,55.95],[13.4,55.92]]]}\",\"ageyoung\":1475645,\"ageold\":6661213,\"ageof\":21496721},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", "err": {}, - "uuid": "554bc454-a9c0-405c-8b3b-9c7648d8fc76", - "parentUUID": "fa105df1-5812-4df0-89cb-232d93c54a26", + "uuid": "ca1fa063-c753-48ed-96c0-f4e9b413e928", + "parentUUID": "88d2cddf-3aea-41fb-af41-7f0ce00b7f3f", "isHook": false, "skipped": false } ], "suites": [], "passes": [ - "554bc454-a9c0-405c-8b3b-9c7648d8fc76" + "ca1fa063-c753-48ed-96c0-f4e9b413e928" ], "failures": [], "pending": [], "skipped": [], - "duration": 663, + "duration": 610, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 } ], "passes": [], @@ -101,55 +101,55 @@ "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 }, { - "uuid": "0c39bcc8-22ef-4abd-94af-1377b2418601", - "title": "tests for /v2.0/apps/depositionalenvironments/root", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-apps-depositionalenvironments-root-test.js", - "file": "/test/v2.0-apps-depositionalenvironments-root-test.js", + "uuid": "e59eac14-7de4-4596-bfb3-16cda26a601a", + "title": "tests for /v2.0/data/datasets/{datasetid}/publications", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-datasets-{datasetid}-publications-test.js", + "file": "/test/v2.0-data-datasets-{datasetid}-publications-test.js", "beforeHooks": [], "afterHooks": [], "tests": [], "suites": [ { - "uuid": "35af41ef-6270-4529-8770-b603df11c4b4", + "uuid": "5976fea5-2918-423b-bd26-16dfd8430eb6", "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-apps-depositionalenvironments-root-test.js", - "file": "/test/v2.0-apps-depositionalenvironments-root-test.js", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-datasets-{datasetid}-publications-test.js", + "file": "/test/v2.0-data-datasets-{datasetid}-publications-test.js", "beforeHooks": [], "afterHooks": [], "tests": [ { - "title": "should respond 200 for \"A table of Neotoma collection types.\"", - "fullTitle": "tests for /v2.0/apps/depositionalenvironments/root tests for get should respond 200 for \"A table of Neotoma collection types.\"", + "title": "should respond 200 for \"Publication\"", + "fullTitle": "tests for /v2.0/data/datasets/{datasetid}/publications tests for get should respond 200 for \"Publication\"", "timedOut": false, - "duration": 82, + "duration": 71, "state": "passed", "speed": "fast", "pass": true, "fail": false, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/apps/depositionalenvironments/root', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/datasets/89938284/publications', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", "err": {}, - "uuid": "ff5e5302-2f48-49d1-95fd-707e505bb0f8", - "parentUUID": "35af41ef-6270-4529-8770-b603df11c4b4", + "uuid": "a67d0e24-1a08-4738-a537-f4f50d01bb00", + "parentUUID": "5976fea5-2918-423b-bd26-16dfd8430eb6", "isHook": false, "skipped": false } ], "suites": [], "passes": [ - "ff5e5302-2f48-49d1-95fd-707e505bb0f8" + "a67d0e24-1a08-4738-a537-f4f50d01bb00" ], "failures": [], "pending": [], "skipped": [], - "duration": 82, + "duration": 71, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 } ], "passes": [], @@ -159,55 +159,209 @@ "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 }, { - "uuid": "4001faff-a965-40d4-8668-907e0165d17b", - "title": "tests for /v2.0/data/sites/{siteid}/datasets", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-sites-{siteid}-datasets-test.js", - "file": "/test/v2.0-data-sites-{siteid}-datasets-test.js", + "uuid": "238f5601-ebbb-43e0-903d-5fbd50cf2b5e", + "title": "Get chronology data by datasetid:", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/chronologies.js", + "file": "/test/chronologies.js", + "beforeHooks": [], + "afterHooks": [], + "tests": [ + { + "title": "A call to two datasets returns two datasets of data:", + "fullTitle": "Get chronology data by datasetid: A call to two datasets returns two datasets of data:", + "timedOut": false, + "duration": 0, + "state": "passed", + "speed": "fast", + "pass": true, + "fail": false, + "pending": false, + "context": null, + "code": "api.get('v2.0/data/datasets/684,1001/chronologies')\n .set('Accept', 'application/json')\n .expect(function(res) {\n return res.body['data'].length === 4;\n })\n .expect(200, done());", + "err": {}, + "uuid": "562a930f-c517-4934-9329-c952f531fc94", + "parentUUID": "238f5601-ebbb-43e0-903d-5fbd50cf2b5e", + "isHook": false, + "skipped": false + } + ], + "suites": [], + "passes": [ + "562a930f-c517-4934-9329-c952f531fc94" + ], + "failures": [], + "pending": [], + "skipped": [], + "duration": 0, + "root": false, + "rootEmpty": false, + "_timeout": 5000 + }, + { + "uuid": "c756763c-5d91-4fad-a585-679eb5759070", + "title": "Get site data any number of ways:", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/sites.js", + "file": "/test/sites.js", + "beforeHooks": [], + "afterHooks": [], + "tests": [ + { + "title": "Get site by singular id & return same id:", + "fullTitle": "Get site data any number of ways: Get site by singular id & return same id:", + "timedOut": false, + "duration": 87, + "state": "passed", + "speed": "fast", + "pass": true, + "fail": false, + "pending": false, + "context": null, + "code": "api.get('v2.0/data/sites/12')\n .set('Accept', 'application/json')\n .end((err, res) => {\n if (err) return done(err);\n expect(res.body['data'][0]['siteid'] === 12 & Object.keys(res.body['data'][0]).length > 0);\n done();\n });", + "err": {}, + "uuid": "c60b26ba-b0cb-48e7-8af6-3100542284b7", + "parentUUID": "c756763c-5d91-4fad-a585-679eb5759070", + "isHook": false, + "skipped": false + }, + { + "title": "Get site by altitude:", + "fullTitle": "Get site data any number of ways: Get site by altitude:", + "timedOut": false, + "duration": 1284, + "state": "passed", + "speed": "slow", + "pass": true, + "fail": false, + "pending": false, + "context": null, + "code": "api.get('v2.0/data/sites/?altmax=5000&altmin=3000')\n .set('Accept', 'application/json')\n .end((err, res) => {\n if (err) return done(err);\n expect(Object.keys(res.body['data'][0]).length > 0);\n done();\n });", + "err": {}, + "uuid": "d813102e-95ff-40e0-828c-e0b9951a0ea7", + "parentUUID": "c756763c-5d91-4fad-a585-679eb5759070", + "isHook": false, + "skipped": false + }, + { + "title": "Break sites by flipping altitudes:", + "fullTitle": "Get site data any number of ways: Break sites by flipping altitudes:", + "timedOut": false, + "duration": 2, + "state": "passed", + "speed": "fast", + "pass": true, + "fail": false, + "pending": false, + "context": null, + "code": "api.get('v2.0/data/sites/?altmax=3000&altmin=5000')\n .set('Accept', 'application/json')\n .end((err, res) => {\n if (err) return done(err);\n expect(res.body.status === 'failure');\n done();\n });", + "err": {}, + "uuid": "10fd83d5-f2ca-4b6e-aeeb-eeb8443310ce", + "parentUUID": "c756763c-5d91-4fad-a585-679eb5759070", + "isHook": false, + "skipped": false + }, + { + "title": "Break sites by passing invalid siteid:", + "fullTitle": "Get site data any number of ways: Break sites by passing invalid siteid:", + "timedOut": false, + "duration": 71, + "state": "passed", + "speed": "fast", + "pass": true, + "fail": false, + "pending": false, + "context": null, + "code": "api.get('v2.0/data/sites/abcd')\n .set('Accept', 'application/json')\n .end((err, res) => {\n if (err) return done(err);\n expect(500, done);\n done();\n });", + "err": {}, + "uuid": "69e69ff8-c72b-411b-ac5c-367476547241", + "parentUUID": "c756763c-5d91-4fad-a585-679eb5759070", + "isHook": false, + "skipped": false + }, + { + "title": "Get site by contact information for multiple authors:", + "fullTitle": "Get site data any number of ways: Get site by contact information for multiple authors:", + "timedOut": false, + "duration": 144, + "state": "passed", + "speed": "fast", + "pass": true, + "fail": false, + "pending": false, + "context": null, + "code": "api.get('v2.0/data/contacts/12,13/sites')\n .set('Accept', 'application/json')\n .expect(function(res) {\n return Object.keys(res.body['data'][0]).length === 2;\n })\n .expect(200, done);", + "err": {}, + "uuid": "dfe7d9b2-1490-4602-b3f5-cc8352970d6e", + "parentUUID": "c756763c-5d91-4fad-a585-679eb5759070", + "isHook": false, + "skipped": false + } + ], + "suites": [], + "passes": [ + "c60b26ba-b0cb-48e7-8af6-3100542284b7", + "d813102e-95ff-40e0-828c-e0b9951a0ea7", + "10fd83d5-f2ca-4b6e-aeeb-eeb8443310ce", + "69e69ff8-c72b-411b-ac5c-367476547241", + "dfe7d9b2-1490-4602-b3f5-cc8352970d6e" + ], + "failures": [], + "pending": [], + "skipped": [], + "duration": 1588, + "root": false, + "rootEmpty": false, + "_timeout": 5000 + }, + { + "uuid": "ef8cf4e2-04ec-4a8e-8c26-37f1753a6e6f", + "title": "tests for /v2.0/data/publications", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-publications-test.js", + "file": "/test/v2.0-data-publications-test.js", "beforeHooks": [], "afterHooks": [], "tests": [], "suites": [ { - "uuid": "977de630-3d73-41d5-b0bb-d80764df9766", + "uuid": "f919e262-5233-4107-b500-77a28bc53728", "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-sites-{siteid}-datasets-test.js", - "file": "/test/v2.0-data-sites-{siteid}-datasets-test.js", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-publications-test.js", + "file": "/test/v2.0-data-publications-test.js", "beforeHooks": [], "afterHooks": [], "tests": [ { - "title": "should respond 200 for \"An array of datasets.\"", - "fullTitle": "tests for /v2.0/data/sites/{siteid}/datasets tests for get should respond 200 for \"An array of datasets.\"", + "title": "should respond 200 for \"A list of publications.\"", + "fullTitle": "tests for /v2.0/data/publications tests for get should respond 200 for \"A list of publications.\"", "timedOut": false, - "duration": 119, + "duration": 81, "state": "passed", "speed": "fast", "pass": true, "fail": false, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/sites/2130/datasets', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/publications', { \n 'qs': {\"publicationid\":2771,\"datasetid\":5243471,\"siteid\":33926,\"familyname\":\"PbkSzxq\",\"pubtype\":\"Legacy\",\"year\":1973,\"search\":\"dolor sed consequat proident nisi\",\"limit\":2826,\"offset\":52603467},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", "err": {}, - "uuid": "1a382bc8-32d4-403c-8715-ccd271084150", - "parentUUID": "977de630-3d73-41d5-b0bb-d80764df9766", + "uuid": "7aeb7eee-cd9a-439f-b334-3ccda13b1866", + "parentUUID": "f919e262-5233-4107-b500-77a28bc53728", "isHook": false, "skipped": false } ], "suites": [], "passes": [ - "1a382bc8-32d4-403c-8715-ccd271084150" + "7aeb7eee-cd9a-439f-b334-3ccda13b1866" ], "failures": [], "pending": [], "skipped": [], - "duration": 119, + "duration": 81, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 } ], "passes": [], @@ -217,28 +371,28 @@ "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 }, { - "uuid": "ea82cb84-bb54-459e-8abc-03e63ec0ae04", - "title": "tests for /v2.0/data/contacts", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-contacts-test.js", - "file": "/test/v2.0-data-contacts-test.js", + "uuid": "0544abb1-9d22-4e5a-a8d6-8686d66ac86b", + "title": "tests for /v2.0/data/downloads/{datasetid}", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-downloads-{datasetid}-test.js", + "file": "/test/v2.0-data-downloads-{datasetid}-test.js", "beforeHooks": [], "afterHooks": [], "tests": [], "suites": [ { - "uuid": "429526eb-aa66-4240-919f-01061cb61d07", + "uuid": "3c3551e0-e3f5-4416-9981-29c522289a0c", "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-contacts-test.js", - "file": "/test/v2.0-data-contacts-test.js", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-downloads-{datasetid}-test.js", + "file": "/test/v2.0-data-downloads-{datasetid}-test.js", "beforeHooks": [], "afterHooks": [], "tests": [ { - "title": "should respond 200 for \"contact\"", - "fullTitle": "tests for /v2.0/data/contacts tests for get should respond 200 for \"contact\"", + "title": "should respond 200 for \"Returned download object.\"", + "fullTitle": "tests for /v2.0/data/downloads/{datasetid} tests for get should respond 200 for \"Returned download object.\"", "timedOut": false, "duration": 86, "state": "passed", @@ -247,17 +401,17 @@ "fail": false, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/contacts', { \n 'qs': {\"contactid\":16344,\"familyname\":\"va\",\"contactname\":\"CRiRvaalLDp\",\"contactstatus\":\"defunct\",\"limit\": 10,\"offset\": 0},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/downloads/65919985', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", "err": {}, - "uuid": "e401ff61-c452-4028-9026-06a11f68efd5", - "parentUUID": "429526eb-aa66-4240-919f-01061cb61d07", + "uuid": "9c95725f-44f0-4295-855b-8fddcac7672a", + "parentUUID": "3c3551e0-e3f5-4416-9981-29c522289a0c", "isHook": false, "skipped": false } ], "suites": [], "passes": [ - "e401ff61-c452-4028-9026-06a11f68efd5" + "9c95725f-44f0-4295-855b-8fddcac7672a" ], "failures": [], "pending": [], @@ -265,7 +419,7 @@ "duration": 86, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 } ], "passes": [], @@ -275,322 +429,171 @@ "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 }, { - "uuid": "9da5c587-3645-4e43-991f-263a286626c6", - "title": "Get occurrence data any number of ways:", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/occurrence.js", - "file": "/test/occurrence.js", + "uuid": "28df18e5-3322-4ab8-badf-413f3add30a9", + "title": "tests for /v2.0/data/pollen", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-pollen-test.js", + "file": "/test/v2.0-data-pollen-test.js", "beforeHooks": [], "afterHooks": [], - "tests": [ + "tests": [], + "suites": [ { - "title": "Get occurrence by singular id & return same id:", - "fullTitle": "Get occurrence data any number of ways: Get occurrence by singular id & return same id:", - "timedOut": false, - "duration": 0, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, - "pending": false, - "context": null, - "code": "api.get('v2.0/data/occurrences/12')\n .set('Accept', 'application/json')\n .expect(function(res) {\n return Object.keys(res.body['data'][0]).length > 0;\n })\n .expect(function(res) {\n return res.body['data'][0]['occurrence'] === 12;\n })\n .expect(200);\ndone();", - "err": {}, - "uuid": "833e3d3b-28f3-40a7-8ac0-36d25080f97c", - "parentUUID": "9da5c587-3645-4e43-991f-263a286626c6", - "isHook": false, - "skipped": false - }, + "uuid": "8adafcf2-7af0-4f78-857d-98ace1f00b37", + "title": "tests for get", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-pollen-test.js", + "file": "/test/v2.0-data-pollen-test.js", + "beforeHooks": [], + "afterHooks": [], + "tests": [ + { + "title": "should respond 200 for \"A record of all pollen samples in time/space for a particular taxon.\"", + "fullTitle": "tests for /v2.0/data/pollen tests for get should respond 200 for \"A record of all pollen samples in time/space for a particular taxon.\"", + "timedOut": false, + "duration": 1, + "state": "passed", + "speed": "fast", + "pass": true, + "fail": false, + "pending": false, + "context": null, + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/pollen', { \n 'qs': {\"taxonname\":\"sunt\",\"taxonid\":46220,\"siteid\":2781,\"sitename\":\"deserunt eiusmod quis pariatur veniam\",\"datasettype\":\"plant macrofossil\",\"altmin\": 10,\"altmax\":4344,\"loc\":\"{\\\"type\\\":\\\"Polygon\\\",\\\"crs\\\":{\\\"type\\\":\\\"name\\\",\\\"properties\\\":{\\\"name\\\":\\\"EPSG:4326\\\"}},\\\"coordinates\\\":[[[13.4,55.92],[13.5,55.92],[13.5,55.95],[13.4,55.95],[13.4,55.92]]]}\",\"ageof\":9134502,\"ageyoung\":22988199,\"ageold\":2080845,\"limit\":7032,\"offset\":68196321},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "err": {}, + "uuid": "cc7d130a-f699-4f24-aff3-a28555274e6a", + "parentUUID": "8adafcf2-7af0-4f78-857d-98ace1f00b37", + "isHook": false, + "skipped": false + } + ], + "suites": [], + "passes": [ + "cc7d130a-f699-4f24-aff3-a28555274e6a" + ], + "failures": [], + "pending": [], + "skipped": [], + "duration": 1, + "root": false, + "rootEmpty": false, + "_timeout": 900000 + } + ], + "passes": [], + "failures": [], + "pending": [], + "skipped": [], + "duration": 0, + "root": false, + "rootEmpty": false, + "_timeout": 900000 + }, + { + "uuid": "5d4e250e-f1d7-4474-af16-5cb542175815", + "title": "tests for /v2.0/apps/taxagrouptypes", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-apps-taxagrouptypes-test.js", + "file": "/test/v2.0-apps-taxagrouptypes-test.js", + "beforeHooks": [], + "afterHooks": [], + "tests": [], + "suites": [ { - "title": "Get the Flyover test call:", - "fullTitle": "Get occurrence data any number of ways: Get the Flyover test call:", - "timedOut": false, - "duration": 0, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, - "pending": false, - "context": null, - "code": "api.get('v2.0/data/occurrences?taxonname=rhinocerotidae,megacerops,moeritherium,ceratogaulus,gomphotherium,deinotherium,condylarthra,paraceratherium,mesonychia,pantodonta,hyaenodon,thylacosmilus,glyptodon,castoroides,toxodon,megatherium,arctodus,smilodon,mammuthus,mammut,coelodonta,megaloceras,gigantopithecus,phlegethontia,temnospondyli,lepospondyli,ichthyosauria,sauropterygia,mosasauroidea,pterosauromorpha,titanoboa,megalania,placodus,tanystropheidae,hyperodapedon,stagonolepis,scutosaurus,pareiasauria,archelon,stupendemys,protostega,placodermi,leedsichthys,onychodontiformes,acanthostega,ichthyostega,crassigyrinus,ornithosuchus,erpetosuchidae,protosuchus,dakosaurus,geosaurus,deinosuchus&lower=true&limit=999999&loc=POLYGON((-122.56 39.94,-115.21 41.96,-107.99 43.42,-100.51 44.41,-92.85 44.91,-83.49 44.84,-74.25 44.02,-70.19 43.38,-69.36 42.75,-69.02 41.76,-69.13 41.07,-69.5 40.47,-70.07 40.06,-70.75 39.9,-78.36 40.86,-85.79 41.33,-93.27 41.3,-100.68 40.78,-105.86 40.12,-111.42 39.12,-116.79 37.86,-122.28 36.29,-122.98 36.35,-123.61 36.67,-124.06 37.21,-124.27 37.88,-124.21 38.58,-123.89 39.2,-123.35 39.65,-122.56 39.94))')\n .set('Accept', 'application/json')\n .expect(function(res) {\n return Object.keys(res.body['data'][0]).length > 0;\n })\n .expect(200);\ndone();", - "err": {}, - "uuid": "da24fb62-a811-4bd2-b9fb-e76c215f8cce", - "parentUUID": "9da5c587-3645-4e43-991f-263a286626c6", - "isHook": false, - "skipped": false - }, - { - "title": "Failing Canis test works:", - "fullTitle": "Get occurrence data any number of ways: Failing Canis test works:", - "timedOut": false, - "duration": 0, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, - "pending": false, - "context": null, - "code": "// This casuses timeout fails for some reason. It's frustrating.\napi.get('v2.0/data/occurrences?taxonname=Canis&lower=true&limit=999999')\n .set('Accept', 'application/json')\n .expect(function(res) {\n return Object.keys(res.body['data'][0]).length > 0;\n })\n .expect(200);\ndone();", - "err": {}, - "uuid": "c2dd92e3-5193-49e9-ab87-fe1c36c553f8", - "parentUUID": "9da5c587-3645-4e43-991f-263a286626c6", - "isHook": false, - "skipped": false - }, - { - "title": "Get occurrence by taxon:", - "fullTitle": "Get occurrence data any number of ways: Get occurrence by taxon:", - "timedOut": false, - "duration": 0, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, - "pending": false, - "context": null, - "code": "api.get('v2.0/data/taxa/12/occurrences')\n .set('Accept', 'application/json')\n .expect(function(res) {\n return Object.keys(res.body['data'][0]).length > 0;\n })\n .expect(200);\ndone();", - "err": {}, - "uuid": "f9de6f16-a516-4120-a04f-840adebd3c12", - "parentUUID": "9da5c587-3645-4e43-991f-263a286626c6", - "isHook": false, - "skipped": false - }, - { - "title": "Break occurrences by flipping altitudes:", - "fullTitle": "Get occurrence data any number of ways: Break occurrences by flipping altitudes:", - "timedOut": false, - "duration": 0, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, - "pending": false, - "context": null, - "code": "api.get('v2.0/data/occurrences/?altmax=3000&altmin=5000')\n .set('Accept', 'application/json')\n .expect(500);\ndone();", - "err": {}, - "uuid": "56b03599-76db-4106-b8a9-4dd6523cb4f1", - "parentUUID": "9da5c587-3645-4e43-991f-263a286626c6", - "isHook": false, - "skipped": false - }, - { - "title": "Break occurrences by flipping ages:", - "fullTitle": "Get occurrence data any number of ways: Break occurrences by flipping ages:", - "timedOut": false, - "duration": 0, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, - "pending": false, - "context": null, - "code": "api.get('v2.0/data/occurrences/?ageyoung=5000&ageold=3000')\n .set('Accept', 'application/json')\n .expect(500);\ndone();", - "err": {}, - "uuid": "2f6ff9dc-b370-48d3-8db0-72557258b051", - "parentUUID": "9da5c587-3645-4e43-991f-263a286626c6", - "isHook": false, - "skipped": false - }, - { - "title": "Occurrences filter by age:", - "fullTitle": "Get occurrence data any number of ways: Occurrences filter by age:", - "timedOut": false, - "duration": 0, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, - "pending": false, - "context": null, - "code": "api.get('v2.0/data/occurrences/?ageyoung=3000&ageold=5000')\n .set('Accept', 'application/json')\n .expect(function(res) {\n })\n .expect(200);\ndone();", - "err": {}, - "uuid": "5f0c26e7-5afe-4acf-891b-596282dca5d7", - "parentUUID": "9da5c587-3645-4e43-991f-263a286626c6", - "isHook": false, - "skipped": false - }, - { - "title": "Get occurrences with comma separated fields:", - "fullTitle": "Get occurrence data any number of ways: Get occurrences with comma separated fields:", - "timedOut": false, - "duration": 0, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, - "pending": false, - "context": null, - "code": "api.get('v2.0/data/occurrences/' +\n '?siteid=12,13,14,15&taxonname=Betula&limit=200')\n .set('Accept', 'application/json')\n .expect(function(res) {\n const allSite = res.body['data'];\n const siteids = [];\n for (let i = 0; i < allSite.length; i++) {\n siteids.push(allSite[i]['site']['siteid']);\n };\n const uniqueSites = Array.from(new Set(siteids)).sort(function(a, b) {\n return a - b;\n });\n return (uniqueSites.every((item) => [12, 13, 14, 15].includes(item)));\n })\n .expect(200);\ndone();", - "err": {}, - "uuid": "0b96098e-353c-4266-9432-aeea0cd95a24", - "parentUUID": "9da5c587-3645-4e43-991f-263a286626c6", - "isHook": false, - "skipped": false - }, - { - "title": "Get occurrences with comma separated taxa:", - "fullTitle": "Get occurrence data any number of ways: Get occurrences with comma separated taxa:", - "timedOut": false, - "duration": 0, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, - "pending": false, - "context": null, - "code": "api.get('v2.0/data/occurrences/?taxonname=Picea,Abies&limit=25')\n .set('Accept', 'application/json')\n .expect(function(res) {\n return (res.body.data.length > 0);\n })\n .expect(200);\ndone();", - "err": {}, - "uuid": "26b74915-fe25-401e-8fc2-3ad01a027ddc", - "parentUUID": "9da5c587-3645-4e43-991f-263a286626c6", - "isHook": false, - "skipped": false - }, - { - "title": "Get hierarchical occurrences with comma separated taxa:", - "fullTitle": "Get occurrence data any number of ways: Get hierarchical occurrences with comma separated taxa:", - "timedOut": false, - "duration": 0, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, - "pending": false, - "context": null, - "code": "api.get('v2.0/data/occurrences/?taxonname=Picea,Abies&limit=25&lower=true')\n .set('Accept', 'application/json')\n .expect(function(res) {\n return (res.body.data.length > 0);\n })\n .expect(200);\ndone();", - "err": {}, - "uuid": "efa56cf5-e826-4104-b972-0d272df223ca", - "parentUUID": "9da5c587-3645-4e43-991f-263a286626c6", - "isHook": false, - "skipped": false - }, - { - "title": "Get occurrences returns lower taxa:", - "fullTitle": "Get occurrence data any number of ways: Get occurrences returns lower taxa:", - "timedOut": false, - "duration": 0, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, - "pending": false, - "context": null, - "code": "api.get('v2.0/data/occurrences/?taxonname=Myrica&lower=true&limit=200')\n .set('Accept', 'application/json')\n .expect(function(res) {\n const allTaxa = res.body['data'];\n const taxaids = [];\n for (let i = 0; i < allTaxa.length; i++) {\n taxaids.push(allTaxa[i]['sample']['taxonname']);\n };\n const uniqueTaxa = Array.from(new Set(taxaids)).sort();\n return uniqueTaxa.length > 1;\n })\n .expect(200);\ndone();", - "err": {}, - "uuid": "63e9cfb4-cb78-49ac-a561-e017077a4e15", - "parentUUID": "9da5c587-3645-4e43-991f-263a286626c6", - "isHook": false, - "skipped": false - }, - { - "title": "Get occurrences with mammals and lower taxa works:", - "fullTitle": "Get occurrence data any number of ways: Get occurrences with mammals and lower taxa works:", - "timedOut": false, - "duration": 0, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, - "pending": false, - "context": null, - "code": "api.get('v2.0/data/occurrences/?taxonname=Homo&lower=true&limit=25')\n .set('Accept', 'application/json')\n .expect(function(res) {\n const allTaxa = res.body['data'];\n const taxaids = [];\n for (let i = 0; i < allTaxa.length; i++) {\n taxaids.push(allTaxa[i]['sample']['taxonname']);\n };\n const uniqueTaxa = Array.from(new Set(taxaids)).sort();\n return uniqueTaxa.length > 1 & allTaxa.length > 0;\n })\n .expect(200);\ndone();", - "err": {}, - "uuid": "95408cc9-f9ec-4c4c-912d-6c615b36fd73", - "parentUUID": "9da5c587-3645-4e43-991f-263a286626c6", - "isHook": false, - "skipped": false - }, - { - "title": "Get occurrences using taxon and age bounds:", - "fullTitle": "Get occurrence data any number of ways: Get occurrences using taxon and age bounds:", - "timedOut": false, - "duration": 0, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, - "pending": false, - "context": null, - "code": "api.get('v2.0/data/occurrences/?ageyoung=2000&ageold=3000&taxonname=Pinus')\n .set('Accept', 'application/json')\n .expect(function(res) {\n return Object.keys(res.body['data'][0]).length > 0;\n })\n .expect(200);\ndone();", - "err": {}, - "uuid": "d938ed9f-19c4-4ca1-b71f-27876f3f11ae", - "parentUUID": "9da5c587-3645-4e43-991f-263a286626c6", - "isHook": false, - "skipped": false + "uuid": "d6b2f8d4-083d-40a4-b8a9-8ead10c469a0", + "title": "tests for get", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-apps-taxagrouptypes-test.js", + "file": "/test/v2.0-apps-taxagrouptypes-test.js", + "beforeHooks": [], + "afterHooks": [], + "tests": [ + { + "title": "should respond 200 for \"A table of Neotoma collection types.\"", + "fullTitle": "tests for /v2.0/apps/taxagrouptypes tests for get should respond 200 for \"A table of Neotoma collection types.\"", + "timedOut": false, + "duration": 133, + "state": "passed", + "speed": "fast", + "pass": true, + "fail": false, + "pending": false, + "context": null, + "code": "var response = request('get', 'http://localhost:3001/v2.0/apps/taxagrouptypes', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "err": {}, + "uuid": "8526eb23-1cae-4615-ac1b-b8f371cc23cc", + "parentUUID": "d6b2f8d4-083d-40a4-b8a9-8ead10c469a0", + "isHook": false, + "skipped": false + } + ], + "suites": [], + "passes": [ + "8526eb23-1cae-4615-ac1b-b8f371cc23cc" + ], + "failures": [], + "pending": [], + "skipped": [], + "duration": 133, + "root": false, + "rootEmpty": false, + "_timeout": 900000 } ], - "suites": [], - "passes": [ - "833e3d3b-28f3-40a7-8ac0-36d25080f97c", - "da24fb62-a811-4bd2-b9fb-e76c215f8cce", - "c2dd92e3-5193-49e9-ab87-fe1c36c553f8", - "f9de6f16-a516-4120-a04f-840adebd3c12", - "56b03599-76db-4106-b8a9-4dd6523cb4f1", - "2f6ff9dc-b370-48d3-8db0-72557258b051", - "5f0c26e7-5afe-4acf-891b-596282dca5d7", - "0b96098e-353c-4266-9432-aeea0cd95a24", - "26b74915-fe25-401e-8fc2-3ad01a027ddc", - "efa56cf5-e826-4104-b972-0d272df223ca", - "63e9cfb4-cb78-49ac-a561-e017077a4e15", - "95408cc9-f9ec-4c4c-912d-6c615b36fd73", - "d938ed9f-19c4-4ca1-b71f-27876f3f11ae" - ], + "passes": [], "failures": [], "pending": [], "skipped": [], "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 30000 + "_timeout": 900000 }, { - "uuid": "4fccc025-337d-46c3-93cf-54ce79cc559c", - "title": "tests for /v1.5/data/downloads/{datasetid}", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v1.5-data-downloads-{datasetid}-test.js", - "file": "/test/v1.5-data-downloads-{datasetid}-test.js", + "uuid": "d4c11508-7e58-4eb7-8aff-c7816cd2c920", + "title": "tests for /v2.0/apps/authorpis", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-apps-authorpis-test.js", + "file": "/test/v2.0-apps-authorpis-test.js", "beforeHooks": [], "afterHooks": [], "tests": [], "suites": [ { - "uuid": "10dc3426-2c7f-4d14-9a0f-368a094fbe8c", + "uuid": "23b227a2-34d3-459e-a173-e2ba22e7b789", "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v1.5-data-downloads-{datasetid}-test.js", - "file": "/test/v1.5-data-downloads-{datasetid}-test.js", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-apps-authorpis-test.js", + "file": "/test/v2.0-apps-authorpis-test.js", "beforeHooks": [], "afterHooks": [], "tests": [ { - "title": "should respond 200 for \"Returned download object.\"", - "fullTitle": "tests for /v1.5/data/downloads/{datasetid} tests for get should respond 200 for \"Returned download object.\"", + "title": "should respond 200 for \"A table of Neotoma collection types.\"", + "fullTitle": "tests for /v2.0/apps/authorpis tests for get should respond 200 for \"A table of Neotoma collection types.\"", "timedOut": false, - "duration": 725, + "duration": 1716, "state": "passed", - "speed": "medium", + "speed": "slow", "pass": true, "fail": false, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v1.5/data/downloads/500', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "code": "var response = request('get', 'http://localhost:3001/v2.0/apps/authorpis', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", "err": {}, - "uuid": "8006e50c-87ad-413f-af3c-bee0da55d183", - "parentUUID": "10dc3426-2c7f-4d14-9a0f-368a094fbe8c", + "uuid": "a7aab7e7-698f-4db9-a292-84b2027fecd3", + "parentUUID": "23b227a2-34d3-459e-a173-e2ba22e7b789", "isHook": false, "skipped": false } ], "suites": [], "passes": [ - "8006e50c-87ad-413f-af3c-bee0da55d183" + "a7aab7e7-698f-4db9-a292-84b2027fecd3" ], "failures": [], "pending": [], "skipped": [], - "duration": 725, + "duration": 1716, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 } ], "passes": [], @@ -600,55 +603,55 @@ "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 }, { - "uuid": "58275220-c084-4a34-9245-cd1ec93a16fd", - "title": "tests for /v1.5/data/occurrence/{occurrenceid}", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v1.5-data-occurrence-{occurrenceid}-test.js", - "file": "/test/v1.5-data-occurrence-{occurrenceid}-test.js", + "uuid": "3617d592-9ad8-4240-9f85-db5c5ec26a49", + "title": "tests for /v2.0/data/publications/{publicationid}", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-publications-{publicationid}-test.js", + "file": "/test/v2.0-data-publications-{publicationid}-test.js", "beforeHooks": [], "afterHooks": [], "tests": [], "suites": [ { - "uuid": "7100b788-0840-4035-9583-9242275535ca", + "uuid": "da7af6d4-c602-42a8-9d81-91ebf3c7b552", "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v1.5-data-occurrence-{occurrenceid}-test.js", - "file": "/test/v1.5-data-occurrence-{occurrenceid}-test.js", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-publications-{publicationid}-test.js", + "file": "/test/v2.0-data-publications-{publicationid}-test.js", "beforeHooks": [], "afterHooks": [], "tests": [ { - "title": "should respond 200 for \"A single occurrence object.\"", - "fullTitle": "tests for /v1.5/data/occurrence/{occurrenceid} tests for get should respond 200 for \"A single occurrence object.\"", + "title": "should respond 200 for \"A list of publications.\"", + "fullTitle": "tests for /v2.0/data/publications/{publicationid} tests for get should respond 200 for \"A list of publications.\"", "timedOut": false, - "duration": 85, + "duration": 68, "state": "passed", "speed": "fast", "pass": true, "fail": false, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v1.5/data/occurrence/500', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/publications/11897', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", "err": {}, - "uuid": "86b3580e-6d2c-4d37-918e-5b1988187bf8", - "parentUUID": "7100b788-0840-4035-9583-9242275535ca", + "uuid": "ca03ad21-2e48-42d0-b826-c3243ea14134", + "parentUUID": "da7af6d4-c602-42a8-9d81-91ebf3c7b552", "isHook": false, "skipped": false } ], "suites": [], "passes": [ - "86b3580e-6d2c-4d37-918e-5b1988187bf8" + "ca03ad21-2e48-42d0-b826-c3243ea14134" ], "failures": [], "pending": [], "skipped": [], - "duration": 85, + "duration": 68, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 } ], "passes": [], @@ -658,227 +661,55 @@ "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 }, { - "uuid": "3ef0aa79-2024-459e-8337-0fbec5497efd", - "title": "Get contact data:", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/contacts.js", - "file": "/test/contacts.js", + "uuid": "71d0e4e8-1c18-49ae-bf27-9c3d68dbf41e", + "title": "tests for /v2.0/apps/keywords", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-apps-keywords-test.js", + "file": "/test/v2.0-apps-keywords-test.js", "beforeHooks": [], "afterHooks": [], - "tests": [ + "tests": [], + "suites": [ { - "title": "The default limit of 25 should be reached for contact data:", - "fullTitle": "Get contact data: The default limit of 25 should be reached for contact data:", - "timedOut": false, - "duration": 84, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, - "pending": false, - "context": null, - "code": "api.get('v2.0/data/contacts/?contactstatus=retired')\n .set('Accept', 'application/json')\n .end(function(err, res) {\n if (err) return done(err);\n assert.strictEqual(res.body.data.length, 25);\n done();\n });", - "err": {}, - "uuid": "0dee4310-24c5-49d7-b1ef-6661602b5b41", - "parentUUID": "3ef0aa79-2024-459e-8337-0fbec5497efd", - "isHook": false, - "skipped": false - }, - { - "title": "The example in the swagger should return an object:", - "fullTitle": "Get contact data: The example in the swagger should return an object:", - "timedOut": false, - "duration": 89, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, - "pending": false, - "context": null, - "code": "api.get('v2.0/data/contacts?familyname=Grimm&contactstatus=active&limit=25')\n .set('Accept', 'application/json')\n .end(function(err, res) {\n if (err) return done(err);\n assert.strictEqual(res.body.data[0]['familyname'], 'Grimm');\n done();\n });", - "err": {}, - "uuid": "54d5125d-cd29-49b4-b8e0-7fd25fde3824", - "parentUUID": "3ef0aa79-2024-459e-8337-0fbec5497efd", - "isHook": false, - "skipped": false - }, - { - "title": "Contact queries should be case insensitive:", - "fullTitle": "Get contact data: Contact queries should be case insensitive:", - "timedOut": false, - "duration": 85, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, - "pending": false, - "context": null, - "code": "api.get('v2.0/data/contacts/?contactstatus=Retired')\n .set('Accept', 'application/json')\n .end(function(err, res) {\n if (err) return done(err);\n assert.strictEqual(res.body.data.length, 25);\n done();\n });", - "err": {}, - "uuid": "d42b0c2f-9e5b-4a5e-a9cd-6acf8a7a745c", - "parentUUID": "3ef0aa79-2024-459e-8337-0fbec5497efd", - "isHook": false, - "skipped": false - }, - { - "title": "Changing the limit should change the number of contacts retrieved:", - "fullTitle": "Get contact data: Changing the limit should change the number of contacts retrieved:", - "timedOut": false, - "duration": 103, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, - "pending": false, - "context": null, - "code": "api.get('v2.0/data/contacts/?status=retired&limit=30')\n .set('Accept', 'application/json')\n .end(function(err, res) {\n if (err) return done(err);\n assert.strictEqual(res.body.data.length, 30);\n done();\n });", - "err": {}, - "uuid": "ab7dbac4-2c83-42ae-9d22-5e519a55ba56", - "parentUUID": "3ef0aa79-2024-459e-8337-0fbec5497efd", - "isHook": false, - "skipped": false - }, - { - "title": "A single contact (12) should be returned.", - "fullTitle": "Get contact data: A single contact (12) should be returned.", - "timedOut": false, - "duration": 82, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, - "pending": false, - "context": null, - "code": "api.get('v2.0/data/contacts/12')\n .set('Accept', 'application/json')\n .end(function(err, res) {\n if (err) return done(err);\n assert.strictEqual(res.body.data[0]['contactid'], 12);\n done();\n });", - "err": {}, - "uuid": "fa6ec0dd-27ba-4431-8dd2-e0bba9af4491", - "parentUUID": "3ef0aa79-2024-459e-8337-0fbec5497efd", - "isHook": false, - "skipped": false - }, - { - "title": "All contacts from datasets should be returned.", - "fullTitle": "Get contact data: All contacts from datasets should be returned.", - "timedOut": false, - "duration": 80, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, - "pending": false, - "context": null, - "code": "api.get('v2.0/data/datasets/12,13/contacts')\n .set('Accept', 'application/json')\n .end(function(err, res) {\n if (err) return done(err);\n assert.strictEqual(res.body.data.length, 2);\n done();\n });", - "err": {}, - "uuid": "bad1358e-88ae-4918-aed5-45ee968bf744", - "parentUUID": "3ef0aa79-2024-459e-8337-0fbec5497efd", - "isHook": false, - "skipped": false - }, - { - "title": "The length of returned contacts should be equivalent to the number of datasets.", - "fullTitle": "Get contact data: The length of returned contacts should be equivalent to the number of datasets.", - "timedOut": false, - "duration": 79, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, - "pending": false, - "context": null, - "code": "api.get('v2.0/data/datasets/12,13/contacts')\n .set('Accept', 'application/json')\n .end(function(err, res) {\n if (err) return done(err);\n const test = [];\n assert.strictEqual(test.length, 0);\n done();\n });", - "err": {}, - "uuid": "1e182b8d-52b7-4d28-bbc2-e56c9089506a", - "parentUUID": "3ef0aa79-2024-459e-8337-0fbec5497efd", - "isHook": false, - "skipped": false - }, - { - "title": "The length of returned contacts should be equivalent to the number of sites.", - "fullTitle": "Get contact data: The length of returned contacts should be equivalent to the number of sites.", - "timedOut": false, - "duration": 85, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, - "pending": false, - "context": null, - "code": "api.get('v2.0/data/datasets/102,1435,1,27/contacts')\n .set('Accept', 'application/json')\n .end(function(err, res) {\n if (err) return done(err);\n assert.strictEqual(Object.keys(res.body.data).length, 4);\n done();\n });", - "err": {}, - "uuid": "7f4a63bf-af1a-47d9-87fe-f8eaad392056", - "parentUUID": "3ef0aa79-2024-459e-8337-0fbec5497efd", - "isHook": false, - "skipped": false - } - ], - "suites": [], - "passes": [ - "0dee4310-24c5-49d7-b1ef-6661602b5b41", - "54d5125d-cd29-49b4-b8e0-7fd25fde3824", - "d42b0c2f-9e5b-4a5e-a9cd-6acf8a7a745c", - "ab7dbac4-2c83-42ae-9d22-5e519a55ba56", - "fa6ec0dd-27ba-4431-8dd2-e0bba9af4491", - "bad1358e-88ae-4918-aed5-45ee968bf744", - "1e182b8d-52b7-4d28-bbc2-e56c9089506a", - "7f4a63bf-af1a-47d9-87fe-f8eaad392056" - ], - "failures": [], - "pending": [], - "skipped": [], - "duration": 687, - "root": false, - "rootEmpty": false, - "_timeout": 5000 - }, - { - "uuid": "19d1a9f9-b3d3-4f5d-86a4-645104c000c0", - "title": "tests for /v1.5/data/sites/{siteid}", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v1.5-data-sites-{siteid}-test.js", - "file": "/test/v1.5-data-sites-{siteid}-test.js", - "beforeHooks": [], - "afterHooks": [], - "tests": [], - "suites": [ - { - "uuid": "5e6660e2-a66c-47ce-b9ec-be9c845bd6c1", + "uuid": "ee7af3f4-a905-455e-b8a2-ff78b0479d3b", "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v1.5-data-sites-{siteid}-test.js", - "file": "/test/v1.5-data-sites-{siteid}-test.js", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-apps-keywords-test.js", + "file": "/test/v2.0-apps-keywords-test.js", "beforeHooks": [], "afterHooks": [], "tests": [ { - "title": "should respond 200 for \"An array of site elements.\"", - "fullTitle": "tests for /v1.5/data/sites/{siteid} tests for get should respond 200 for \"An array of site elements.\"", + "title": "should respond 200 for \"A list of all keywords used for analysis units in the database.\"", + "fullTitle": "tests for /v2.0/apps/keywords tests for get should respond 200 for \"A list of all keywords used for analysis units in the database.\"", "timedOut": false, - "duration": 83, + "duration": 69, "state": "passed", "speed": "fast", "pass": true, "fail": false, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v1.5/data/sites/500', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "code": "var response = request('get', 'http://localhost:3001/v2.0/apps/keywords', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", "err": {}, - "uuid": "aac256e5-f695-4c16-8d58-cb2acb59f315", - "parentUUID": "5e6660e2-a66c-47ce-b9ec-be9c845bd6c1", + "uuid": "456efcf9-fb91-41a5-964c-6149ad48a8d5", + "parentUUID": "ee7af3f4-a905-455e-b8a2-ff78b0479d3b", "isHook": false, "skipped": false } ], "suites": [], "passes": [ - "aac256e5-f695-4c16-8d58-cb2acb59f315" + "456efcf9-fb91-41a5-964c-6149ad48a8d5" ], "failures": [], "pending": [], "skipped": [], - "duration": 83, + "duration": 69, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 } ], "passes": [], @@ -888,229 +719,341 @@ "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 }, { - "uuid": "c5b8d5e7-7547-4465-8f9c-fdd65eca86fa", - "title": "tests for /v1.5/apps/DatasetTypes", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v1.5-apps-DatasetTypes-test.js", - "file": "/test/v1.5-apps-DatasetTypes-test.js", + "uuid": "9509b4d9-2b78-42dc-8274-6188af7e75d1", + "title": "Tests for Explorer App Services", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/explorerCalls.js", + "file": "/test/explorerCalls.js", "beforeHooks": [], "afterHooks": [], "tests": [], "suites": [ { - "uuid": "497699e3-592e-4f42-9f7c-760d3120236c", + "uuid": "cdaf9edd-968f-4ac0-9daf-b0aa103f4284", "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v1.5-apps-DatasetTypes-test.js", - "file": "/test/v1.5-apps-DatasetTypes-test.js", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/explorerCalls.js", + "file": "/test/explorerCalls.js", "beforeHooks": [], "afterHooks": [], "tests": [ { - "title": "should respond 200 for \"Returns the set of dataset types supported by Neotoma.\"", - "fullTitle": "tests for /v1.5/apps/DatasetTypes tests for get should respond 200 for \"Returns the set of dataset types supported by Neotoma.\"", + "title": "should respond 200 for TaxaGroupTypes", + "fullTitle": "Tests for Explorer App Services tests for get should respond 200 for TaxaGroupTypes", "timedOut": false, - "duration": 118, + "duration": 110, "state": "passed", "speed": "fast", "pass": true, "fail": false, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v1.5/apps/DatasetTypes', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "code": "const response = request('get', appServicesLocation + '/TaxaGroupTypes', {\n time: true,\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", "err": {}, - "uuid": "73c9d460-b4fd-4d32-b501-6a00901d80ca", - "parentUUID": "497699e3-592e-4f42-9f7c-760d3120236c", + "uuid": "f4b7aa75-955e-4631-9419-84e08378e73e", + "parentUUID": "cdaf9edd-968f-4ac0-9daf-b0aa103f4284", "isHook": false, "skipped": false - } - ], - "suites": [], - "passes": [ - "73c9d460-b4fd-4d32-b501-6a00901d80ca" - ], - "failures": [], - "pending": [], - "skipped": [], - "duration": 118, - "root": false, - "rootEmpty": false, - "_timeout": 300000 - } - ], - "passes": [], - "failures": [], - "pending": [], - "skipped": [], - "duration": 0, - "root": false, - "rootEmpty": false, - "_timeout": 300000 - }, - { - "uuid": "200db3ea-5c71-42d4-a1b9-4f1bfdae3c03", - "title": "tests for /v2.0/data/occurrences/{occurrenceid}", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-occurrences-{occurrenceid}-test.js", - "file": "/test/v2.0-data-occurrences-{occurrenceid}-test.js", - "beforeHooks": [], - "afterHooks": [], - "tests": [], - "suites": [ - { - "uuid": "8c51f5e4-f7e2-4dbd-9a95-6d263f7e6ffc", - "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-occurrences-{occurrenceid}-test.js", - "file": "/test/v2.0-data-occurrences-{occurrenceid}-test.js", - "beforeHooks": [], - "afterHooks": [], - "tests": [ + }, { - "title": "should respond 200 for \"occurrence\"", - "fullTitle": "tests for /v2.0/data/occurrences/{occurrenceid} tests for get should respond 200 for \"occurrence\"", + "title": "should respond 200 for TaphonomyTypes", + "fullTitle": "Tests for Explorer App Services tests for get should respond 200 for TaphonomyTypes", "timedOut": false, - "duration": 91, + "duration": 3, "state": "passed", "speed": "fast", "pass": true, "fail": false, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/occurrences/500', { \n 'qs': {\"limit\": 10,\"offset\": 0},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "code": "const response = request('get', appServicesLocation + '/TaphonomyTypes', {\n qs: {\n taphonomicSystemId: 1,\n },\n time: true,\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", "err": {}, - "uuid": "06104d8a-0617-4b15-9e0e-62964ef1cca9", - "parentUUID": "8c51f5e4-f7e2-4dbd-9a95-6d263f7e6ffc", + "uuid": "83aa9228-bd1e-458e-bef5-7f998ddcb491", + "parentUUID": "cdaf9edd-968f-4ac0-9daf-b0aa103f4284", "isHook": false, "skipped": false - } - ], - "suites": [], - "passes": [ - "06104d8a-0617-4b15-9e0e-62964ef1cca9" - ], - "failures": [], - "pending": [], - "skipped": [], - "duration": 91, - "root": false, - "rootEmpty": false, - "_timeout": 300000 - } - ], - "passes": [], - "failures": [], - "pending": [], - "skipped": [], - "duration": 0, - "root": false, - "rootEmpty": false, - "_timeout": 300000 - }, - { - "uuid": "10b6f497-c111-4ce2-8e3d-00bb9535bfb9", - "title": "tests for /v2.0/data/downloads/{datasetid}", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-downloads-{datasetid}-test.js", - "file": "/test/v2.0-data-downloads-{datasetid}-test.js", - "beforeHooks": [], - "afterHooks": [], - "tests": [], - "suites": [ - { - "uuid": "245ca261-e015-48e7-af2e-3377ccc8fac9", - "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-downloads-{datasetid}-test.js", - "file": "/test/v2.0-data-downloads-{datasetid}-test.js", - "beforeHooks": [], - "afterHooks": [], - "tests": [ + }, { - "title": "should respond 200 for \"Returned download object.\"", - "fullTitle": "tests for /v2.0/data/downloads/{datasetid} tests for get should respond 200 for \"Returned download object.\"", + "title": "should respond 200 for TaphonomySystems", + "fullTitle": "Tests for Explorer App Services tests for get should respond 200 for TaphonomySystems", "timedOut": false, - "duration": 3314, + "duration": 73, "state": "passed", - "speed": "slow", + "speed": "fast", "pass": true, "fail": false, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/downloads/500', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "code": "const response = request('get', appServicesLocation + '/TaphonomySystems', {\n qs: {\n datasetTypeId: 1,\n },\n time: true,\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", "err": {}, - "uuid": "6853105d-cd3b-4a05-b93d-b4f45e8cb196", - "parentUUID": "245ca261-e015-48e7-af2e-3377ccc8fac9", + "uuid": "49681a8e-10c0-4466-b0c5-4af264a399c5", + "parentUUID": "cdaf9edd-968f-4ac0-9daf-b0aa103f4284", "isHook": false, "skipped": false - } - ], - "suites": [], - "passes": [ - "6853105d-cd3b-4a05-b93d-b4f45e8cb196" - ], - "failures": [], - "pending": [], - "skipped": [], - "duration": 3314, - "root": false, - "rootEmpty": false, - "_timeout": 300000 - } - ], - "passes": [], - "failures": [], - "pending": [], - "skipped": [], - "duration": 0, - "root": false, - "rootEmpty": false, - "_timeout": 300000 + }, + { + "title": "should respond 200 for ElementTypes", + "fullTitle": "Tests for Explorer App Services tests for get should respond 200 for ElementTypes", + "timedOut": false, + "duration": 74, + "state": "passed", + "speed": "fast", + "pass": true, + "fail": false, + "pending": false, + "context": null, + "code": "const response = request('get', appServicesLocation + '/ElementTypes', {\n qs: {\n taxagroupid: 1,\n },\n time: true,\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "err": {}, + "uuid": "f4efcbd9-3187-4f13-866f-66be1463e1fe", + "parentUUID": "cdaf9edd-968f-4ac0-9daf-b0aa103f4284", + "isHook": false, + "skipped": false + }, + { + "title": "should respond 200 for TaxaInDatasets (a slow service)", + "fullTitle": "Tests for Explorer App Services tests for get should respond 200 for TaxaInDatasets (a slow service)", + "timedOut": false, + "duration": 5028, + "state": "passed", + "speed": "slow", + "pass": true, + "fail": false, + "pending": false, + "context": null, + "code": "const response = request('get', appServicesLocation + '/TaxaInDatasets', {\n time: true,\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "err": {}, + "uuid": "8fb651c7-8358-46b5-a0c2-a58caf69c8ff", + "parentUUID": "cdaf9edd-968f-4ac0-9daf-b0aa103f4284", + "isHook": false, + "skipped": false + }, + { + "title": "should respond 200 for collectionTypes", + "fullTitle": "Tests for Explorer App Services tests for get should respond 200 for collectionTypes", + "timedOut": false, + "duration": 68, + "state": "passed", + "speed": "fast", + "pass": true, + "fail": false, + "pending": false, + "context": null, + "code": "const response = request('get', appServicesLocation + '/collectionTypes', {\n time: true,\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "err": {}, + "uuid": "a4062708-acc7-4f02-ae83-8e2b9e6d5691", + "parentUUID": "cdaf9edd-968f-4ac0-9daf-b0aa103f4284", + "isHook": false, + "skipped": false + }, + { + "title": "should respond 200 for keywords", + "fullTitle": "Tests for Explorer App Services tests for get should respond 200 for keywords", + "timedOut": false, + "duration": 68, + "state": "passed", + "speed": "fast", + "pass": true, + "fail": false, + "pending": false, + "context": null, + "code": "const response = request('get', appServicesLocation + '/keywords', {\n time: true,\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "err": {}, + "uuid": "1ea32a6b-a73b-438e-b3e0-5686b290d554", + "parentUUID": "cdaf9edd-968f-4ac0-9daf-b0aa103f4284", + "isHook": false, + "skipped": false + }, + { + "title": "should respond 200 for authorpis", + "fullTitle": "Tests for Explorer App Services tests for get should respond 200 for authorpis", + "timedOut": false, + "duration": 572, + "state": "passed", + "speed": "medium", + "pass": true, + "fail": false, + "pending": false, + "context": null, + "code": "const response = request('get', appServicesLocation + '/authorpis', {\n time: true,\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "err": {}, + "uuid": "424f8be0-c814-4127-a3b4-631211a1cb4f", + "parentUUID": "cdaf9edd-968f-4ac0-9daf-b0aa103f4284", + "isHook": false, + "skipped": false + }, + { + "title": "should respond 200 for DepositionalEnvironments", + "fullTitle": "Tests for Explorer App Services tests for get should respond 200 for DepositionalEnvironments", + "timedOut": false, + "duration": 2, + "state": "passed", + "speed": "fast", + "pass": true, + "fail": false, + "pending": false, + "context": null, + "code": "const response = request('get', appServicesLocation + '/DepositionalEnvironments', {\n qs: {idProperty: 1},\n time: true,\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "err": {}, + "uuid": "52389675-2512-4832-920a-7e7e6253bb7e", + "parentUUID": "cdaf9edd-968f-4ac0-9daf-b0aa103f4284", + "isHook": false, + "skipped": false + }, + { + "title": "should respond 200 for Search", + "fullTitle": "Tests for Explorer App Services tests for get should respond 200 for Search", + "timedOut": false, + "duration": 2, + "state": "passed", + "speed": "fast", + "pass": true, + "fail": false, + "pending": false, + "context": null, + "code": "const response = request('post', appServicesLocation + '/Search', {\n qs: {search: '{\"datasetTypeId\":21}',\n time: true},\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "err": {}, + "uuid": "a42e173e-8b7d-479a-85af-dbff5659473a", + "parentUUID": "cdaf9edd-968f-4ac0-9daf-b0aa103f4284", + "isHook": false, + "skipped": false + }, + { + "title": "should respond 200 for DatasetTypes", + "fullTitle": "Tests for Explorer App Services tests for get should respond 200 for DatasetTypes", + "timedOut": false, + "duration": 151, + "state": "passed", + "speed": "fast", + "pass": true, + "fail": false, + "pending": false, + "context": null, + "code": "const response = request('get', appServicesLocation + '/DatasetTypes', {\n time: true,\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "err": {}, + "uuid": "0334950d-8135-458d-bbf2-ffbc63eb869d", + "parentUUID": "cdaf9edd-968f-4ac0-9daf-b0aa103f4284", + "isHook": false, + "skipped": false + }, + { + "title": "should respond 200 for RelativeAges", + "fullTitle": "Tests for Explorer App Services tests for get should respond 200 for RelativeAges", + "timedOut": false, + "duration": 136, + "state": "passed", + "speed": "fast", + "pass": true, + "fail": false, + "pending": false, + "context": null, + "code": "const response = request('get', appServicesLocation + '/RelativeAges', {\n qs: {agescaleid: 1},\n time: true,\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "err": {}, + "uuid": "a68af96d-9980-4419-b1d3-eb1697bffe80", + "parentUUID": "cdaf9edd-968f-4ac0-9daf-b0aa103f4284", + "isHook": false, + "skipped": false + }, + { + "title": "should respond 200 for Geochronologies", + "fullTitle": "Tests for Explorer App Services tests for get should respond 200 for Geochronologies", + "timedOut": false, + "duration": 1, + "state": "passed", + "speed": "fast", + "pass": true, + "fail": false, + "pending": false, + "context": null, + "code": "const response = request('get', appServicesLocation + '/Geochronologies', {\n qs: {datasetId: 1001},\n time: true,\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "err": {}, + "uuid": "e5d14142-8b49-400e-ae1f-69f990a861ca", + "parentUUID": "cdaf9edd-968f-4ac0-9daf-b0aa103f4284", + "isHook": false, + "skipped": false + } + ], + "suites": [], + "passes": [ + "f4b7aa75-955e-4631-9419-84e08378e73e", + "83aa9228-bd1e-458e-bef5-7f998ddcb491", + "49681a8e-10c0-4466-b0c5-4af264a399c5", + "f4efcbd9-3187-4f13-866f-66be1463e1fe", + "8fb651c7-8358-46b5-a0c2-a58caf69c8ff", + "a4062708-acc7-4f02-ae83-8e2b9e6d5691", + "1ea32a6b-a73b-438e-b3e0-5686b290d554", + "424f8be0-c814-4127-a3b4-631211a1cb4f", + "52389675-2512-4832-920a-7e7e6253bb7e", + "a42e173e-8b7d-479a-85af-dbff5659473a", + "0334950d-8135-458d-bbf2-ffbc63eb869d", + "a68af96d-9980-4419-b1d3-eb1697bffe80", + "e5d14142-8b49-400e-ae1f-69f990a861ca" + ], + "failures": [], + "pending": [], + "skipped": [], + "duration": 6288, + "root": false, + "rootEmpty": false, + "_timeout": 12000 + } + ], + "passes": [], + "failures": [], + "pending": [], + "skipped": [], + "duration": 0, + "root": false, + "rootEmpty": false, + "_timeout": 12000 }, { - "uuid": "49af3130-72d1-44dc-bbb5-3e8abde2cae0", - "title": "tests for /v2.0/apps/keywords", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-apps-keywords-test.js", - "file": "/test/v2.0-apps-keywords-test.js", + "uuid": "4c8f5adf-c36e-41f7-b939-d89e74023d03", + "title": "tests for /v2.0/data/datasets/{datasetid}/sites", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-datasets-{datasetid}-sites-test.js", + "file": "/test/v2.0-data-datasets-{datasetid}-sites-test.js", "beforeHooks": [], "afterHooks": [], "tests": [], "suites": [ { - "uuid": "8c371878-f6a8-41c8-80ae-22f7ccc440e9", + "uuid": "176fc265-27de-45f2-ae3a-dcee9cf409c4", "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-apps-keywords-test.js", - "file": "/test/v2.0-apps-keywords-test.js", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-datasets-{datasetid}-sites-test.js", + "file": "/test/v2.0-data-datasets-{datasetid}-sites-test.js", "beforeHooks": [], "afterHooks": [], "tests": [ { - "title": "should respond 200 for \"A list of all keywords used for analysis units in the database.\"", - "fullTitle": "tests for /v2.0/apps/keywords tests for get should respond 200 for \"A list of all keywords used for analysis units in the database.\"", + "title": "should respond 200 for \"Site\"", + "fullTitle": "tests for /v2.0/data/datasets/{datasetid}/sites tests for get should respond 200 for \"Site\"", "timedOut": false, - "duration": 80, + "duration": 83, "state": "passed", "speed": "fast", "pass": true, "fail": false, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/apps/keywords', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/datasets/62131936/sites', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", "err": {}, - "uuid": "0cf20c2c-1d68-4584-ad6d-81a46cef73c4", - "parentUUID": "8c371878-f6a8-41c8-80ae-22f7ccc440e9", + "uuid": "43193649-b594-486c-8668-0a8a75c6f647", + "parentUUID": "176fc265-27de-45f2-ae3a-dcee9cf409c4", "isHook": false, "skipped": false } ], "suites": [], "passes": [ - "0cf20c2c-1d68-4584-ad6d-81a46cef73c4" + "43193649-b594-486c-8668-0a8a75c6f647" ], "failures": [], "pending": [], "skipped": [], - "duration": 80, + "duration": 83, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 } ], "passes": [], @@ -1120,55 +1063,55 @@ "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 }, { - "uuid": "06f086b5-ddc3-4d7b-b075-68a7002b751e", - "title": "tests for /v2.0/apps/collectiontypes", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-apps-collectiontypes-test.js", - "file": "/test/v2.0-apps-collectiontypes-test.js", + "uuid": "fbbd5c8b-91fe-46ef-a764-faf61bdb8f92", + "title": "tests for /v2.0/data/sites/{siteid}/datasets_elc", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-sites-{siteid}-datasets_elc-test.js", + "file": "/test/v2.0-data-sites-{siteid}-datasets_elc-test.js", "beforeHooks": [], "afterHooks": [], "tests": [], "suites": [ { - "uuid": "f39c6faf-0a6b-429e-adc5-eb038054228b", + "uuid": "1ff67ce4-e8d8-4f03-9c94-7041ce07cf2d", "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-apps-collectiontypes-test.js", - "file": "/test/v2.0-apps-collectiontypes-test.js", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-sites-{siteid}-datasets_elc-test.js", + "file": "/test/v2.0-data-sites-{siteid}-datasets_elc-test.js", "beforeHooks": [], "afterHooks": [], "tests": [ { - "title": "should respond 200 for \"A table of Neotoma collection types.\"", - "fullTitle": "tests for /v2.0/apps/collectiontypes tests for get should respond 200 for \"A table of Neotoma collection types.\"", + "title": "should respond 200 for \"An array of datasets.\"", + "fullTitle": "tests for /v2.0/data/sites/{siteid}/datasets_elc tests for get should respond 200 for \"An array of datasets.\"", "timedOut": false, - "duration": 80, + "duration": 3116, "state": "passed", - "speed": "fast", + "speed": "slow", "pass": true, "fail": false, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/apps/collectiontypes', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/sites/30330/datasets_elc', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", "err": {}, - "uuid": "4459cd1e-6ac1-4f06-b28e-ca0d1c65279b", - "parentUUID": "f39c6faf-0a6b-429e-adc5-eb038054228b", + "uuid": "f6df063b-cc04-418d-bb0f-60e40752b476", + "parentUUID": "1ff67ce4-e8d8-4f03-9c94-7041ce07cf2d", "isHook": false, "skipped": false } ], "suites": [], "passes": [ - "4459cd1e-6ac1-4f06-b28e-ca0d1c65279b" + "f6df063b-cc04-418d-bb0f-60e40752b476" ], "failures": [], "pending": [], "skipped": [], - "duration": 80, + "duration": 3116, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 } ], "passes": [], @@ -1178,227 +1121,55 @@ "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 }, { - "uuid": "3e71b4a8-6c28-4fbf-933d-16f24ab71bf1", - "title": "Get taxon data:", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/taxa.js", - "file": "/test/taxa.js", + "uuid": "166c7bf7-4e85-406c-8768-4d80aa4ecf47", + "title": "tests for /v2.0/data/taxa/{taxonid}/occurrences", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-taxa-{taxonid}-occurrences-test.js", + "file": "/test/v2.0-data-taxa-{taxonid}-occurrences-test.js", "beforeHooks": [], "afterHooks": [], - "tests": [ - { - "title": "v2.0: An empty query returns the first 25 taxa.", - "fullTitle": "Get taxon data: v2.0: An empty query returns the first 25 taxa.", - "timedOut": false, - "duration": 123, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, - "pending": false, - "context": null, - "code": "api.get('v2.0/data/taxa/')\n .set('Accept', 'application/json')\n .expect(200, done);", - "err": {}, - "uuid": "6dc48752-52ff-4c8f-87ef-ef3b51eafd14", - "parentUUID": "3e71b4a8-6c28-4fbf-933d-16f24ab71bf1", - "isHook": false, - "skipped": false - }, - { - "title": "v2.0: A single taxon should be returned by id:", - "fullTitle": "Get taxon data: v2.0: A single taxon should be returned by id:", - "timedOut": false, - "duration": 81, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, - "pending": false, - "context": null, - "code": "api.get('v2.0/data/taxa/12')\n .set('Accept', 'application/json')\n .end(function(err, res) {\n assert.strictEqual(res.body.data[0]['taxonid'], 12);\n done();\n if (err) {\n console.log(err.message);\n };\n });", - "err": {}, - "uuid": "14947775-1a98-45aa-8672-12556db64d4b", - "parentUUID": "3e71b4a8-6c28-4fbf-933d-16f24ab71bf1", - "isHook": false, - "skipped": false - }, + "tests": [], + "suites": [ { - "title": "v2.0: Taxon queries should be case insensitive:", - "fullTitle": "Get taxon data: v2.0: Taxon queries should be case insensitive:", - "timedOut": false, - "duration": 159, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, - "pending": false, - "context": null, - "code": "api.get('v2.0/data/taxa/?taxonname=abies')\n .set('Accept', 'application/json')\n .end(function(err, res) {\n assert.strictEqual(res.body.data[0]['taxonid'], 1);\n done();\n if (err) {\n console.log(err.message);\n };\n });", - "err": {}, - "uuid": "18296e1c-5fba-4229-8660-0f0bb5521bc6", - "parentUUID": "3e71b4a8-6c28-4fbf-933d-16f24ab71bf1", - "isHook": false, - "skipped": false - }, - { - "title": "v2.0: Taxon queries should accept comma separated lists:", - "fullTitle": "Get taxon data: v2.0: Taxon queries should accept comma separated lists:", - "timedOut": false, - "duration": 163, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, - "pending": false, - "context": null, - "code": "api.get('v2.0/data/taxa/?taxonname=abies,picea')\n .set('Accept', 'application/json')\n .end(function(err, res) {\n assert.strictEqual(res.body.data[0]['taxonid'], 1);\n done();\n if (err) {\n console.log(err.message);\n };\n });", - "err": {}, - "uuid": "5530e9d5-de8b-47f0-a915-9593375d8491", - "parentUUID": "3e71b4a8-6c28-4fbf-933d-16f24ab71bf1", - "isHook": false, - "skipped": false - }, - { - "title": "v2.0: Hierarchical taxon queries should accept comma separated lists:", - "fullTitle": "Get taxon data: v2.0: Hierarchical taxon queries should accept comma separated lists:", - "timedOut": false, - "duration": 290, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, - "pending": false, - "context": null, - "code": "api.get('v2.0/data/taxa/?taxonname=abies,picea&lower=true')\n .set('Accept', 'application/json')\n .end(function(err, res) {\n const data = res.body.data;\n const higher = [...new Set(data.map((x) => x.highertaxonid))];\n /* There should be four unique higher taxon IDs:\n * One for `Abies`\n * One for `Picea`\n * The rest pointing to Abies & Picea.\n */\n assert.strictEqual(higher.length, 4);\n done();\n if (err) {\n console.log(err.message);\n };\n });", - "err": {}, - "uuid": "5a3a761f-12a2-4df4-9022-d00070b4a2f7", - "parentUUID": "3e71b4a8-6c28-4fbf-933d-16f24ab71bf1", - "isHook": false, - "skipped": false - }, - { - "title": "v2.0: Taxon queries should accept `*` as a wildcard:", - "fullTitle": "Get taxon data: v2.0: Taxon queries should accept `*` as a wildcard:", - "timedOut": false, - "duration": 165, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, - "pending": false, - "context": null, - "code": "api.get('v2.0/data/taxa/?taxonname=abie*')\n .set('Accept', 'application/json')\n .end(function(err, res) {\n assert.strictEqual(res.body.data[0]['taxonid'], 1);\n done();\n if (err) {\n console.log(err.message);\n };\n });", - "err": {}, - "uuid": "47ad926d-dd20-44a9-830a-69188df54765", - "parentUUID": "3e71b4a8-6c28-4fbf-933d-16f24ab71bf1", - "isHook": false, - "skipped": false - }, - { - "title": "v2.0: The default limit of 25 should be reached for taxon data:", - "fullTitle": "Get taxon data: v2.0: The default limit of 25 should be reached for taxon data:", - "timedOut": false, - "duration": 677, - "state": "passed", - "speed": "medium", - "pass": true, - "fail": false, - "pending": false, - "context": null, - "code": "api.get('v2.0/data/taxa/?taxonname=a*')\n .set('Accept', 'application/json')\n .end(function(err, res) {\n assert.strictEqual(res.body.data.length, 25);\n done();\n if (err) {\n console.log(err.message);\n };\n });", - "err": {}, - "uuid": "a502783f-a098-4cec-a10c-cd01b2226c38", - "parentUUID": "3e71b4a8-6c28-4fbf-933d-16f24ab71bf1", - "isHook": false, - "skipped": false - }, - { - "title": "v2.0: Changing the limit should change the number of taxa retrieved:", - "fullTitle": "Get taxon data: v2.0: Changing the limit should change the number of taxa retrieved:", - "timedOut": false, - "duration": 366, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, - "pending": false, - "context": null, - "code": "api.get('v2.0/data/taxa/?taxonname=a*&limit=30')\n .set('Accept', 'application/json')\n .end(function(err, res) {\n assert.strictEqual(res.body.data.length, 30);\n done();\n if (err) {\n console.log(err.message);\n };\n });", - "err": {}, - "uuid": "5111e824-fc2c-4497-82b7-a1ee08b1f047", - "parentUUID": "3e71b4a8-6c28-4fbf-933d-16f24ab71bf1", - "isHook": false, - "skipped": false - } - ], - "suites": [], - "passes": [ - "6dc48752-52ff-4c8f-87ef-ef3b51eafd14", - "14947775-1a98-45aa-8672-12556db64d4b", - "18296e1c-5fba-4229-8660-0f0bb5521bc6", - "5530e9d5-de8b-47f0-a915-9593375d8491", - "5a3a761f-12a2-4df4-9022-d00070b4a2f7", - "47ad926d-dd20-44a9-830a-69188df54765", - "a502783f-a098-4cec-a10c-cd01b2226c38", - "5111e824-fc2c-4497-82b7-a1ee08b1f047" - ], - "failures": [], - "pending": [], - "skipped": [], - "duration": 2024, - "root": false, - "rootEmpty": false, - "_timeout": 300000 - }, - { - "uuid": "b393aa08-0e28-4295-96fb-b368962b2a06", - "title": "tests for /v2.0/apps/taxagrouptypes", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-apps-taxagrouptypes-test.js", - "file": "/test/v2.0-apps-taxagrouptypes-test.js", - "beforeHooks": [], - "afterHooks": [], - "tests": [], - "suites": [ - { - "uuid": "ddded0ec-886e-499e-8bdf-5588feb65404", + "uuid": "814ff459-eede-4f1d-b8f4-76d0d9966e72", "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-apps-taxagrouptypes-test.js", - "file": "/test/v2.0-apps-taxagrouptypes-test.js", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-taxa-{taxonid}-occurrences-test.js", + "file": "/test/v2.0-data-taxa-{taxonid}-occurrences-test.js", "beforeHooks": [], "afterHooks": [], "tests": [ { - "title": "should respond 200 for \"A table of Neotoma collection types.\"", - "fullTitle": "tests for /v2.0/apps/taxagrouptypes tests for get should respond 200 for \"A table of Neotoma collection types.\"", + "title": "should respond 200 for \"occurrence\"", + "fullTitle": "tests for /v2.0/data/taxa/{taxonid}/occurrences tests for get should respond 200 for \"occurrence\"", "timedOut": false, - "duration": 151, + "duration": 99, "state": "passed", "speed": "fast", "pass": true, "fail": false, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/apps/taxagrouptypes', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/taxa/38219/occurrences', { \n 'qs': {\"limit\":1224,\"offset\":49084421},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", "err": {}, - "uuid": "65b95cf4-9f63-45f1-9d9f-ece251b0b642", - "parentUUID": "ddded0ec-886e-499e-8bdf-5588feb65404", + "uuid": "0dd4d02d-10d6-4597-92a9-7df2cf0a7dd4", + "parentUUID": "814ff459-eede-4f1d-b8f4-76d0d9966e72", "isHook": false, "skipped": false } ], "suites": [], "passes": [ - "65b95cf4-9f63-45f1-9d9f-ece251b0b642" + "0dd4d02d-10d6-4597-92a9-7df2cf0a7dd4" ], "failures": [], "pending": [], "skipped": [], - "duration": 151, + "duration": 99, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 } ], "passes": [], @@ -1408,55 +1179,55 @@ "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 }, { - "uuid": "5ff0575c-d4c2-44f6-a6a1-66e895a98e99", - "title": "tests for /v2.0/data/dbtables/{table}", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-dbtables-{table}-test.js", - "file": "/test/v2.0-data-dbtables-{table}-test.js", + "uuid": "b3454f95-ff90-4ee8-a2a1-5d60dd4f5aec", + "title": "tests for /v2.0/data/datasets", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-datasets-test.js", + "file": "/test/v2.0-data-datasets-test.js", "beforeHooks": [], "afterHooks": [], "tests": [], "suites": [ { - "uuid": "77e576d2-0e09-426c-9dbb-36dc6e897dc5", + "uuid": "527195a6-1df3-44dc-9cc5-95f7b7a439cf", "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-dbtables-{table}-test.js", - "file": "/test/v2.0-data-dbtables-{table}-test.js", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-datasets-test.js", + "file": "/test/v2.0-data-datasets-test.js", "beforeHooks": [], "afterHooks": [], "tests": [ { - "title": "should respond 200 for \"Returned table.\"", - "fullTitle": "tests for /v2.0/data/dbtables/{table} tests for get should respond 200 for \"Returned table.\"", + "title": "should respond 200 for \"An array of datasets.\"", + "fullTitle": "tests for /v2.0/data/datasets tests for get should respond 200 for \"An array of datasets.\"", "timedOut": false, - "duration": 80, + "duration": 169, "state": "passed", "speed": "fast", "pass": true, "fail": false, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/dbtables/elitidsintnisiDuis', { \n 'qs': {\"count\":false,\"limit\": 10,\"offset\": 0},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/datasets', { \n 'qs': {\"sitename\":\"velit cillum dolore\",\"database\":\"Neotoma Testate Amoebae Database\",\"datasettype\":\"Metabarcoding aeDNA\",\"altmin\":-11,\"altmax\":4430,\"loc\":\"{\\\"type\\\":\\\"Polygon\\\",\\\"crs\\\":{\\\"type\\\":\\\"name\\\",\\\"properties\\\":{\\\"name\\\":\\\"EPSG:4326\\\"}},\\\"coordinates\\\":[[[13.4,55.92],[13.5,55.92],[13.5,55.95],[13.4,55.95],[13.4,55.92]]]}\",\"siteid\":25263,\"datasetid\":89369678,\"doi\":\"10&07743/TRAA1JL\",\"gpid\":5392,\"keyword\":null,\"contactid\":20739,\"taxa\":\"aliqua\",\"ageyoung\":9053694,\"ageold\":12079913,\"ageof\":17409358,\"limit\":6602,\"offset\":99417193},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", "err": {}, - "uuid": "8ff1c53a-ad29-41ac-99cf-1bc660d6cadb", - "parentUUID": "77e576d2-0e09-426c-9dbb-36dc6e897dc5", + "uuid": "0023a129-5b56-4bfd-bb18-f778e6d34e36", + "parentUUID": "527195a6-1df3-44dc-9cc5-95f7b7a439cf", "isHook": false, "skipped": false } ], "suites": [], "passes": [ - "8ff1c53a-ad29-41ac-99cf-1bc660d6cadb" + "0023a129-5b56-4bfd-bb18-f778e6d34e36" ], "failures": [], "pending": [], "skipped": [], - "duration": 80, + "duration": 169, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 } ], "passes": [], @@ -1466,55 +1237,55 @@ "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 }, { - "uuid": "a9d6f110-0b4c-43b0-9976-a14668bdeeb2", - "title": "tests for /v2.0/apps/taphonomysystems", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-apps-taphonomysystems-test.js", - "file": "/test/v2.0-apps-taphonomysystems-test.js", + "uuid": "33cc85f3-70b9-49b7-8929-3dfd97687bf9", + "title": "tests for /v1.5/dbtables/{table}", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v1.5-dbtables-{table}-test.js", + "file": "/test/v1.5-dbtables-{table}-test.js", "beforeHooks": [], "afterHooks": [], "tests": [], "suites": [ { - "uuid": "fceb8aa5-bc11-4f64-9c5f-920097c345a8", + "uuid": "f7326cff-bf34-4674-9cdd-e126eafe43f6", "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-apps-taphonomysystems-test.js", - "file": "/test/v2.0-apps-taphonomysystems-test.js", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v1.5-dbtables-{table}-test.js", + "file": "/test/v1.5-dbtables-{table}-test.js", "beforeHooks": [], "afterHooks": [], "tests": [ { - "title": "should respond 200 for \"A table of Neotoma collection types.\"", - "fullTitle": "tests for /v2.0/apps/taphonomysystems tests for get should respond 200 for \"A table of Neotoma collection types.\"", + "title": "should respond 200 for \"Returned table.\"", + "fullTitle": "tests for /v1.5/dbtables/{table} tests for get should respond 200 for \"Returned table.\"", "timedOut": false, - "duration": 84, + "duration": 70, "state": "passed", "speed": "fast", "pass": true, "fail": false, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/apps/taphonomysystems', { \n 'qs': {\"datasettypeid\":18},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "code": "var response = request('get', 'http://localhost:3001/v1.5/dbtables/geochrontypes', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", "err": {}, - "uuid": "a5cc6e4a-26d0-4d32-ad05-50eea18addf5", - "parentUUID": "fceb8aa5-bc11-4f64-9c5f-920097c345a8", + "uuid": "8e66dca7-d4a4-4370-94a3-a72da2d7d2db", + "parentUUID": "f7326cff-bf34-4674-9cdd-e126eafe43f6", "isHook": false, "skipped": false } ], "suites": [], "passes": [ - "a5cc6e4a-26d0-4d32-ad05-50eea18addf5" + "8e66dca7-d4a4-4370-94a3-a72da2d7d2db" ], "failures": [], "pending": [], "skipped": [], - "duration": 84, + "duration": 70, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 } ], "passes": [], @@ -1524,55 +1295,55 @@ "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 }, { - "uuid": "e76216d0-9a00-477f-b72c-7767a7bc9152", - "title": "tests for /v2.0/data/dbtables", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-dbtables-test.js", - "file": "/test/v2.0-data-dbtables-test.js", + "uuid": "547ee510-256f-4907-b1ba-4cb929ee9ece", + "title": "tests for /v2.0/data/occurrences", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-occurrences-test.js", + "file": "/test/v2.0-data-occurrences-test.js", "beforeHooks": [], "afterHooks": [], "tests": [], "suites": [ { - "uuid": "e0ddfdf3-2be8-406a-b48e-e45d2850a5aa", + "uuid": "aeeedb15-59b0-4fa2-953b-67feab1a8a62", "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-dbtables-test.js", - "file": "/test/v2.0-data-dbtables-test.js", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-occurrences-test.js", + "file": "/test/v2.0-data-occurrences-test.js", "beforeHooks": [], "afterHooks": [], "tests": [ { - "title": "should respond 200 for \"Returned table.\"", - "fullTitle": "tests for /v2.0/data/dbtables tests for get should respond 200 for \"Returned table.\"", + "title": "should respond 200 for \"occurrence\"", + "fullTitle": "tests for /v2.0/data/occurrences tests for get should respond 200 for \"occurrence\"", "timedOut": false, - "duration": 81, + "duration": 97, "state": "passed", "speed": "fast", "pass": true, "fail": false, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/dbtables', { \n 'qs': {\"table\":\"Duis pariatur\",\"count\":false,\"limit\": 10,\"offset\": 0},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/occurrences', { \n 'qs': {\"taxonname\":\"nulla aliqua qui incididunt ut\",\"taxonid\":14497,\"siteid\":23218,\"sitename\":\"proident incididunt\",\"datasettype\":\"biomarker\",\"altmin\": 10,\"altmax\":6217,\"loc\":\"{\\\"type\\\":\\\"Polygon\\\",\\\"crs\\\":{\\\"type\\\":\\\"name\\\",\\\"properties\\\":{\\\"name\\\":\\\"EPSG:4326\\\"}},\\\"coordinates\\\":[[[13.4,55.92],[13.5,55.92],[13.5,55.95],[13.4,55.95],[13.4,55.92]]]}\",\"ageof\":15746562,\"ageyoung\":141780,\"ageold\":763042,\"limit\":5063,\"offset\":38456224},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", "err": {}, - "uuid": "708dccc3-161c-49a2-8197-beff2c28423a", - "parentUUID": "e0ddfdf3-2be8-406a-b48e-e45d2850a5aa", + "uuid": "039c7aec-0c70-47f7-9550-a22f0180a13a", + "parentUUID": "aeeedb15-59b0-4fa2-953b-67feab1a8a62", "isHook": false, "skipped": false } ], "suites": [], "passes": [ - "708dccc3-161c-49a2-8197-beff2c28423a" + "039c7aec-0c70-47f7-9550-a22f0180a13a" ], "failures": [], "pending": [], "skipped": [], - "duration": 81, + "duration": 97, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 } ], "passes": [], @@ -1582,55 +1353,55 @@ "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 }, { - "uuid": "f48aa06e-6477-4a06-867d-48c2041533c3", - "title": "tests for /v2.0/data/occurrences", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-occurrences-test.js", - "file": "/test/v2.0-data-occurrences-test.js", + "uuid": "b27089fe-bb16-44d9-b04c-03c06c9ec7bf", + "title": "tests for /v2.0/apps/taxaindatasets", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-apps-taxaindatasets-test.js", + "file": "/test/v2.0-apps-taxaindatasets-test.js", "beforeHooks": [], "afterHooks": [], "tests": [], "suites": [ { - "uuid": "b27f2759-34be-4e95-bf1b-87c1ec63e846", + "uuid": "bfe7f86f-0a80-43e9-af23-10ab8b501523", "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-occurrences-test.js", - "file": "/test/v2.0-data-occurrences-test.js", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-apps-taxaindatasets-test.js", + "file": "/test/v2.0-apps-taxaindatasets-test.js", "beforeHooks": [], "afterHooks": [], "tests": [ { - "title": "should respond 200 for \"occurrence\"", - "fullTitle": "tests for /v2.0/data/occurrences tests for get should respond 200 for \"occurrence\"", + "title": "should respond 200 for \"A list of all taxa in neotoma and the datasets in which they are found.\"", + "fullTitle": "tests for /v2.0/apps/taxaindatasets tests for get should respond 200 for \"A list of all taxa in neotoma and the datasets in which they are found.\"", "timedOut": false, - "duration": 133, + "duration": 3075, "state": "passed", - "speed": "fast", + "speed": "slow", "pass": true, "fail": false, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/occurrences', { \n 'qs': {\"taxonname\":\"in laborum\",\"taxonid\":8523,\"siteid\":7926,\"sitename\":\"et Lorem exercitation\",\"datasettype\":\"X-ray fluorescence (XRF)\",\"altmin\": 10,\"altmax\": 100,\"loc\":\"{\\\"type\\\":\\\"Polygon\\\",\\\"crs\\\":{\\\"type\\\":\\\"name\\\",\\\"properties\\\":{\\\"name\\\":\\\"EPSG:4326\\\"}},\\\"coordinates\\\":[[[13.4,55.92],[13.5,55.92],[13.5,55.95],[13.4,55.95],[13.4,55.92]]]}\",\"ageof\":956783,\"ageyoung\": 1000,\"ageold\": 10000,\"limit\": 10,\"offset\": 0},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "code": "var response = request('get', 'http://localhost:3001/v2.0/apps/taxaindatasets', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", "err": {}, - "uuid": "53817d9f-b211-4e80-880a-fcbe02b46e1d", - "parentUUID": "b27f2759-34be-4e95-bf1b-87c1ec63e846", + "uuid": "9f288836-326a-479d-be75-ce2c0049950f", + "parentUUID": "bfe7f86f-0a80-43e9-af23-10ab8b501523", "isHook": false, "skipped": false } ], "suites": [], "passes": [ - "53817d9f-b211-4e80-880a-fcbe02b46e1d" + "9f288836-326a-479d-be75-ce2c0049950f" ], "failures": [], "pending": [], "skipped": [], - "duration": 133, + "duration": 3075, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 } ], "passes": [], @@ -1640,55 +1411,55 @@ "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 }, { - "uuid": "522f9ef4-6224-4a99-aedc-32ff07109177", - "title": "tests for /v2.0/data/spatial/lakes", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-spatial-lakes-test.js", - "file": "/test/v2.0-data-spatial-lakes-test.js", + "uuid": "f9db5cdd-751d-486d-bcc2-fcc73183c17b", + "title": "tests for /v1.5/apps/TaxaInDatasets", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v1.5-apps-TaxaInDatasets-test.js", + "file": "/test/v1.5-apps-TaxaInDatasets-test.js", "beforeHooks": [], "afterHooks": [], "tests": [], "suites": [ { - "uuid": "c73d1a5b-dd50-422e-bfdf-360f8d6cb5c0", + "uuid": "5f2f6cce-5a4e-4027-b644-c5063cb64c77", "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-spatial-lakes-test.js", - "file": "/test/v2.0-data-spatial-lakes-test.js", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v1.5-apps-TaxaInDatasets-test.js", + "file": "/test/v1.5-apps-TaxaInDatasets-test.js", "beforeHooks": [], "afterHooks": [], "tests": [ { - "title": "should respond 200 for \"An object containing all matched lakes within some buffer distance of a site. Data derived from the [HydroLakes database](https://www.hydrosheds.org/products/hydrolakes):
* Messager, M.L., Lehner, B., Grill, G., Nedeva, I., Schmitt, O. (2016). Estimating the volume and age of water stored in global lakes using a geo-statistical approach. *Nature Communications*, 7: 13603. doi: [10.1038/ncomms13603](https://doi.org/10.1038/ncomms13603) \"", - "fullTitle": "tests for /v2.0/data/spatial/lakes tests for get should respond 200 for \"An object containing all matched lakes within some buffer distance of a site. Data derived from the [HydroLakes database](https://www.hydrosheds.org/products/hydrolakes):
* Messager, M.L., Lehner, B., Grill, G., Nedeva, I., Schmitt, O. (2016). Estimating the volume and age of water stored in global lakes using a geo-statistical approach. *Nature Communications*, 7: 13603. doi: [10.1038/ncomms13603](https://doi.org/10.1038/ncomms13603) \"", + "title": "should respond 200 for \"An array of taxon identities with associated dataset IDs.\"", + "fullTitle": "tests for /v1.5/apps/TaxaInDatasets tests for get should respond 200 for \"An array of taxon identities with associated dataset IDs.\"", "timedOut": false, - "duration": 230, + "duration": 2255, "state": "passed", - "speed": "fast", + "speed": "slow", "pass": true, "fail": false, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/spatial/lakes', { \n 'qs': {\"siteid\":22014,\"buffer\":7113,\"prec\": 1000,\"proj\": 4326},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "code": "var response = request('get', 'http://localhost:3001/v1.5/apps/TaxaInDatasets', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", "err": {}, - "uuid": "6957026d-dcee-4971-9b80-a16d135917e1", - "parentUUID": "c73d1a5b-dd50-422e-bfdf-360f8d6cb5c0", + "uuid": "547a2a26-a17f-47be-809d-d8ed3b7bee9f", + "parentUUID": "5f2f6cce-5a4e-4027-b644-c5063cb64c77", "isHook": false, "skipped": false } ], "suites": [], "passes": [ - "6957026d-dcee-4971-9b80-a16d135917e1" + "547a2a26-a17f-47be-809d-d8ed3b7bee9f" ], "failures": [], "pending": [], "skipped": [], - "duration": 230, + "duration": 2255, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 } ], "passes": [], @@ -1698,55 +1469,55 @@ "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 }, { - "uuid": "535e1099-3e91-4eea-8351-588fd64517a1", - "title": "tests for /v2.0/data/datasets/{datasetid}/sites", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-datasets-{datasetid}-sites-test.js", - "file": "/test/v2.0-data-datasets-{datasetid}-sites-test.js", + "uuid": "64d662d6-6ea6-4e89-8e55-3f9fba35c8d1", + "title": "tests for /v2.0/apps/depositionalenvironments/root", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-apps-depositionalenvironments-root-test.js", + "file": "/test/v2.0-apps-depositionalenvironments-root-test.js", "beforeHooks": [], "afterHooks": [], "tests": [], "suites": [ { - "uuid": "db0728fc-660f-4020-9e2c-54cefa4c0cc5", + "uuid": "3e744724-7d10-49b7-8206-4ee5d3eb0a85", "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-datasets-{datasetid}-sites-test.js", - "file": "/test/v2.0-data-datasets-{datasetid}-sites-test.js", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-apps-depositionalenvironments-root-test.js", + "file": "/test/v2.0-apps-depositionalenvironments-root-test.js", "beforeHooks": [], "afterHooks": [], "tests": [ { - "title": "should respond 200 for \"Site\"", - "fullTitle": "tests for /v2.0/data/datasets/{datasetid}/sites tests for get should respond 200 for \"Site\"", + "title": "should respond 200 for \"A table of Neotoma collection types.\"", + "fullTitle": "tests for /v2.0/apps/depositionalenvironments/root tests for get should respond 200 for \"A table of Neotoma collection types.\"", "timedOut": false, - "duration": 85, + "duration": 69, "state": "passed", "speed": "fast", "pass": true, "fail": false, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/datasets/500/sites', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "code": "var response = request('get', 'http://localhost:3001/v2.0/apps/depositionalenvironments/root', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", "err": {}, - "uuid": "110aed8c-4fc1-4ece-bcb0-8465a814b78f", - "parentUUID": "db0728fc-660f-4020-9e2c-54cefa4c0cc5", + "uuid": "c62bc7f8-f7d5-4462-98ce-dcaa3bd14a3e", + "parentUUID": "3e744724-7d10-49b7-8206-4ee5d3eb0a85", "isHook": false, "skipped": false } ], "suites": [], "passes": [ - "110aed8c-4fc1-4ece-bcb0-8465a814b78f" + "c62bc7f8-f7d5-4462-98ce-dcaa3bd14a3e" ], "failures": [], "pending": [], "skipped": [], - "duration": 85, + "duration": 69, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 } ], "passes": [], @@ -1756,55 +1527,55 @@ "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 }, { - "uuid": "6d373f47-7d74-4e5a-b98e-b054a27de9b7", - "title": "tests for /v2.0/data/chronologies/{chronid}", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-chronologies-{chronid}-test.js", - "file": "/test/v2.0-data-chronologies-{chronid}-test.js", + "uuid": "ea859d74-b054-4b9e-b123-b59595e0fa50", + "title": "tests for /v2.0/data/datasets/{datasetid}/doi", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-datasets-{datasetid}-doi-test.js", + "file": "/test/v2.0-data-datasets-{datasetid}-doi-test.js", "beforeHooks": [], "afterHooks": [], "tests": [], "suites": [ { - "uuid": "f6e3faa6-7047-4ef1-a86b-369a5276792c", + "uuid": "4c1018ec-c536-4d1c-87f9-766b644d17c1", "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-chronologies-{chronid}-test.js", - "file": "/test/v2.0-data-chronologies-{chronid}-test.js", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-datasets-{datasetid}-doi-test.js", + "file": "/test/v2.0-data-datasets-{datasetid}-doi-test.js", "beforeHooks": [], "afterHooks": [], "tests": [ { - "title": "should respond 200 for \"A Neotoma chronology object.\"", - "fullTitle": "tests for /v2.0/data/chronologies/{chronid} tests for get should respond 200 for \"A Neotoma chronology object.\"", + "title": "should respond 200 for \"DOI\"", + "fullTitle": "tests for /v2.0/data/datasets/{datasetid}/doi tests for get should respond 200 for \"DOI\"", "timedOut": false, - "duration": 88, + "duration": 69, "state": "passed", "speed": "fast", "pass": true, "fail": false, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/chronologies/2377', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/datasets/6541274/doi', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", "err": {}, - "uuid": "dea1276b-7176-430b-b648-d64fb9f4cd2a", - "parentUUID": "f6e3faa6-7047-4ef1-a86b-369a5276792c", + "uuid": "f0981086-40b6-407b-996c-d9904acc79c1", + "parentUUID": "4c1018ec-c536-4d1c-87f9-766b644d17c1", "isHook": false, "skipped": false } ], "suites": [], "passes": [ - "dea1276b-7176-430b-b648-d64fb9f4cd2a" + "f0981086-40b6-407b-996c-d9904acc79c1" ], "failures": [], "pending": [], "skipped": [], - "duration": 88, + "duration": 69, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 } ], "passes": [], @@ -1814,55 +1585,55 @@ "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 }, { - "uuid": "fcbb9a9d-5f21-484e-a419-375153e36840", - "title": "tests for /v2.0/data/datasets/{datasetid}/doi", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-datasets-{datasetid}-doi-test.js", - "file": "/test/v2.0-data-datasets-{datasetid}-doi-test.js", + "uuid": "bc3a43fd-374b-4339-a1bf-0ed69b05943c", + "title": "tests for /v2.0/data/sites/{siteid}", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-sites-{siteid}-test.js", + "file": "/test/v2.0-data-sites-{siteid}-test.js", "beforeHooks": [], "afterHooks": [], "tests": [], "suites": [ { - "uuid": "0494865a-1e11-463b-87ac-302c48e452f1", + "uuid": "244a06ad-85cd-4012-a66c-837834eddf42", "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-datasets-{datasetid}-doi-test.js", - "file": "/test/v2.0-data-datasets-{datasetid}-doi-test.js", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-sites-{siteid}-test.js", + "file": "/test/v2.0-data-sites-{siteid}-test.js", "beforeHooks": [], "afterHooks": [], "tests": [ { - "title": "should respond 200 for \"DOI\"", - "fullTitle": "tests for /v2.0/data/datasets/{datasetid}/doi tests for get should respond 200 for \"DOI\"", + "title": "should respond 200 for \"An array of sites.\"", + "fullTitle": "tests for /v2.0/data/sites/{siteid} tests for get should respond 200 for \"An array of sites.\"", "timedOut": false, - "duration": 79, + "duration": 85, "state": "passed", "speed": "fast", "pass": true, "fail": false, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/datasets/500/doi', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/sites/30362', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", "err": {}, - "uuid": "8867300c-043e-4528-890a-a245dd8acf94", - "parentUUID": "0494865a-1e11-463b-87ac-302c48e452f1", + "uuid": "e52c3477-8cf8-460b-a37e-2e5509cfa606", + "parentUUID": "244a06ad-85cd-4012-a66c-837834eddf42", "isHook": false, "skipped": false } ], "suites": [], "passes": [ - "8867300c-043e-4528-890a-a245dd8acf94" + "e52c3477-8cf8-460b-a37e-2e5509cfa606" ], "failures": [], "pending": [], "skipped": [], - "duration": 79, + "duration": 85, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 } ], "passes": [], @@ -1872,55 +1643,55 @@ "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 }, { - "uuid": "6caceaaf-2c39-4b7d-9018-9eb2bfc42859", - "title": "tests for /v1.5/data/contacts/{contactid}", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v1.5-data-contacts-{contactid}-test.js", - "file": "/test/v1.5-data-contacts-{contactid}-test.js", + "uuid": "57bf6375-364d-464a-9bd8-ad5f34cfcaa4", + "title": "tests for /v2.0/data/pollen/{id}", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-pollen-{id}-test.js", + "file": "/test/v2.0-data-pollen-{id}-test.js", "beforeHooks": [], "afterHooks": [], "tests": [], "suites": [ { - "uuid": "e0fd4ee3-7bbb-47a4-817d-f7dc058dee72", + "uuid": "9f00c9b9-156e-4bcb-94f0-33eef76722c7", "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v1.5-data-contacts-{contactid}-test.js", - "file": "/test/v1.5-data-contacts-{contactid}-test.js", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-pollen-{id}-test.js", + "file": "/test/v2.0-data-pollen-{id}-test.js", "beforeHooks": [], "afterHooks": [], "tests": [ { - "title": "should respond 200 for \"Contact\"", - "fullTitle": "tests for /v1.5/data/contacts/{contactid} tests for get should respond 200 for \"Contact\"", + "title": "should respond 200 for \"A record of all pollen samples in time/space for a particular taxon.\"", + "fullTitle": "tests for /v2.0/data/pollen/{id} tests for get should respond 200 for \"A record of all pollen samples in time/space for a particular taxon.\"", "timedOut": false, - "duration": 78, + "duration": 2, "state": "passed", "speed": "fast", "pass": true, "fail": false, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v1.5/data/contacts/-43687448', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/pollen/1580', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", "err": {}, - "uuid": "1b1c9f83-2a11-48f3-8de4-38166f094d39", - "parentUUID": "e0fd4ee3-7bbb-47a4-817d-f7dc058dee72", + "uuid": "6096ec71-545f-4174-920e-dce149a8de0a", + "parentUUID": "9f00c9b9-156e-4bcb-94f0-33eef76722c7", "isHook": false, "skipped": false } ], "suites": [], "passes": [ - "1b1c9f83-2a11-48f3-8de4-38166f094d39" + "6096ec71-545f-4174-920e-dce149a8de0a" ], "failures": [], "pending": [], "skipped": [], - "duration": 78, + "duration": 2, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 } ], "passes": [], @@ -1930,55 +1701,55 @@ "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 }, { - "uuid": "33d10cab-8aff-4a39-a342-53bb1b3d2a0c", - "title": "tests for /v2.0/data/datasets_elc/{datasetid}", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-datasets_elc-{datasetid}-test.js", - "file": "/test/v2.0-data-datasets_elc-{datasetid}-test.js", + "uuid": "d8f88bb5-3022-4ed2-92fa-811979847d68", + "title": "tests for /v2.0/apps/constdb/datasets", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-apps-constdb-datasets-test.js", + "file": "/test/v2.0-apps-constdb-datasets-test.js", "beforeHooks": [], "afterHooks": [], "tests": [], "suites": [ { - "uuid": "fed6b626-69e9-4985-8bf2-0cbf3bccc470", + "uuid": "96f9f83d-bff5-478d-b110-6614d555590b", "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-datasets_elc-{datasetid}-test.js", - "file": "/test/v2.0-data-datasets_elc-{datasetid}-test.js", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-apps-constdb-datasets-test.js", + "file": "/test/v2.0-apps-constdb-datasets-test.js", "beforeHooks": [], "afterHooks": [], "tests": [ { - "title": "should respond 200 for \"A Neotoma datasets object suitable for the EarthLife Consortium API.\"", - "fullTitle": "tests for /v2.0/data/datasets_elc/{datasetid} tests for get should respond 200 for \"A Neotoma datasets object suitable for the EarthLife Consortium API.\"", + "title": "should respond 200 for \"Returns the set of datasets contained within a constituent database, identified by the constituent database identifier. Used for quick landing page generation. \"", + "fullTitle": "tests for /v2.0/apps/constdb/datasets tests for get should respond 200 for \"Returns the set of datasets contained within a constituent database, identified by the constituent database identifier. Used for quick landing page generation. \"", "timedOut": false, - "duration": 2573, + "duration": 202, "state": "passed", - "speed": "slow", + "speed": "fast", "pass": true, "fail": false, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/datasets_elc/500', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "code": "var response = request('get', 'http://localhost:3001/v2.0/apps/constdb/datasets', { \n 'qs': {\"dbid\":32},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", "err": {}, - "uuid": "4dc35000-c8dd-4696-9ba9-66452cbfda6d", - "parentUUID": "fed6b626-69e9-4985-8bf2-0cbf3bccc470", + "uuid": "d2b22457-3a7e-4535-8e79-23812031a586", + "parentUUID": "96f9f83d-bff5-478d-b110-6614d555590b", "isHook": false, "skipped": false } ], "suites": [], "passes": [ - "4dc35000-c8dd-4696-9ba9-66452cbfda6d" + "d2b22457-3a7e-4535-8e79-23812031a586" ], "failures": [], "pending": [], "skipped": [], - "duration": 2573, + "duration": 202, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 } ], "passes": [], @@ -1988,21 +1759,21 @@ "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 }, { - "uuid": "dc04a7ea-0178-4c76-a06d-0371908bd2b8", + "uuid": "7eb7405c-b587-4e7d-a0a4-1ee928d20453", "title": "tests for /v2.0/data/geopoliticalunits/{gpid}/sites", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-geopoliticalunits-{gpid}-sites-test.js", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-geopoliticalunits-{gpid}-sites-test.js", "file": "/test/v2.0-data-geopoliticalunits-{gpid}-sites-test.js", "beforeHooks": [], "afterHooks": [], "tests": [], "suites": [ { - "uuid": "06d3f518-802f-416a-a47e-2a087b4433d8", + "uuid": "6d6d8fd2-891c-4036-872d-4df1b348e400", "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-geopoliticalunits-{gpid}-sites-test.js", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-geopoliticalunits-{gpid}-sites-test.js", "file": "/test/v2.0-data-geopoliticalunits-{gpid}-sites-test.js", "beforeHooks": [], "afterHooks": [], @@ -2011,32 +1782,32 @@ "title": "should respond 200 for \"An array of sites.\"", "fullTitle": "tests for /v2.0/data/geopoliticalunits/{gpid}/sites tests for get should respond 200 for \"An array of sites.\"", "timedOut": false, - "duration": 91, + "duration": 93, "state": "passed", "speed": "fast", "pass": true, "fail": false, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/geopoliticalunits/4146/sites', { \n 'qs': {\"limit\": 10,\"offset\": 0},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/geopoliticalunits/4617/sites', { \n 'qs': {\"limit\":6170,\"offset\":69096509},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", "err": {}, - "uuid": "0e65cb4d-75f1-446a-bab6-d938354bd087", - "parentUUID": "06d3f518-802f-416a-a47e-2a087b4433d8", + "uuid": "984f3bdc-cda5-404a-9d72-e4ee345c41fb", + "parentUUID": "6d6d8fd2-891c-4036-872d-4df1b348e400", "isHook": false, "skipped": false } ], "suites": [], "passes": [ - "0e65cb4d-75f1-446a-bab6-d938354bd087" + "984f3bdc-cda5-404a-9d72-e4ee345c41fb" ], "failures": [], "pending": [], "skipped": [], - "duration": 91, + "duration": 93, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 } ], "passes": [], @@ -2046,55 +1817,55 @@ "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 }, { - "uuid": "f73d7b3d-b2a3-4bea-b91c-2797f619e588", - "title": "tests for /v2.0/data/sites/{siteid}/chronologies", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-sites-{siteid}-chronologies-test.js", - "file": "/test/v2.0-data-sites-{siteid}-chronologies-test.js", + "uuid": "bd9ae635-4616-4d03-a432-724efea417f3", + "title": "tests for /v2.0/apps/constdb/datasetages", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-apps-constdb-datasetages-test.js", + "file": "/test/v2.0-apps-constdb-datasetages-test.js", "beforeHooks": [], "afterHooks": [], "tests": [], "suites": [ { - "uuid": "3ee1b47a-6165-49bb-b0da-fa083d830359", + "uuid": "ed0b6ec4-c83a-49ab-9d52-8182ac855894", "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-sites-{siteid}-chronologies-test.js", - "file": "/test/v2.0-data-sites-{siteid}-chronologies-test.js", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-apps-constdb-datasetages-test.js", + "file": "/test/v2.0-apps-constdb-datasetages-test.js", "beforeHooks": [], "afterHooks": [], "tests": [ { - "title": "should respond 200 for \"chronology\"", - "fullTitle": "tests for /v2.0/data/sites/{siteid}/chronologies tests for get should respond 200 for \"chronology\"", + "title": "should respond 200 for \"Returns an ordered array (from earliest to latest) of upload counts by month (YYYY/MM/DD; all days as 01). Months with no uploads are excluded. \"", + "fullTitle": "tests for /v2.0/apps/constdb/datasetages tests for get should respond 200 for \"Returns an ordered array (from earliest to latest) of upload counts by month (YYYY/MM/DD; all days as 01). Months with no uploads are excluded. \"", "timedOut": false, - "duration": 936, + "duration": 13630, "state": "passed", - "speed": "medium", + "speed": "slow", "pass": true, "fail": false, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/sites/1711/chronologies', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "code": "var response = request('get', 'http://localhost:3001/v2.0/apps/constdb/datasetages', { \n 'qs': {\"dbid\":11},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", "err": {}, - "uuid": "d279d0cc-9599-4418-a415-445d972b8ac3", - "parentUUID": "3ee1b47a-6165-49bb-b0da-fa083d830359", + "uuid": "dad89b85-3b95-4d58-8cbe-c483c9e25a76", + "parentUUID": "ed0b6ec4-c83a-49ab-9d52-8182ac855894", "isHook": false, "skipped": false } ], "suites": [], "passes": [ - "d279d0cc-9599-4418-a415-445d972b8ac3" + "dad89b85-3b95-4d58-8cbe-c483c9e25a76" ], "failures": [], "pending": [], "skipped": [], - "duration": 936, + "duration": 13630, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 } ], "passes": [], @@ -2104,55 +1875,55 @@ "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 }, { - "uuid": "cc4b16f4-677f-45fd-bcc4-fb1726833620", - "title": "tests for /v2.0/data/datasets", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-datasets-test.js", - "file": "/test/v2.0-data-datasets-test.js", + "uuid": "669d3e0a-c39e-46c0-a784-2510968312b7", + "title": "tests for /v1.5/data/geopoliticalunits/{gpid}", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v1.5-data-geopoliticalunits-{gpid}-test.js", + "file": "/test/v1.5-data-geopoliticalunits-{gpid}-test.js", "beforeHooks": [], "afterHooks": [], "tests": [], "suites": [ { - "uuid": "ea70fe89-4c72-4a37-876d-90b16401109e", + "uuid": "40e3af24-fce9-4ab9-a0cd-29ff343fa89d", "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-datasets-test.js", - "file": "/test/v2.0-data-datasets-test.js", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v1.5-data-geopoliticalunits-{gpid}-test.js", + "file": "/test/v1.5-data-geopoliticalunits-{gpid}-test.js", "beforeHooks": [], "afterHooks": [], "tests": [ { - "title": "should respond 200 for \"An array of datasets.\"", - "fullTitle": "tests for /v2.0/data/datasets tests for get should respond 200 for \"An array of datasets.\"", - "timedOut": false, - "duration": 303, + "title": "should respond 200 for \"An array of geopolitical units.\"", + "fullTitle": "tests for /v1.5/data/geopoliticalunits/{gpid} tests for get should respond 200 for \"An array of geopolitical units.\"", + "timedOut": false, + "duration": 76, "state": "passed", "speed": "fast", "pass": true, "fail": false, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/datasets', { \n 'qs': {\"sitename\":\"ut cillum consectetur\",\"database\":\"St. Croix Watershed Research Station of the Science Museum of Minnesota\",\"datasettype\":\"macroinvertebrate\",\"altmin\": 10,\"altmax\": 100,\"loc\":\"{\\\"type\\\":\\\"Polygon\\\",\\\"crs\\\":{\\\"type\\\":\\\"name\\\",\\\"properties\\\":{\\\"name\\\":\\\"EPSG:4326\\\"}},\\\"coordinates\\\":[[[13.4,55.92],[13.5,55.92],[13.5,55.95],[13.4,55.95],[13.4,55.92]]]}\",\"siteid\":31891,\"datasetid\":23595575,\"doi\":\"10B18997295/TZX21W4\",\"gpid\":5392,\"keyword\":\"modern\",\"contactid\":20234,\"taxa\":\"exercitation amet irure Excepteur\",\"ageyoung\": 1000,\"ageold\": 10000,\"ageof\":7003042,\"limit\": 10,\"offset\": 0},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "code": "var response = request('get', 'http://localhost:3001/v1.5/data/geopoliticalunits/500', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", "err": {}, - "uuid": "bd6c8f6a-6cd0-44b1-b78b-de09410a6da9", - "parentUUID": "ea70fe89-4c72-4a37-876d-90b16401109e", + "uuid": "23d7c9db-5eb8-4efe-9098-7af2eceaadc2", + "parentUUID": "40e3af24-fce9-4ab9-a0cd-29ff343fa89d", "isHook": false, "skipped": false } ], "suites": [], "passes": [ - "bd6c8f6a-6cd0-44b1-b78b-de09410a6da9" + "23d7c9db-5eb8-4efe-9098-7af2eceaadc2" ], "failures": [], "pending": [], "skipped": [], - "duration": 303, + "duration": 76, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 } ], "passes": [], @@ -2162,55 +1933,55 @@ "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 }, { - "uuid": "55006dca-b29c-4a54-81ce-de26289e627d", - "title": "tests for /v2.0/data/datasets/{datasetid}/contacts", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-datasets-{datasetid}-contacts-test.js", - "file": "/test/v2.0-data-datasets-{datasetid}-contacts-test.js", + "uuid": "c4bd0ba1-11c3-44a4-bbc9-0fb8a1a9b8d1", + "title": "tests for /v1.5/data/contacts/{contactid}", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v1.5-data-contacts-{contactid}-test.js", + "file": "/test/v1.5-data-contacts-{contactid}-test.js", "beforeHooks": [], "afterHooks": [], "tests": [], "suites": [ { - "uuid": "cf1fee6e-054b-4b20-a439-ab110296248d", + "uuid": "d557c0ad-f92f-4e4c-9f44-e5cac7a3d817", "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-datasets-{datasetid}-contacts-test.js", - "file": "/test/v2.0-data-datasets-{datasetid}-contacts-test.js", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v1.5-data-contacts-{contactid}-test.js", + "file": "/test/v1.5-data-contacts-{contactid}-test.js", "beforeHooks": [], "afterHooks": [], "tests": [ { - "title": "should respond 200 for \"contact\"", - "fullTitle": "tests for /v2.0/data/datasets/{datasetid}/contacts tests for get should respond 200 for \"contact\"", + "title": "should respond 200 for \"Contact\"", + "fullTitle": "tests for /v1.5/data/contacts/{contactid} tests for get should respond 200 for \"Contact\"", "timedOut": false, - "duration": 78, + "duration": 70, "state": "passed", "speed": "fast", "pass": true, "fail": false, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/datasets/500/contacts', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "code": "var response = request('get', 'http://localhost:3001/v1.5/data/contacts/500', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", "err": {}, - "uuid": "4839f92a-f628-42d6-918e-6ff3320bf694", - "parentUUID": "cf1fee6e-054b-4b20-a439-ab110296248d", + "uuid": "6b32937d-4868-4140-9e15-e23c960508a8", + "parentUUID": "d557c0ad-f92f-4e4c-9f44-e5cac7a3d817", "isHook": false, "skipped": false } ], "suites": [], "passes": [ - "4839f92a-f628-42d6-918e-6ff3320bf694" + "6b32937d-4868-4140-9e15-e23c960508a8" ], "failures": [], "pending": [], "skipped": [], - "duration": 78, + "duration": 70, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 } ], "passes": [], @@ -2220,343 +1991,229 @@ "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 }, { - "uuid": "e07fa6e2-6101-411f-98cd-6105349198f4", - "title": "Get geopolitical data:", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/geopolitical.js", - "file": "/test/geopolitical.js", + "uuid": "dd6d232a-15a6-4d21-9209-dce099884574", + "title": "tests for /v2.0/data/spatial/icesheet", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-spatial-icesheet-test.js", + "file": "/test/v2.0-data-spatial-icesheet-test.js", "beforeHooks": [], "afterHooks": [], - "tests": [ - { - "title": "An empty query returns a valid response.", - "fullTitle": "Get geopolitical data: An empty query returns a valid response.", - "timedOut": false, - "duration": 105, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, - "pending": false, - "context": null, - "code": "api.get('v2.0/data/geopoliticalunits/')\n .set('Accept', 'application/json')\n .expect(200, done);", - "err": {}, - "uuid": "21640fca-2846-4018-bebc-15deb656af33", - "parentUUID": "e07fa6e2-6101-411f-98cd-6105349198f4", - "isHook": false, - "skipped": false - }, - { - "title": "The default limit of 25 should be reached for country level data:", - "fullTitle": "Get geopolitical data: The default limit of 25 should be reached for country level data:", - "timedOut": false, - "duration": 86, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, - "pending": false, - "context": null, - "code": "api.get('v2.0/data/geopoliticalunits/?rank=1')\n .set('Accept', 'application/json')\n .end(function(err, res) {\n assert.equal(res.body.data.length, 25);\n done();\n });", - "err": {}, - "uuid": "abb29302-3742-43ce-8241-60f826f778f7", - "parentUUID": "e07fa6e2-6101-411f-98cd-6105349198f4", - "isHook": false, - "skipped": false - }, - { - "title": "Changing the limit should change the number of countries retrieved:", - "fullTitle": "Get geopolitical data: Changing the limit should change the number of countries retrieved:", - "timedOut": false, - "duration": 80, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, - "pending": false, - "context": null, - "code": "api.get('v2.0/data/geopoliticalunits/?rank=1&limit=30')\n .set('Accept', 'application/json')\n .end(function(err, res) {\n assert.equal(res.body.data.length, 30);\n done();\n });", - "err": {}, - "uuid": "19f7696c-a0d0-45af-997c-a28a04d26d56", - "parentUUID": "e07fa6e2-6101-411f-98cd-6105349198f4", - "isHook": false, - "skipped": false - }, + "tests": [], + "suites": [ { - "title": "A single geopolitical unit (12) should be returned.", - "fullTitle": "Get geopolitical data: A single geopolitical unit (12) should be returned.", - "timedOut": false, - "duration": 79, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, - "pending": false, - "context": null, - "code": "api.get('v2.0/data/geopoliticalunits/12')\n .set('Accept', 'application/json')\n .end(function(err, res) {\n assert.equal(res.body.data[0]['geopoliticalid'], 12);\n done();\n });", - "err": {}, - "uuid": "ed7d8d03-264f-4e29-9c16-cd45f75ecc88", - "parentUUID": "e07fa6e2-6101-411f-98cd-6105349198f4", - "isHook": false, - "skipped": false + "uuid": "d5e5b824-86d1-48f7-a08d-fef67bbfecb3", + "title": "tests for get", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-spatial-icesheet-test.js", + "file": "/test/v2.0-data-spatial-icesheet-test.js", + "beforeHooks": [], + "afterHooks": [], + "tests": [ + { + "title": "should respond 200 for \"An object containing glacial extents for the selected time period (in **calibrated radiocarbon years**). \"", + "fullTitle": "tests for /v2.0/data/spatial/icesheet tests for get should respond 200 for \"An object containing glacial extents for the selected time period (in **calibrated radiocarbon years**). \"", + "timedOut": false, + "duration": 381, + "state": "passed", + "speed": "fast", + "pass": true, + "fail": false, + "pending": false, + "context": null, + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/spatial/icesheet', { \n 'qs': {\"age\":4221,\"proj\":3857,\"prec\":721.3013029865915},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "err": {}, + "uuid": "aee4071e-ea82-42b3-80a9-a87ac03c4b66", + "parentUUID": "d5e5b824-86d1-48f7-a08d-fef67bbfecb3", + "isHook": false, + "skipped": false + } + ], + "suites": [], + "passes": [ + "aee4071e-ea82-42b3-80a9-a87ac03c4b66" + ], + "failures": [], + "pending": [], + "skipped": [], + "duration": 381, + "root": false, + "rootEmpty": false, + "_timeout": 900000 } ], - "suites": [], - "passes": [ - "21640fca-2846-4018-bebc-15deb656af33", - "abb29302-3742-43ce-8241-60f826f778f7", - "19f7696c-a0d0-45af-997c-a28a04d26d56", - "ed7d8d03-264f-4e29-9c16-cd45f75ecc88" - ], + "passes": [], "failures": [], "pending": [], "skipped": [], - "duration": 350, + "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 5000 + "_timeout": 900000 }, { - "uuid": "c8c04131-448e-4687-8b41-d8c64b6af536", - "title": "Any path goes to the api documentation:", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/neotoma_test.js", - "file": "/test/neotoma_test.js", + "uuid": "20f5a74b-91d3-476f-ab42-9df8d21e45e2", + "title": "tests for /v2.0/data/taxa", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-taxa-test.js", + "file": "/test/v2.0-data-taxa-test.js", "beforeHooks": [], "afterHooks": [], - "tests": [ + "tests": [], + "suites": [ { - "title": "`api-docs` redirects to the api documentation.", - "fullTitle": "Any path goes to the api documentation: `api-docs` redirects to the api documentation.", - "timedOut": false, - "duration": 2, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, - "pending": false, - "context": null, - "code": "api.get('v2')\n .set('Accept', 'application/json')\n .expect(302, done);", - "err": {}, - "uuid": "56b67ff7-1c75-4350-936c-3d7771479133", - "parentUUID": "c8c04131-448e-4687-8b41-d8c64b6af536", - "isHook": false, - "skipped": false + "uuid": "477a39d8-75be-444b-984f-e569606bf4a0", + "title": "tests for get", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-taxa-test.js", + "file": "/test/v2.0-data-taxa-test.js", + "beforeHooks": [], + "afterHooks": [], + "tests": [ + { + "title": "should respond 200 for \"A taxon or array of taxa.\"", + "fullTitle": "tests for /v2.0/data/taxa tests for get should respond 200 for \"A taxon or array of taxa.\"", + "timedOut": false, + "duration": 167, + "state": "passed", + "speed": "fast", + "pass": true, + "fail": false, + "pending": false, + "context": null, + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/taxa', { \n 'qs': {\"taxonname\":\"consectetur sit Lorem\",\"taxagroup\":\"ea nulla aute tempor\",\"ecolgroup\":\"nulla eu consequat sunt\",\"status\":1,\"limit\":2611,\"offset\":58687158},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "err": {}, + "uuid": "c0d326a7-c12d-4b20-9444-bda961f52bde", + "parentUUID": "477a39d8-75be-444b-984f-e569606bf4a0", + "isHook": false, + "skipped": false + } + ], + "suites": [], + "passes": [ + "c0d326a7-c12d-4b20-9444-bda961f52bde" + ], + "failures": [], + "pending": [], + "skipped": [], + "duration": 167, + "root": false, + "rootEmpty": false, + "_timeout": 900000 } ], - "suites": [], - "passes": [ - "56b67ff7-1c75-4350-936c-3d7771479133" - ], + "passes": [], "failures": [], "pending": [], "skipped": [], - "duration": 2, + "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 }, { - "uuid": "03f4cf03-4205-45fb-9d3d-a2f3dc489f8c", - "title": "Get publication data any number of ways:", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/publications.js", - "file": "/test/publications.js", + "uuid": "d82b0219-cc07-41b2-b63d-e9400a5d308f", + "title": "tests for /v1.5/apps/collectionTypes", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v1.5-apps-collectionTypes-test.js", + "file": "/test/v1.5-apps-collectionTypes-test.js", "beforeHooks": [], "afterHooks": [], - "tests": [ - { - "title": "Get publication by singular id & return same id:", - "fullTitle": "Get publication data any number of ways: Get publication by singular id & return same id:", - "timedOut": false, - "duration": 92, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, - "pending": false, - "context": null, - "code": "api.get('v2.0/data/publications/12')\n .set('Accept', 'application/json')\n .expect(function(res) {\n return res.body.data[0].publication.publicationid === 12;\n })\n .expect(200, done);", - "err": {}, - "uuid": "fd70363a-0b34-4984-8ac0-35a2bb54f45f", - "parentUUID": "03f4cf03-4205-45fb-9d3d-a2f3dc489f8c", - "isHook": false, - "skipped": false - }, + "tests": [], + "suites": [ { - "title": "Get publication by comma sepatarated ids:", - "fullTitle": "Get publication data any number of ways: Get publication by comma sepatarated ids:", - "timedOut": false, - "duration": 84, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, - "pending": false, - "context": null, - "code": "api.get('v2.0/data/publications/12,13')\n .set('Accept', 'application/json')\n .expect(function(res) {\n return res.body.data.map((x) => x.publicationid) == [12, 13];\n })\n .expect(200, done);", - "err": {}, - "uuid": "7d523473-2821-40c6-9da2-78cfdc72ad8f", - "parentUUID": "03f4cf03-4205-45fb-9d3d-a2f3dc489f8c", - "isHook": false, - "skipped": false - }, + "uuid": "0d4c25d7-cabd-4e81-be05-b1f83bfd3ba6", + "title": "tests for get", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v1.5-apps-collectionTypes-test.js", + "file": "/test/v1.5-apps-collectionTypes-test.js", + "beforeHooks": [], + "afterHooks": [], + "tests": [ + { + "title": "should respond 200 for \"Returns the set of collectiontypes recorded in Neotoma.\"", + "fullTitle": "tests for /v1.5/apps/collectionTypes tests for get should respond 200 for \"Returns the set of collectiontypes recorded in Neotoma.\"", + "timedOut": false, + "duration": 71, + "state": "passed", + "speed": "fast", + "pass": true, + "fail": false, + "pending": false, + "context": null, + "code": "var response = request('get', 'http://localhost:3001/v1.5/apps/collectionTypes', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "err": {}, + "uuid": "ba8280a2-3929-4626-b24e-8cbc85655353", + "parentUUID": "0d4c25d7-cabd-4e81-be05-b1f83bfd3ba6", + "isHook": false, + "skipped": false + } + ], + "suites": [], + "passes": [ + "ba8280a2-3929-4626-b24e-8cbc85655353" + ], + "failures": [], + "pending": [], + "skipped": [], + "duration": 71, + "root": false, + "rootEmpty": false, + "_timeout": 900000 + } + ], + "passes": [], + "failures": [], + "pending": [], + "skipped": [], + "duration": 0, + "root": false, + "rootEmpty": false, + "_timeout": 900000 + }, + { + "uuid": "3bc719e2-1a2c-4484-8906-02873ea70aa5", + "title": "tests for /v1.5/data/downloads/{datasetid}", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v1.5-data-downloads-{datasetid}-test.js", + "file": "/test/v1.5-data-downloads-{datasetid}-test.js", + "beforeHooks": [], + "afterHooks": [], + "tests": [], + "suites": [ { - "title": "Get publication by querying author:", - "fullTitle": "Get publication data any number of ways: Get publication by querying author:", - "timedOut": false, - "duration": 346, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, - "pending": false, - "context": null, - "code": "api.get('v2.0/data/publications?familyname=Grimm')\n .set('Accept', 'application/json')\n .expect(function(res) {\n return res.body.data.result.length > 0;\n })\n .expect(200, done);", - "err": {}, - "uuid": "fcf36476-e1be-4189-9d97-01e5ec941d82", - "parentUUID": "03f4cf03-4205-45fb-9d3d-a2f3dc489f8c", - "isHook": false, - "skipped": false - }, - { - "title": "Get publications using pubs with missing links:", - "fullTitle": "Get publication data any number of ways: Get publications using pubs with missing links:", - "timedOut": false, - "duration": 91, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, - "pending": false, - "context": null, - "code": "api.get('v2.0/data/publications?publicationid=12,14,1412,99999')\n .set('Accept', 'application/json')\n .expect(function(res) {\n return res.body.data.result.length > 0;\n })\n .expect(200, done);", - "err": {}, - "uuid": "3c398781-8bae-423c-87fb-32cfbe1bd098", - "parentUUID": "03f4cf03-4205-45fb-9d3d-a2f3dc489f8c", - "isHook": false, - "skipped": false - }, - { - "title": "Get publication by site id:", - "fullTitle": "Get publication data any number of ways: Get publication by site id:", - "timedOut": false, - "duration": 88, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, - "pending": false, - "context": null, - "code": "api.get('v2.0/data/sites/12/publications')\n .set('Accept', 'application/json')\n .expect(function(res) {\n return res.body.data.length > 0;\n })\n .expect(200, done);", - "err": {}, - "uuid": "438458a3-21f3-4a1e-a2ad-be122fec9624", - "parentUUID": "03f4cf03-4205-45fb-9d3d-a2f3dc489f8c", - "isHook": false, - "skipped": false - }, - { - "title": "Get publication by site id finds pubs for all sites:", - "fullTitle": "Get publication data any number of ways: Get publication by site id finds pubs for all sites:", - "timedOut": false, - "duration": 95, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, - "pending": false, - "context": null, - "code": "api.get('v2.0/data/sites/12,13,14,15/publications')\n .set('Accept', 'application/json')\n .expect(function(res) {\n const flatten = (list) => list.reduce(\n (a, b) => a.concat(Array.isArray(b) ? flatten(b) : b), [],\n );\n const sites = [12, 13, 14, 15];\n const siteids = flatten(res.body.data.map((x) => x.siteid));\n return sites.every((x) => siteids.includes(x));\n })\n .expect(200, done);", - "err": {}, - "uuid": "7f5aa9a5-42bc-40df-8831-8500cc0d9de0", - "parentUUID": "03f4cf03-4205-45fb-9d3d-a2f3dc489f8c", - "isHook": false, - "skipped": false - }, - { - "title": "Get publication by dataset id finds pubs for all datasets:", - "fullTitle": "Get publication data any number of ways: Get publication by dataset id finds pubs for all datasets:", - "timedOut": false, - "duration": 94, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, - "pending": false, - "context": null, - "code": "api.get('v2.0/data/datasets/12,13,2201,6000/publications')\n .set('Accept', 'application/json')\n .expect(function(res) {\n const flatten = (list) => list.reduce(\n (a, b) => a.concat(Array.isArray(b) ? flatten(b) : b), [],\n );\n const datasets = [12, 6000, 13, 2201];\n const datasetids = flatten(res.body.data.map((x) => x.datasetid));\n return datasets.every((x) => datasetids.includes(x));\n })\n .expect(200, done);", - "err": {}, - "uuid": "9d838ea8-80dd-404b-a4fb-e601feb9618b", - "parentUUID": "03f4cf03-4205-45fb-9d3d-a2f3dc489f8c", - "isHook": false, - "skipped": false - } - ], - "suites": [], - "passes": [ - "fd70363a-0b34-4984-8ac0-35a2bb54f45f", - "7d523473-2821-40c6-9da2-78cfdc72ad8f", - "fcf36476-e1be-4189-9d97-01e5ec941d82", - "3c398781-8bae-423c-87fb-32cfbe1bd098", - "438458a3-21f3-4a1e-a2ad-be122fec9624", - "7f5aa9a5-42bc-40df-8831-8500cc0d9de0", - "9d838ea8-80dd-404b-a4fb-e601feb9618b" - ], - "failures": [], - "pending": [], - "skipped": [], - "duration": 890, - "root": false, - "rootEmpty": false, - "_timeout": 15000 - }, - { - "uuid": "9c5b87a1-cddf-439a-b522-11428453060e", - "title": "tests for /v2.0/data/summary/rawbymonth", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-summary-rawbymonth-test.js", - "file": "/test/v2.0-data-summary-rawbymonth-test.js", - "beforeHooks": [], - "afterHooks": [], - "tests": [], - "suites": [ - { - "uuid": "1215b9c6-ac60-489b-ba0b-6c842c0f6735", + "uuid": "41608679-ac64-4aa6-ba54-bcce8f0ffa12", "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-summary-rawbymonth-test.js", - "file": "/test/v2.0-data-summary-rawbymonth-test.js", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v1.5-data-downloads-{datasetid}-test.js", + "file": "/test/v1.5-data-downloads-{datasetid}-test.js", "beforeHooks": [], "afterHooks": [], "tests": [ { - "title": "should respond 200 for \"A count of the data objects added to Neotoma.\"", - "fullTitle": "tests for /v2.0/data/summary/rawbymonth tests for get should respond 200 for \"A count of the data objects added to Neotoma.\"", + "title": "should respond 200 for \"Returned download object.\"", + "fullTitle": "tests for /v1.5/data/downloads/{datasetid} tests for get should respond 200 for \"Returned download object.\"", "timedOut": false, - "duration": 15623, + "duration": 648, "state": "passed", - "speed": "slow", + "speed": "medium", "pass": true, "fail": false, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/summary/rawbymonth', { \n 'qs': {\"start\": 1,\"end\": 10},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "code": "var response = request('get', 'http://localhost:3001/v1.5/data/downloads/500', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", "err": {}, - "uuid": "e464bab8-5dff-4096-8687-5694ff636681", - "parentUUID": "1215b9c6-ac60-489b-ba0b-6c842c0f6735", + "uuid": "a834fea9-e152-497e-968c-c7725f30c60c", + "parentUUID": "41608679-ac64-4aa6-ba54-bcce8f0ffa12", "isHook": false, "skipped": false } ], "suites": [], "passes": [ - "e464bab8-5dff-4096-8687-5694ff636681" + "a834fea9-e152-497e-968c-c7725f30c60c" ], "failures": [], "pending": [], "skipped": [], - "duration": 15623, + "duration": 648, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 } ], "passes": [], @@ -2566,55 +2223,55 @@ "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 }, { - "uuid": "80edfff0-4fa4-4b32-af40-d247e51b7be3", - "title": "tests for /v2.0/data/datasets/{datasetid}/chronologies", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-datasets-{datasetid}-chronologies-test.js", - "file": "/test/v2.0-data-datasets-{datasetid}-chronologies-test.js", + "uuid": "00a12f4b-133e-4607-8a10-00ae90bb19db", + "title": "tests for /v2.0/data/spatial/faunal", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-spatial-faunal-test.js", + "file": "/test/v2.0-data-spatial-faunal-test.js", "beforeHooks": [], "afterHooks": [], "tests": [], "suites": [ { - "uuid": "de39b591-9069-4087-bbbf-475177c7fcfc", + "uuid": "3a7af812-fc50-4a83-8903-0ad0f0d2574c", "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-datasets-{datasetid}-chronologies-test.js", - "file": "/test/v2.0-data-datasets-{datasetid}-chronologies-test.js", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-spatial-faunal-test.js", + "file": "/test/v2.0-data-spatial-faunal-test.js", "beforeHooks": [], "afterHooks": [], "tests": [ { - "title": "should respond 200 for \"chronology\"", - "fullTitle": "tests for /v2.0/data/datasets/{datasetid}/chronologies tests for get should respond 200 for \"chronology\"", + "title": "should respond 200 for \"An object containing all matched species names, identifiers and a GeoJSON polygon representing the UNIONed ranges for the selected species. All data is derived from:
* Mammal Diversity Database. (2020). Mammal Diversity Database (Version 1.2) [Data set]. Zenodo. DOI: [10.5281/zenodo.4139818](https://doi.org/10.5281/zenodo.4139818).
* Map of Life. (2021). Mammal range maps harmonised to the Mammals Diversity Database [Data set]. Map of Life. [10.48600/MOL-48VZ-P413](https://doi.org/10.48600/MOL-48VZ-P413) \"", + "fullTitle": "tests for /v2.0/data/spatial/faunal tests for get should respond 200 for \"An object containing all matched species names, identifiers and a GeoJSON polygon representing the UNIONed ranges for the selected species. All data is derived from:
* Mammal Diversity Database. (2020). Mammal Diversity Database (Version 1.2) [Data set]. Zenodo. DOI: [10.5281/zenodo.4139818](https://doi.org/10.5281/zenodo.4139818).
* Map of Life. (2021). Mammal range maps harmonised to the Mammals Diversity Database [Data set]. Map of Life. [10.48600/MOL-48VZ-P413](https://doi.org/10.48600/MOL-48VZ-P413) \"", "timedOut": false, - "duration": 88, + "duration": 82, "state": "passed", "speed": "fast", "pass": true, "fail": false, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/datasets/500/chronologies', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/spatial/faunal', { \n 'qs': {\"sciname\":\"amet ad labore commodo\",\"proj\":3857,\"prec\":18.365115590120922},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", "err": {}, - "uuid": "1c55f978-5206-4cf8-9859-e031288dd1bc", - "parentUUID": "de39b591-9069-4087-bbbf-475177c7fcfc", + "uuid": "20982b05-d738-4bc2-9921-e6b8f2e38f68", + "parentUUID": "3a7af812-fc50-4a83-8903-0ad0f0d2574c", "isHook": false, "skipped": false } ], "suites": [], "passes": [ - "1c55f978-5206-4cf8-9859-e031288dd1bc" + "20982b05-d738-4bc2-9921-e6b8f2e38f68" ], "failures": [], "pending": [], "skipped": [], - "duration": 88, + "duration": 82, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 } ], "passes": [], @@ -2624,55 +2281,55 @@ "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 }, { - "uuid": "210371e4-4fab-4cb0-a9bd-eece9649e8b3", - "title": "tests for /v2.0/data/geopoliticalunits/{gpid}", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-geopoliticalunits-{gpid}-test.js", - "file": "/test/v2.0-data-geopoliticalunits-{gpid}-test.js", + "uuid": "edf0a6e8-d218-46a9-8ec0-18bcfae0cc73", + "title": "tests for /v2.0/apps/constdb", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-apps-constdb-test.js", + "file": "/test/v2.0-apps-constdb-test.js", "beforeHooks": [], "afterHooks": [], "tests": [], "suites": [ { - "uuid": "bde09a8b-1f9f-49f5-9ad7-9ce3b9ed4133", + "uuid": "eb26b263-ae87-40d7-b236-19d3f8c5f88d", "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-geopoliticalunits-{gpid}-test.js", - "file": "/test/v2.0-data-geopoliticalunits-{gpid}-test.js", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-apps-constdb-test.js", + "file": "/test/v2.0-apps-constdb-test.js", "beforeHooks": [], "afterHooks": [], "tests": [ { - "title": "should respond 200 for \"An array of geopolitical units.\"", - "fullTitle": "tests for /v2.0/data/geopoliticalunits/{gpid} tests for get should respond 200 for \"An array of geopolitical units.\"", + "title": "should respond 200 for \"Returns metadata about each [constituent database](https://www.neotomadb.org/data/constituent-databases) in Neotoma, including Summary Information about dataset types within the database and the age spans of the records in the database. Constituent databases \"", + "fullTitle": "tests for /v2.0/apps/constdb tests for get should respond 200 for \"Returns metadata about each [constituent database](https://www.neotomadb.org/data/constituent-databases) in Neotoma, including Summary Information about dataset types within the database and the age spans of the records in the database. Constituent databases \"", "timedOut": false, - "duration": 78, + "duration": 36093, "state": "passed", - "speed": "fast", + "speed": "slow", "pass": true, "fail": false, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/geopoliticalunits/523', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "code": "var response = request('get', 'http://localhost:3001/v2.0/apps/constdb', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", "err": {}, - "uuid": "d862e0fa-8ae8-4213-b7be-37780444c861", - "parentUUID": "bde09a8b-1f9f-49f5-9ad7-9ce3b9ed4133", + "uuid": "087c444b-978a-4083-aa67-9c60c054459f", + "parentUUID": "eb26b263-ae87-40d7-b236-19d3f8c5f88d", "isHook": false, "skipped": false } ], "suites": [], "passes": [ - "d862e0fa-8ae8-4213-b7be-37780444c861" + "087c444b-978a-4083-aa67-9c60c054459f" ], "failures": [], "pending": [], "skipped": [], - "duration": 78, + "duration": 36093, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 } ], "passes": [], @@ -2682,55 +2339,55 @@ "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 }, { - "uuid": "2cbe9c0e-7489-4b70-b363-b13f74fb08ea", - "title": "tests for /v1.5/dbtables/{table}", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v1.5-dbtables-{table}-test.js", - "file": "/test/v1.5-dbtables-{table}-test.js", + "uuid": "4894bc11-6719-4dd3-9782-f912be9f78ae", + "title": "tests for /v2.0/data/contacts/{contactid}/sites", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-contacts-{contactid}-sites-test.js", + "file": "/test/v2.0-data-contacts-{contactid}-sites-test.js", "beforeHooks": [], "afterHooks": [], "tests": [], "suites": [ { - "uuid": "30ca43a0-f387-4cbd-8afd-bb833691ce32", + "uuid": "4c3fab65-4cd5-4886-ad1a-3a0fef9d6b57", "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v1.5-dbtables-{table}-test.js", - "file": "/test/v1.5-dbtables-{table}-test.js", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-contacts-{contactid}-sites-test.js", + "file": "/test/v2.0-data-contacts-{contactid}-sites-test.js", "beforeHooks": [], "afterHooks": [], "tests": [ { - "title": "should respond 200 for \"Returned table.\"", - "fullTitle": "tests for /v1.5/dbtables/{table} tests for get should respond 200 for \"Returned table.\"", + "title": "should respond 200 for \"A Neotoma sites object.\"", + "fullTitle": "tests for /v2.0/data/contacts/{contactid}/sites tests for get should respond 200 for \"A Neotoma sites object.\"", "timedOut": false, - "duration": 78, + "duration": 163, "state": "passed", "speed": "fast", "pass": true, "fail": false, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v1.5/dbtables/geochrontypes', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/contacts/12837/sites', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", "err": {}, - "uuid": "8b06f0c3-2027-4804-8023-cba7d520b1ee", - "parentUUID": "30ca43a0-f387-4cbd-8afd-bb833691ce32", + "uuid": "b9e06b8f-78a5-4725-99fe-acbd290e483e", + "parentUUID": "4c3fab65-4cd5-4886-ad1a-3a0fef9d6b57", "isHook": false, "skipped": false } ], "suites": [], "passes": [ - "8b06f0c3-2027-4804-8023-cba7d520b1ee" + "b9e06b8f-78a5-4725-99fe-acbd290e483e" ], "failures": [], "pending": [], "skipped": [], - "duration": 78, + "duration": 163, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 } ], "passes": [], @@ -2740,55 +2397,55 @@ "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 }, { - "uuid": "2cff37d3-5de1-49c0-bd8d-58421df55e6d", - "title": "tests for /v2.0/data/sites/{siteid}/geopoliticalunits", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-sites-{siteid}-geopoliticalunits-test.js", - "file": "/test/v2.0-data-sites-{siteid}-geopoliticalunits-test.js", + "uuid": "6fde3175-41c2-474b-955b-18d7297298ed", + "title": "tests for /v2.0/data/datasets_elc/{datasetid}", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-datasets_elc-{datasetid}-test.js", + "file": "/test/v2.0-data-datasets_elc-{datasetid}-test.js", "beforeHooks": [], "afterHooks": [], "tests": [], "suites": [ { - "uuid": "db2ad6a2-bfd4-4b4a-b0a0-d9c67c6b6794", + "uuid": "1d82a3f7-9deb-4f9c-99b7-e0d2076f3bf7", "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-sites-{siteid}-geopoliticalunits-test.js", - "file": "/test/v2.0-data-sites-{siteid}-geopoliticalunits-test.js", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-datasets_elc-{datasetid}-test.js", + "file": "/test/v2.0-data-datasets_elc-{datasetid}-test.js", "beforeHooks": [], "afterHooks": [], "tests": [ { - "title": "should respond 200 for \"An array of geopolitical units.\"", - "fullTitle": "tests for /v2.0/data/sites/{siteid}/geopoliticalunits tests for get should respond 200 for \"An array of geopolitical units.\"", + "title": "should respond 200 for \"A Neotoma datasets object suitable for the EarthLife Consortium API.\"", + "fullTitle": "tests for /v2.0/data/datasets_elc/{datasetid} tests for get should respond 200 for \"A Neotoma datasets object suitable for the EarthLife Consortium API.\"", "timedOut": false, - "duration": 82, + "duration": 76, "state": "passed", "speed": "fast", "pass": true, "fail": false, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/sites/500/geopoliticalunits', { \n 'qs': {\"limit\": 10,\"offset\": 0},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/datasets_elc/98902659', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", "err": {}, - "uuid": "cbc66d22-e7b8-4851-a3a1-562ee6a87c92", - "parentUUID": "db2ad6a2-bfd4-4b4a-b0a0-d9c67c6b6794", + "uuid": "0f1d9b55-f5ce-4947-b170-4ee930a5a390", + "parentUUID": "1d82a3f7-9deb-4f9c-99b7-e0d2076f3bf7", "isHook": false, "skipped": false } ], "suites": [], "passes": [ - "cbc66d22-e7b8-4851-a3a1-562ee6a87c92" + "0f1d9b55-f5ce-4947-b170-4ee930a5a390" ], "failures": [], "pending": [], "skipped": [], - "duration": 82, + "duration": 76, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 } ], "passes": [], @@ -2798,229 +2455,208 @@ "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 }, { - "uuid": "009382e2-b23f-4e2a-916e-e0f55d62ec3d", - "title": "tests for /v2.0/data/speleothems/{collectionunitid}", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-speleothems-{collectionunitid}-test.js", - "file": "/test/v2.0-data-speleothems-{collectionunitid}-test.js", + "uuid": "651a86c1-c107-4146-bb90-7e4b635d2c2f", + "title": "Get publication data any number of ways:", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/publications.js", + "file": "/test/publications.js", "beforeHooks": [], "afterHooks": [], - "tests": [], - "suites": [ + "tests": [ { - "uuid": "20d53d0c-b235-4015-994b-da6067ecc8e0", - "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-speleothems-{collectionunitid}-test.js", - "file": "/test/v2.0-data-speleothems-{collectionunitid}-test.js", - "beforeHooks": [], - "afterHooks": [], - "tests": [ - { - "title": "should respond 200 for \"Metadata associated with speleothems submitted through SISAL.\"", - "fullTitle": "tests for /v2.0/data/speleothems/{collectionunitid} tests for get should respond 200 for \"Metadata associated with speleothems submitted through SISAL.\"", - "timedOut": false, - "duration": 90, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, - "pending": false, - "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/speleothems/500', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", - "err": {}, - "uuid": "9a3ea332-0a9c-4d62-9280-1ec77805529a", - "parentUUID": "20d53d0c-b235-4015-994b-da6067ecc8e0", - "isHook": false, - "skipped": false - } - ], - "suites": [], - "passes": [ - "9a3ea332-0a9c-4d62-9280-1ec77805529a" - ], - "failures": [], - "pending": [], - "skipped": [], - "duration": 90, - "root": false, - "rootEmpty": false, - "_timeout": 300000 - } - ], - "passes": [], - "failures": [], - "pending": [], - "skipped": [], - "duration": 0, - "root": false, - "rootEmpty": false, - "_timeout": 300000 - }, - { - "uuid": "3ff3bff5-b4e1-4e1c-b9ca-67890a2de15d", - "title": "tests for /v2.0/apps/taxaindatasets", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-apps-taxaindatasets-test.js", - "file": "/test/v2.0-apps-taxaindatasets-test.js", - "beforeHooks": [], - "afterHooks": [], - "tests": [], - "suites": [ + "title": "Get publication by singular id & return same id:", + "fullTitle": "Get publication data any number of ways: Get publication by singular id & return same id:", + "timedOut": false, + "duration": 101, + "state": "passed", + "speed": "fast", + "pass": true, + "fail": false, + "pending": false, + "context": null, + "code": "api.get('v2.0/data/publications/12')\n .set('Accept', 'application/json')\n .expect(function(res) {\n return res.body.data[0].publication.publicationid === 12;\n })\n .expect(200, done);", + "err": {}, + "uuid": "6101068a-1e06-49e4-8af2-1a07b3fb3ec0", + "parentUUID": "651a86c1-c107-4146-bb90-7e4b635d2c2f", + "isHook": false, + "skipped": false + }, { - "uuid": "dc3ab41c-0c57-49ea-a29e-8a378961c965", - "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-apps-taxaindatasets-test.js", - "file": "/test/v2.0-apps-taxaindatasets-test.js", - "beforeHooks": [], - "afterHooks": [], - "tests": [ - { - "title": "should respond 200 for \"A list of all taxa in neotoma and the datasets in which they are found.\"", - "fullTitle": "tests for /v2.0/apps/taxaindatasets tests for get should respond 200 for \"A list of all taxa in neotoma and the datasets in which they are found.\"", - "timedOut": false, - "duration": 1300, - "state": "passed", - "speed": "slow", - "pass": true, - "fail": false, - "pending": false, - "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/apps/taxaindatasets', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", - "err": {}, - "uuid": "a014795d-c2de-467c-8241-596135cf9881", - "parentUUID": "dc3ab41c-0c57-49ea-a29e-8a378961c965", - "isHook": false, - "skipped": false - } - ], - "suites": [], - "passes": [ - "a014795d-c2de-467c-8241-596135cf9881" - ], - "failures": [], - "pending": [], - "skipped": [], - "duration": 1300, - "root": false, - "rootEmpty": false, - "_timeout": 300000 - } - ], - "passes": [], - "failures": [], - "pending": [], - "skipped": [], - "duration": 0, - "root": false, - "rootEmpty": false, - "_timeout": 300000 - }, - { - "uuid": "69257e0b-66cf-4c74-b2d3-3f117f164407", - "title": "tests for /v2.0/data/sites/{siteid}", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-sites-{siteid}-test.js", - "file": "/test/v2.0-data-sites-{siteid}-test.js", - "beforeHooks": [], - "afterHooks": [], - "tests": [], - "suites": [ + "title": "Get publication by comma sepatarated ids:", + "fullTitle": "Get publication data any number of ways: Get publication by comma sepatarated ids:", + "timedOut": false, + "duration": 82, + "state": "passed", + "speed": "fast", + "pass": true, + "fail": false, + "pending": false, + "context": null, + "code": "api.get('v2.0/data/publications/12,13')\n .set('Accept', 'application/json')\n .expect(function(res) {\n return res.body.data.map((x) => x.publicationid) == [12, 13];\n })\n .expect(200, done);", + "err": {}, + "uuid": "fd9d2cef-569c-4aff-a4ef-24e7b516569f", + "parentUUID": "651a86c1-c107-4146-bb90-7e4b635d2c2f", + "isHook": false, + "skipped": false + }, { - "uuid": "d4462293-80f1-4209-9cf6-4af823eaa2eb", - "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-sites-{siteid}-test.js", - "file": "/test/v2.0-data-sites-{siteid}-test.js", - "beforeHooks": [], - "afterHooks": [], - "tests": [ - { - "title": "should respond 200 for \"An array of sites.\"", - "fullTitle": "tests for /v2.0/data/sites/{siteid} tests for get should respond 200 for \"An array of sites.\"", - "timedOut": false, - "duration": 208, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, - "pending": false, - "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/sites/500', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", - "err": {}, - "uuid": "26f8757c-0b3b-4e35-b759-1ad5f11c29a8", - "parentUUID": "d4462293-80f1-4209-9cf6-4af823eaa2eb", - "isHook": false, - "skipped": false - } - ], - "suites": [], - "passes": [ - "26f8757c-0b3b-4e35-b759-1ad5f11c29a8" - ], - "failures": [], - "pending": [], - "skipped": [], - "duration": 208, - "root": false, - "rootEmpty": false, - "_timeout": 300000 + "title": "Get publication by querying author:", + "fullTitle": "Get publication data any number of ways: Get publication by querying author:", + "timedOut": false, + "duration": 279, + "state": "passed", + "speed": "fast", + "pass": true, + "fail": false, + "pending": false, + "context": null, + "code": "api.get('v2.0/data/publications?familyname=Grimm')\n .set('Accept', 'application/json')\n .expect(function(res) {\n return res.body.data.result.length > 0;\n })\n .expect(200, done);", + "err": {}, + "uuid": "d8303eef-722e-4921-8f24-dc2f76a20fbf", + "parentUUID": "651a86c1-c107-4146-bb90-7e4b635d2c2f", + "isHook": false, + "skipped": false + }, + { + "title": "Get publications using pubs with missing links:", + "fullTitle": "Get publication data any number of ways: Get publications using pubs with missing links:", + "timedOut": false, + "duration": 81, + "state": "passed", + "speed": "fast", + "pass": true, + "fail": false, + "pending": false, + "context": null, + "code": "api.get('v2.0/data/publications?publicationid=12,14,1412,99999')\n .set('Accept', 'application/json')\n .expect(function(res) {\n return res.body.data.result.length > 0;\n })\n .expect(200, done);", + "err": {}, + "uuid": "1cfe7a8a-f9ee-4722-bdd2-d7447479bbdb", + "parentUUID": "651a86c1-c107-4146-bb90-7e4b635d2c2f", + "isHook": false, + "skipped": false + }, + { + "title": "Get publication by site id:", + "fullTitle": "Get publication data any number of ways: Get publication by site id:", + "timedOut": false, + "duration": 75, + "state": "passed", + "speed": "fast", + "pass": true, + "fail": false, + "pending": false, + "context": null, + "code": "api.get('v2.0/data/sites/12/publications')\n .set('Accept', 'application/json')\n .expect(function(res) {\n return res.body.data.length > 0;\n })\n .expect(200, done);", + "err": {}, + "uuid": "abb9d6ec-3c93-4f4d-b2f7-bbe120dbea61", + "parentUUID": "651a86c1-c107-4146-bb90-7e4b635d2c2f", + "isHook": false, + "skipped": false + }, + { + "title": "Get publication by site id finds pubs for all sites:", + "fullTitle": "Get publication data any number of ways: Get publication by site id finds pubs for all sites:", + "timedOut": false, + "duration": 76, + "state": "passed", + "speed": "fast", + "pass": true, + "fail": false, + "pending": false, + "context": null, + "code": "api.get('v2.0/data/sites/12,13,14,15/publications')\n .set('Accept', 'application/json')\n .expect(function(res) {\n const flatten = (list) => list.reduce(\n (a, b) => a.concat(Array.isArray(b) ? flatten(b) : b), [],\n );\n const sites = [12, 13, 14, 15];\n const siteids = flatten(res.body.data.map((x) => x.siteid));\n return sites.every((x) => siteids.includes(x));\n })\n .expect(200, done);", + "err": {}, + "uuid": "cdda7f00-5505-4657-b69f-ef76b6715f23", + "parentUUID": "651a86c1-c107-4146-bb90-7e4b635d2c2f", + "isHook": false, + "skipped": false + }, + { + "title": "Get publication by dataset id finds pubs for all datasets:", + "fullTitle": "Get publication data any number of ways: Get publication by dataset id finds pubs for all datasets:", + "timedOut": false, + "duration": 81, + "state": "passed", + "speed": "fast", + "pass": true, + "fail": false, + "pending": false, + "context": null, + "code": "api.get('v2.0/data/datasets/12,13,2201,6000/publications')\n .set('Accept', 'application/json')\n .expect(function(res) {\n const flatten = (list) => list.reduce(\n (a, b) => a.concat(Array.isArray(b) ? flatten(b) : b), [],\n );\n const datasets = [12, 6000, 13, 2201];\n const datasetids = flatten(res.body.data.map((x) => x.datasetid));\n return datasets.every((x) => datasetids.includes(x));\n })\n .expect(200, done);", + "err": {}, + "uuid": "48e8f1b4-ce06-4bb8-a821-52b0e0bd1a65", + "parentUUID": "651a86c1-c107-4146-bb90-7e4b635d2c2f", + "isHook": false, + "skipped": false } ], - "passes": [], + "suites": [], + "passes": [ + "6101068a-1e06-49e4-8af2-1a07b3fb3ec0", + "fd9d2cef-569c-4aff-a4ef-24e7b516569f", + "d8303eef-722e-4921-8f24-dc2f76a20fbf", + "1cfe7a8a-f9ee-4722-bdd2-d7447479bbdb", + "abb9d6ec-3c93-4f4d-b2f7-bbe120dbea61", + "cdda7f00-5505-4657-b69f-ef76b6715f23", + "48e8f1b4-ce06-4bb8-a821-52b0e0bd1a65" + ], "failures": [], "pending": [], "skipped": [], - "duration": 0, + "duration": 775, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 15000 }, { - "uuid": "bde1f8a7-7be6-4423-979a-73270de8c412", - "title": "tests for /v2.0/apps/authorpis", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-apps-authorpis-test.js", - "file": "/test/v2.0-apps-authorpis-test.js", + "uuid": "3fd454d6-3867-4069-a9b6-88f23f007945", + "title": "tests for /v2.0/apps/depenvt", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-apps-depenvt-test.js", + "file": "/test/v2.0-apps-depenvt-test.js", "beforeHooks": [], "afterHooks": [], "tests": [], "suites": [ { - "uuid": "8e58046c-f13b-42cd-ab0f-aa268b0964a6", + "uuid": "dd6029bd-e1b1-4a4c-a65e-de0a743ba827", "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-apps-authorpis-test.js", - "file": "/test/v2.0-apps-authorpis-test.js", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-apps-depenvt-test.js", + "file": "/test/v2.0-apps-depenvt-test.js", "beforeHooks": [], "afterHooks": [], "tests": [ { - "title": "should respond 200 for \"A table of Neotoma collection types.\"", - "fullTitle": "tests for /v2.0/apps/authorpis tests for get should respond 200 for \"A table of Neotoma collection types.\"", + "title": "should respond 200 for \"This returns the information about depositional environment for selected dataset/collection unit/site.\"", + "fullTitle": "tests for /v2.0/apps/depenvt tests for get should respond 200 for \"This returns the information about depositional environment for selected dataset/collection unit/site.\"", "timedOut": false, - "duration": 257, + "duration": 90, "state": "passed", "speed": "fast", "pass": true, "fail": false, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/apps/authorpis', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "code": "var response = request('get', 'http://localhost:3001/v2.0/apps/depenvt', { \n 'qs': {\"siteid\":38751,\"datasetid\":88819447,\"collectionunitid\":56392},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", "err": {}, - "uuid": "ee31fb51-5755-467b-83db-7f1e2e615d28", - "parentUUID": "8e58046c-f13b-42cd-ab0f-aa268b0964a6", + "uuid": "abf13907-41e0-4f42-ab1b-163886904ab5", + "parentUUID": "dd6029bd-e1b1-4a4c-a65e-de0a743ba827", "isHook": false, "skipped": false } ], "suites": [], "passes": [ - "ee31fb51-5755-467b-83db-7f1e2e615d28" + "abf13907-41e0-4f42-ab1b-163886904ab5" ], "failures": [], "pending": [], "skipped": [], - "duration": 257, + "duration": 90, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 } ], "passes": [], @@ -3030,55 +2666,55 @@ "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 }, { - "uuid": "68f8c70f-4a33-4786-9f93-cee4259d1877", - "title": "tests for /v2.0/data/sites/{siteid}/contacts", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-sites-{siteid}-contacts-test.js", - "file": "/test/v2.0-data-sites-{siteid}-contacts-test.js", + "uuid": "0b2a3eaa-7345-4f02-9393-f0af6f0a88af", + "title": "tests for /v2.0/data/datasets/{datasetid}/chronologies", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-datasets-{datasetid}-chronologies-test.js", + "file": "/test/v2.0-data-datasets-{datasetid}-chronologies-test.js", "beforeHooks": [], "afterHooks": [], "tests": [], "suites": [ { - "uuid": "afc44a25-9407-484e-b334-c1c57c1faf15", + "uuid": "f149f92f-a079-40a4-aadf-915ae1eb1b5f", "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-sites-{siteid}-contacts-test.js", - "file": "/test/v2.0-data-sites-{siteid}-contacts-test.js", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-datasets-{datasetid}-chronologies-test.js", + "file": "/test/v2.0-data-datasets-{datasetid}-chronologies-test.js", "beforeHooks": [], "afterHooks": [], "tests": [ { - "title": "should respond 200 for \"contact\"", - "fullTitle": "tests for /v2.0/data/sites/{siteid}/contacts tests for get should respond 200 for \"contact\"", + "title": "should respond 200 for \"chronology\"", + "fullTitle": "tests for /v2.0/data/datasets/{datasetid}/chronologies tests for get should respond 200 for \"chronology\"", "timedOut": false, - "duration": 82, + "duration": 100, "state": "passed", "speed": "fast", "pass": true, "fail": false, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/sites/500/contacts', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/datasets/28048893/chronologies', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", "err": {}, - "uuid": "44fc619f-9398-4aaa-84cb-35c04b1d424e", - "parentUUID": "afc44a25-9407-484e-b334-c1c57c1faf15", + "uuid": "f385699d-b077-48ae-a930-13dc9932d794", + "parentUUID": "f149f92f-a079-40a4-aadf-915ae1eb1b5f", "isHook": false, "skipped": false } ], "suites": [], "passes": [ - "44fc619f-9398-4aaa-84cb-35c04b1d424e" + "f385699d-b077-48ae-a930-13dc9932d794" ], "failures": [], "pending": [], "skipped": [], - "duration": 82, + "duration": 100, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 } ], "passes": [], @@ -3088,113 +2724,227 @@ "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 }, { - "uuid": "2e4a7626-176b-4ee6-9004-2226d2f1caf2", - "title": "tests for /v1.5/data/geopoliticalunits/{gpid}", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v1.5-data-geopoliticalunits-{gpid}-test.js", - "file": "/test/v1.5-data-geopoliticalunits-{gpid}-test.js", + "uuid": "79d63182-b1dc-4412-99a7-bbb0b5882e53", + "title": "Get contact data:", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/contacts.js", + "file": "/test/contacts.js", "beforeHooks": [], "afterHooks": [], - "tests": [], - "suites": [ + "tests": [ { - "uuid": "4d843b6f-fb83-4821-9eff-212c26c0d417", - "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v1.5-data-geopoliticalunits-{gpid}-test.js", - "file": "/test/v1.5-data-geopoliticalunits-{gpid}-test.js", - "beforeHooks": [], - "afterHooks": [], - "tests": [ - { - "title": "should respond 200 for \"An array of geopolitical units.\"", - "fullTitle": "tests for /v1.5/data/geopoliticalunits/{gpid} tests for get should respond 200 for \"An array of geopolitical units.\"", - "timedOut": false, - "duration": 79, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, - "pending": false, - "context": null, - "code": "var response = request('get', 'http://localhost:3001/v1.5/data/geopoliticalunits/7324', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", - "err": {}, - "uuid": "b02fccd1-80f3-4213-9b3b-36274f8d545b", - "parentUUID": "4d843b6f-fb83-4821-9eff-212c26c0d417", - "isHook": false, - "skipped": false - } - ], - "suites": [], - "passes": [ - "b02fccd1-80f3-4213-9b3b-36274f8d545b" - ], - "failures": [], - "pending": [], - "skipped": [], + "title": "The default limit of 25 should be reached for contact data:", + "fullTitle": "Get contact data: The default limit of 25 should be reached for contact data:", + "timedOut": false, + "duration": 84, + "state": "passed", + "speed": "fast", + "pass": true, + "fail": false, + "pending": false, + "context": null, + "code": "api.get('v2.0/data/contacts/?contactstatus=retired')\n .set('Accept', 'application/json')\n .end(function(err, res) {\n if (err) return done(err);\n assert.strictEqual(res.body.data.length, 25);\n done();\n });", + "err": {}, + "uuid": "dca39bf4-74ae-4a97-8d35-2926ec74ebb5", + "parentUUID": "79d63182-b1dc-4412-99a7-bbb0b5882e53", + "isHook": false, + "skipped": false + }, + { + "title": "The example in the swagger should return an object:", + "fullTitle": "Get contact data: The example in the swagger should return an object:", + "timedOut": false, "duration": 79, - "root": false, - "rootEmpty": false, - "_timeout": 300000 - } - ], - "passes": [], - "failures": [], - "pending": [], - "skipped": [], - "duration": 0, - "root": false, - "rootEmpty": false, - "_timeout": 300000 - }, - { - "uuid": "501216de-4c9b-4f76-975e-8e803ec1412f", - "title": "tests for /v2.0/apps/constdb", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-apps-constdb-test.js", - "file": "/test/v2.0-apps-constdb-test.js", - "beforeHooks": [], - "afterHooks": [], - "tests": [], - "suites": [ + "state": "passed", + "speed": "fast", + "pass": true, + "fail": false, + "pending": false, + "context": null, + "code": "api.get('v2.0/data/contacts?familyname=Grimm&contactstatus=active&limit=25')\n .set('Accept', 'application/json')\n .end(function(err, res) {\n if (err) return done(err);\n assert.strictEqual(res.body.data[0]['familyname'], 'Grimm');\n done();\n });", + "err": {}, + "uuid": "43100463-baa1-46e3-9d7c-c862a40d6456", + "parentUUID": "79d63182-b1dc-4412-99a7-bbb0b5882e53", + "isHook": false, + "skipped": false + }, { - "uuid": "eeda346e-214e-41fe-b348-6f401251ba67", - "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-apps-constdb-test.js", - "file": "/test/v2.0-apps-constdb-test.js", - "beforeHooks": [], - "afterHooks": [], - "tests": [ - { - "title": "should respond 200 for \"Returns metadata about each [constituent database](https://www.neotomadb.org/data/constituent-databases) in Neotoma, including Summary Information about dataset types within the database and the age spans of the records in the database. Constituent databases \"", - "fullTitle": "tests for /v2.0/apps/constdb tests for get should respond 200 for \"Returns metadata about each [constituent database](https://www.neotomadb.org/data/constituent-databases) in Neotoma, including Summary Information about dataset types within the database and the age spans of the records in the database. Constituent databases \"", - "timedOut": false, - "duration": 19703, - "state": "passed", - "speed": "slow", + "title": "Contact queries should be case insensitive:", + "fullTitle": "Get contact data: Contact queries should be case insensitive:", + "timedOut": false, + "duration": 72, + "state": "passed", + "speed": "fast", + "pass": true, + "fail": false, + "pending": false, + "context": null, + "code": "api.get('v2.0/data/contacts/?contactstatus=Retired')\n .set('Accept', 'application/json')\n .end(function(err, res) {\n if (err) return done(err);\n assert.strictEqual(res.body.data.length, 25);\n done();\n });", + "err": {}, + "uuid": "5b6c27bd-1fee-44fa-8d4d-89ca99420fba", + "parentUUID": "79d63182-b1dc-4412-99a7-bbb0b5882e53", + "isHook": false, + "skipped": false + }, + { + "title": "Changing the limit should change the number of contacts retrieved:", + "fullTitle": "Get contact data: Changing the limit should change the number of contacts retrieved:", + "timedOut": false, + "duration": 70, + "state": "passed", + "speed": "fast", + "pass": true, + "fail": false, + "pending": false, + "context": null, + "code": "api.get('v2.0/data/contacts/?status=retired&limit=30')\n .set('Accept', 'application/json')\n .end(function(err, res) {\n if (err) return done(err);\n assert.strictEqual(res.body.data.length, 30);\n done();\n });", + "err": {}, + "uuid": "a0094715-b87e-4225-9fd8-7d07862a493f", + "parentUUID": "79d63182-b1dc-4412-99a7-bbb0b5882e53", + "isHook": false, + "skipped": false + }, + { + "title": "A single contact (12) should be returned.", + "fullTitle": "Get contact data: A single contact (12) should be returned.", + "timedOut": false, + "duration": 68, + "state": "passed", + "speed": "fast", + "pass": true, + "fail": false, + "pending": false, + "context": null, + "code": "api.get('v2.0/data/contacts/12')\n .set('Accept', 'application/json')\n .end(function(err, res) {\n if (err) return done(err);\n assert.strictEqual(res.body.data[0]['contactid'], 12);\n done();\n });", + "err": {}, + "uuid": "3f9233d0-5f03-4d0e-89ff-124ac9861774", + "parentUUID": "79d63182-b1dc-4412-99a7-bbb0b5882e53", + "isHook": false, + "skipped": false + }, + { + "title": "All contacts from datasets should be returned.", + "fullTitle": "Get contact data: All contacts from datasets should be returned.", + "timedOut": false, + "duration": 68, + "state": "passed", + "speed": "fast", + "pass": true, + "fail": false, + "pending": false, + "context": null, + "code": "api.get('v2.0/data/datasets/12,13/contacts')\n .set('Accept', 'application/json')\n .end(function(err, res) {\n if (err) return done(err);\n assert.strictEqual(res.body.data.length, 2);\n done();\n });", + "err": {}, + "uuid": "e3491d9e-756f-4ba0-9e96-954ebc11f3c9", + "parentUUID": "79d63182-b1dc-4412-99a7-bbb0b5882e53", + "isHook": false, + "skipped": false + }, + { + "title": "The length of returned contacts should be equivalent to the number of datasets.", + "fullTitle": "Get contact data: The length of returned contacts should be equivalent to the number of datasets.", + "timedOut": false, + "duration": 67, + "state": "passed", + "speed": "fast", + "pass": true, + "fail": false, + "pending": false, + "context": null, + "code": "api.get('v2.0/data/datasets/12,13/contacts')\n .set('Accept', 'application/json')\n .end(function(err, res) {\n if (err) return done(err);\n const test = [];\n assert.strictEqual(test.length, 0);\n done();\n });", + "err": {}, + "uuid": "ab892cfd-e5a1-4177-aa89-893a49313612", + "parentUUID": "79d63182-b1dc-4412-99a7-bbb0b5882e53", + "isHook": false, + "skipped": false + }, + { + "title": "The length of returned contacts should be equivalent to the number of sites.", + "fullTitle": "Get contact data: The length of returned contacts should be equivalent to the number of sites.", + "timedOut": false, + "duration": 68, + "state": "passed", + "speed": "fast", + "pass": true, + "fail": false, + "pending": false, + "context": null, + "code": "api.get('v2.0/data/datasets/102,1435,1,27/contacts')\n .set('Accept', 'application/json')\n .end(function(err, res) {\n if (err) return done(err);\n assert.strictEqual(Object.keys(res.body.data).length, 4);\n done();\n });", + "err": {}, + "uuid": "6716a440-cf01-4ec8-9248-87b73d801d2e", + "parentUUID": "79d63182-b1dc-4412-99a7-bbb0b5882e53", + "isHook": false, + "skipped": false + } + ], + "suites": [], + "passes": [ + "dca39bf4-74ae-4a97-8d35-2926ec74ebb5", + "43100463-baa1-46e3-9d7c-c862a40d6456", + "5b6c27bd-1fee-44fa-8d4d-89ca99420fba", + "a0094715-b87e-4225-9fd8-7d07862a493f", + "3f9233d0-5f03-4d0e-89ff-124ac9861774", + "e3491d9e-756f-4ba0-9e96-954ebc11f3c9", + "ab892cfd-e5a1-4177-aa89-893a49313612", + "6716a440-cf01-4ec8-9248-87b73d801d2e" + ], + "failures": [], + "pending": [], + "skipped": [], + "duration": 576, + "root": false, + "rootEmpty": false, + "_timeout": 5000 + }, + { + "uuid": "e74cbd8d-bd9b-4a08-935c-3cac24e34fc2", + "title": "tests for /v2.0/data/taxa/{taxonid}", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-taxa-{taxonid}-test.js", + "file": "/test/v2.0-data-taxa-{taxonid}-test.js", + "beforeHooks": [], + "afterHooks": [], + "tests": [], + "suites": [ + { + "uuid": "5f780873-9ec0-44a1-a70e-35fc53a7394c", + "title": "tests for get", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-taxa-{taxonid}-test.js", + "file": "/test/v2.0-data-taxa-{taxonid}-test.js", + "beforeHooks": [], + "afterHooks": [], + "tests": [ + { + "title": "should respond 200 for \"A taxon or array of taxa.\"", + "fullTitle": "tests for /v2.0/data/taxa/{taxonid} tests for get should respond 200 for \"A taxon or array of taxa.\"", + "timedOut": false, + "duration": 71, + "state": "passed", + "speed": "fast", "pass": true, "fail": false, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/apps/constdb', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/taxa/35627', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", "err": {}, - "uuid": "3cd606bb-3a21-44ea-af0d-e013b4aaf084", - "parentUUID": "eeda346e-214e-41fe-b348-6f401251ba67", + "uuid": "5b0c6d7b-9ef8-4bcc-b8ce-03e797431192", + "parentUUID": "5f780873-9ec0-44a1-a70e-35fc53a7394c", "isHook": false, "skipped": false } ], "suites": [], "passes": [ - "3cd606bb-3a21-44ea-af0d-e013b4aaf084" + "5b0c6d7b-9ef8-4bcc-b8ce-03e797431192" ], "failures": [], "pending": [], "skipped": [], - "duration": 19703, + "duration": 71, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 } ], "passes": [], @@ -3204,55 +2954,55 @@ "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 }, { - "uuid": "12b97d25-0e2a-4c74-8563-6c23c865ed4c", - "title": "tests for /v2.0/data/spatial/icesheet", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-spatial-icesheet-test.js", - "file": "/test/v2.0-data-spatial-icesheet-test.js", + "uuid": "d6c74964-b499-4dfa-9c54-6f6559d03c9d", + "title": "tests for /v2.0/data/datasets/{datasetid}/lithology", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-datasets-{datasetid}-lithology-test.js", + "file": "/test/v2.0-data-datasets-{datasetid}-lithology-test.js", "beforeHooks": [], "afterHooks": [], "tests": [], "suites": [ { - "uuid": "cd080ccb-bb4b-44f3-b181-13a398bc8c70", + "uuid": "ac2a3841-cfd5-4f6d-a85f-a430eff255e9", "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-spatial-icesheet-test.js", - "file": "/test/v2.0-data-spatial-icesheet-test.js", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-datasets-{datasetid}-lithology-test.js", + "file": "/test/v2.0-data-datasets-{datasetid}-lithology-test.js", "beforeHooks": [], "afterHooks": [], "tests": [ { - "title": "should respond 200 for \"An object containing glacial extents for the selected time period (in **calibrated radiocarbon years**). \"", - "fullTitle": "tests for /v2.0/data/spatial/icesheet tests for get should respond 200 for \"An object containing glacial extents for the selected time period (in **calibrated radiocarbon years**). \"", + "title": "should respond 200 for \"Lithology\"", + "fullTitle": "tests for /v2.0/data/datasets/{datasetid}/lithology tests for get should respond 200 for \"Lithology\"", "timedOut": false, - "duration": 186, + "duration": 78, "state": "passed", "speed": "fast", "pass": true, "fail": false, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/spatial/icesheet', { \n 'qs': {\"age\":7703,\"proj\": 4326,\"prec\": 1000},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/datasets/98922306/lithology', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", "err": {}, - "uuid": "855ca891-74f6-4339-94b5-0dc188695086", - "parentUUID": "cd080ccb-bb4b-44f3-b181-13a398bc8c70", + "uuid": "c4521981-1936-4fb7-8cf7-82576ba14163", + "parentUUID": "ac2a3841-cfd5-4f6d-a85f-a430eff255e9", "isHook": false, "skipped": false } ], "suites": [], "passes": [ - "855ca891-74f6-4339-94b5-0dc188695086" + "c4521981-1936-4fb7-8cf7-82576ba14163" ], "failures": [], "pending": [], "skipped": [], - "duration": 186, + "duration": 78, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 } ], "passes": [], @@ -3262,55 +3012,55 @@ "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 }, { - "uuid": "d51f0e4e-d772-40a7-800d-20e71ab47016", - "title": "tests for /v2.0/data/spatial/faunal", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-spatial-faunal-test.js", - "file": "/test/v2.0-data-spatial-faunal-test.js", + "uuid": "209ef907-d903-450e-a8e0-490bc53bd771", + "title": "tests for /v2.0/data/sites/{siteid}/chronologies", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-sites-{siteid}-chronologies-test.js", + "file": "/test/v2.0-data-sites-{siteid}-chronologies-test.js", "beforeHooks": [], "afterHooks": [], "tests": [], "suites": [ { - "uuid": "4227aa3b-652f-43f2-a877-e8cd0a983e08", + "uuid": "7061bd3e-a001-4006-9e69-c8ca0bfb3b0f", "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-spatial-faunal-test.js", - "file": "/test/v2.0-data-spatial-faunal-test.js", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-sites-{siteid}-chronologies-test.js", + "file": "/test/v2.0-data-sites-{siteid}-chronologies-test.js", "beforeHooks": [], "afterHooks": [], "tests": [ { - "title": "should respond 200 for \"An object containing all matched species names, identifiers and a GeoJSON polygon representing the UNIONed ranges for the selected species. All data is derived from:
* Mammal Diversity Database. (2020). Mammal Diversity Database (Version 1.2) [Data set]. Zenodo. DOI: [10.5281/zenodo.4139818](https://doi.org/10.5281/zenodo.4139818).
* Map of Life. (2021). Mammal range maps harmonised to the Mammals Diversity Database [Data set]. Map of Life. [10.48600/MOL-48VZ-P413](https://doi.org/10.48600/MOL-48VZ-P413) \"", - "fullTitle": "tests for /v2.0/data/spatial/faunal tests for get should respond 200 for \"An object containing all matched species names, identifiers and a GeoJSON polygon representing the UNIONed ranges for the selected species. All data is derived from:
* Mammal Diversity Database. (2020). Mammal Diversity Database (Version 1.2) [Data set]. Zenodo. DOI: [10.5281/zenodo.4139818](https://doi.org/10.5281/zenodo.4139818).
* Map of Life. (2021). Mammal range maps harmonised to the Mammals Diversity Database [Data set]. Map of Life. [10.48600/MOL-48VZ-P413](https://doi.org/10.48600/MOL-48VZ-P413) \"", + "title": "should respond 200 for \"chronology\"", + "fullTitle": "tests for /v2.0/data/sites/{siteid}/chronologies tests for get should respond 200 for \"chronology\"", "timedOut": false, - "duration": 88, + "duration": 85, "state": "passed", "speed": "fast", "pass": true, "fail": false, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/spatial/faunal', { \n 'qs': {\"sciname\":\"nulla cupidatat pariatur laboris aliquip\",\"proj\": 4326,\"prec\": 1000},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/sites/4287/chronologies', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", "err": {}, - "uuid": "5fc48012-4701-48cd-b5db-28c5e484a66d", - "parentUUID": "4227aa3b-652f-43f2-a877-e8cd0a983e08", + "uuid": "b1bb31a7-5efd-49da-8781-e5ce7216bb85", + "parentUUID": "7061bd3e-a001-4006-9e69-c8ca0bfb3b0f", "isHook": false, "skipped": false } ], "suites": [], "passes": [ - "5fc48012-4701-48cd-b5db-28c5e484a66d" + "b1bb31a7-5efd-49da-8781-e5ce7216bb85" ], "failures": [], "pending": [], "skipped": [], - "duration": 88, + "duration": 85, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 } ], "passes": [], @@ -3320,55 +3070,55 @@ "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 }, { - "uuid": "d3fcfc9a-e1bf-4398-9d97-a191b04762fa", - "title": "tests for /v2.0/data/taxa/{taxonid}", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-taxa-{taxonid}-test.js", - "file": "/test/v2.0-data-taxa-{taxonid}-test.js", + "uuid": "19eb45f7-38d0-4b0e-8ec0-d328ba220111", + "title": "tests for /v2.0/data/frozen/{datasetid}", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-frozen-{datasetid}-test.js", + "file": "/test/v2.0-data-frozen-{datasetid}-test.js", "beforeHooks": [], "afterHooks": [], "tests": [], "suites": [ { - "uuid": "eda3410c-ad60-4c59-a429-69d3984623fe", + "uuid": "c246792b-ff56-47bc-87f8-e07343b6e392", "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-taxa-{taxonid}-test.js", - "file": "/test/v2.0-data-taxa-{taxonid}-test.js", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-frozen-{datasetid}-test.js", + "file": "/test/v2.0-data-frozen-{datasetid}-test.js", "beforeHooks": [], "afterHooks": [], "tests": [ { - "title": "should respond 200 for \"A taxon or array of taxa.\"", - "fullTitle": "tests for /v2.0/data/taxa/{taxonid} tests for get should respond 200 for \"A taxon or array of taxa.\"", + "title": "should respond 200 for \"Returned download object.\"", + "fullTitle": "tests for /v2.0/data/frozen/{datasetid} tests for get should respond 200 for \"Returned download object.\"", "timedOut": false, - "duration": 81, + "duration": 71, "state": "passed", "speed": "fast", "pass": true, "fail": false, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/taxa/500', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/frozen/18750323', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", "err": {}, - "uuid": "3e1631bf-4ad7-40d7-8d7f-3f2e4bca0737", - "parentUUID": "eda3410c-ad60-4c59-a429-69d3984623fe", + "uuid": "540d06a3-624f-4119-b356-74b29932939c", + "parentUUID": "c246792b-ff56-47bc-87f8-e07343b6e392", "isHook": false, "skipped": false } ], "suites": [], "passes": [ - "3e1631bf-4ad7-40d7-8d7f-3f2e4bca0737" + "540d06a3-624f-4119-b356-74b29932939c" ], "failures": [], "pending": [], "skipped": [], - "duration": 81, + "duration": 71, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 } ], "passes": [], @@ -3378,55 +3128,55 @@ "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 }, { - "uuid": "efe960be-453f-4fad-9122-91743bd96c53", - "title": "tests for /v2.0/apps/constdb/datasetages", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-apps-constdb-datasetages-test.js", - "file": "/test/v2.0-apps-constdb-datasetages-test.js", + "uuid": "77ffe579-2e83-401b-bc01-0c4b79a3e317", + "title": "tests for /v2.0/data/dbtables/{table}", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-dbtables-{table}-test.js", + "file": "/test/v2.0-data-dbtables-{table}-test.js", "beforeHooks": [], "afterHooks": [], "tests": [], "suites": [ { - "uuid": "357ad4d6-1fe5-4a7a-857f-584152960feb", + "uuid": "effc45bd-d4a8-4c54-ba95-49d65a43cea1", "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-apps-constdb-datasetages-test.js", - "file": "/test/v2.0-apps-constdb-datasetages-test.js", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-dbtables-{table}-test.js", + "file": "/test/v2.0-data-dbtables-{table}-test.js", "beforeHooks": [], "afterHooks": [], "tests": [ { - "title": "should respond 200 for \"Returns an ordered array (from earliest to latest) of upload counts by month (YYYY/MM/DD; all days as 01). Months with no uploads are excluded. \"", - "fullTitle": "tests for /v2.0/apps/constdb/datasetages tests for get should respond 200 for \"Returns an ordered array (from earliest to latest) of upload counts by month (YYYY/MM/DD; all days as 01). Months with no uploads are excluded. \"", + "title": "should respond 200 for \"Returned table.\"", + "fullTitle": "tests for /v2.0/data/dbtables/{table} tests for get should respond 200 for \"Returned table.\"", "timedOut": false, - "duration": 11173, + "duration": 73, "state": "passed", - "speed": "slow", + "speed": "fast", "pass": true, "fail": false, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/apps/constdb/datasetages', { \n 'qs': {\"dbid\":7},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/dbtables/nisiExcepteuranimullamcopariatur', { \n 'qs': {\"count\":true,\"limit\":1742,\"offset\":57207610},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", "err": {}, - "uuid": "47f2a7a0-cea8-4a6c-ac14-e67050ce00f8", - "parentUUID": "357ad4d6-1fe5-4a7a-857f-584152960feb", + "uuid": "c5b90b5f-a935-40e7-b4d2-b65a4f3963e5", + "parentUUID": "effc45bd-d4a8-4c54-ba95-49d65a43cea1", "isHook": false, "skipped": false } ], "suites": [], "passes": [ - "47f2a7a0-cea8-4a6c-ac14-e67050ce00f8" + "c5b90b5f-a935-40e7-b4d2-b65a4f3963e5" ], "failures": [], "pending": [], "skipped": [], - "duration": 11173, + "duration": 73, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 } ], "passes": [], @@ -3436,55 +3186,55 @@ "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 }, { - "uuid": "b30639c3-87ac-42d0-986a-bbc3d98a4de8", - "title": "tests for /v1.5/apps/collectionTypes", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v1.5-apps-collectionTypes-test.js", - "file": "/test/v1.5-apps-collectionTypes-test.js", + "uuid": "5cd17ff5-4e4c-4437-93cd-a6fdb45cc4bf", + "title": "tests for /v2.0/data/geopoliticalunits/{gpid}", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-geopoliticalunits-{gpid}-test.js", + "file": "/test/v2.0-data-geopoliticalunits-{gpid}-test.js", "beforeHooks": [], "afterHooks": [], "tests": [], "suites": [ { - "uuid": "9b151228-8fd2-407e-b0fe-932a85472b32", + "uuid": "38faa981-1064-4023-bdfe-f1b405a70cc8", "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v1.5-apps-collectionTypes-test.js", - "file": "/test/v1.5-apps-collectionTypes-test.js", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-geopoliticalunits-{gpid}-test.js", + "file": "/test/v2.0-data-geopoliticalunits-{gpid}-test.js", "beforeHooks": [], "afterHooks": [], "tests": [ { - "title": "should respond 200 for \"Returns the set of collectiontypes recorded in Neotoma.\"", - "fullTitle": "tests for /v1.5/apps/collectionTypes tests for get should respond 200 for \"Returns the set of collectiontypes recorded in Neotoma.\"", + "title": "should respond 200 for \"An array of geopolitical units.\"", + "fullTitle": "tests for /v2.0/data/geopoliticalunits/{gpid} tests for get should respond 200 for \"An array of geopolitical units.\"", "timedOut": false, - "duration": 78, + "duration": 72, "state": "passed", "speed": "fast", "pass": true, "fail": false, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v1.5/apps/collectionTypes', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/geopoliticalunits/595', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", "err": {}, - "uuid": "7e6a4844-4c6c-48a7-a934-a6d34531b6cb", - "parentUUID": "9b151228-8fd2-407e-b0fe-932a85472b32", + "uuid": "082887b0-4fb7-417c-9a20-4abee1095b57", + "parentUUID": "38faa981-1064-4023-bdfe-f1b405a70cc8", "isHook": false, "skipped": false } ], "suites": [], "passes": [ - "7e6a4844-4c6c-48a7-a934-a6d34531b6cb" + "082887b0-4fb7-417c-9a20-4abee1095b57" ], "failures": [], "pending": [], "skipped": [], - "duration": 78, + "duration": 72, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 } ], "passes": [], @@ -3494,55 +3244,55 @@ "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 }, { - "uuid": "2fb813bd-eec0-4e49-af82-7fddfc8f5d5f", - "title": "tests for /v1.5/data/geopoliticalunits", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v1.5-data-geopoliticalunits-test.js", - "file": "/test/v1.5-data-geopoliticalunits-test.js", + "uuid": "aa73ba4c-0ff2-4eff-87ba-7077be9d59de", + "title": "tests for /v2.0/apps/taphonomysystems", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-apps-taphonomysystems-test.js", + "file": "/test/v2.0-apps-taphonomysystems-test.js", "beforeHooks": [], "afterHooks": [], "tests": [], "suites": [ { - "uuid": "f33e24f3-a873-4aaa-8f0a-b2761ec56476", + "uuid": "4fedf4d7-6441-4cf7-9e79-fae4ff01d3e8", "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v1.5-data-geopoliticalunits-test.js", - "file": "/test/v1.5-data-geopoliticalunits-test.js", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-apps-taphonomysystems-test.js", + "file": "/test/v2.0-apps-taphonomysystems-test.js", "beforeHooks": [], "afterHooks": [], "tests": [ { - "title": "should respond 200 for \"An array of geopolitical units.\"", - "fullTitle": "tests for /v1.5/data/geopoliticalunits tests for get should respond 200 for \"An array of geopolitical units.\"", + "title": "should respond 200 for \"A table of Neotoma collection types.\"", + "fullTitle": "tests for /v2.0/apps/taphonomysystems tests for get should respond 200 for \"A table of Neotoma collection types.\"", "timedOut": false, - "duration": 104, + "duration": 71, "state": "passed", "speed": "fast", "pass": true, "fail": false, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v1.5/data/geopoliticalunits', { \n 'qs': {\"gpid\":5392,\"gpname\":\"Canada\",\"rank\":4,\"lower\":false},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "code": "var response = request('get', 'http://localhost:3001/v2.0/apps/taphonomysystems', { \n 'qs': {\"datasettypeid\":7},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", "err": {}, - "uuid": "ec6ad1eb-ef7f-4a63-b577-4937be6e5fcf", - "parentUUID": "f33e24f3-a873-4aaa-8f0a-b2761ec56476", + "uuid": "3e04a7be-d9ed-4084-a315-ae60adcad35c", + "parentUUID": "4fedf4d7-6441-4cf7-9e79-fae4ff01d3e8", "isHook": false, "skipped": false } ], "suites": [], "passes": [ - "ec6ad1eb-ef7f-4a63-b577-4937be6e5fcf" + "3e04a7be-d9ed-4084-a315-ae60adcad35c" ], "failures": [], "pending": [], "skipped": [], - "duration": 104, + "duration": 71, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 } ], "passes": [], @@ -3552,55 +3302,55 @@ "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 }, { - "uuid": "1fd79d22-af9b-4154-89a3-333ebaa9e00e", - "title": "tests for /v2.0/data/publications", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-publications-test.js", - "file": "/test/v2.0-data-publications-test.js", + "uuid": "ebae7c0b-1762-4a05-a505-350bb31982d9", + "title": "tests for /v1.5/data/geopoliticalunits", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v1.5-data-geopoliticalunits-test.js", + "file": "/test/v1.5-data-geopoliticalunits-test.js", "beforeHooks": [], "afterHooks": [], "tests": [], "suites": [ { - "uuid": "57bff6ff-924b-400e-bd66-958f3e698770", + "uuid": "6ec8fb09-5a83-4289-a6cc-cd3c725eb3d5", "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-publications-test.js", - "file": "/test/v2.0-data-publications-test.js", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v1.5-data-geopoliticalunits-test.js", + "file": "/test/v1.5-data-geopoliticalunits-test.js", "beforeHooks": [], "afterHooks": [], "tests": [ { - "title": "should respond 200 for \"A list of publications.\"", - "fullTitle": "tests for /v2.0/data/publications tests for get should respond 200 for \"A list of publications.\"", + "title": "should respond 200 for \"An array of geopolitical units.\"", + "fullTitle": "tests for /v1.5/data/geopoliticalunits tests for get should respond 200 for \"An array of geopolitical units.\"", "timedOut": false, - "duration": 84, + "duration": 158, "state": "passed", "speed": "fast", "pass": true, "fail": false, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/publications', { \n 'qs': {\"publicationid\":16502,\"datasetid\":78894653,\"siteid\":36633,\"familyname\":\"jBMy \",\"pubtype\":\"Undergraduate thesis\",\"year\":1584,\"search\":\"adipisicing ad ut\",\"limit\": 10,\"offset\": 0},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "code": "var response = request('get', 'http://localhost:3001/v1.5/data/geopoliticalunits', { \n 'qs': {\"gpid\":5392,\"gpname\":\"Canada\",\"rank\":1,\"lower\":true},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", "err": {}, - "uuid": "a51be199-a644-4db2-91fd-7b3381544a2b", - "parentUUID": "57bff6ff-924b-400e-bd66-958f3e698770", + "uuid": "25ee5a90-e278-4fad-9a4e-747020b3a9b2", + "parentUUID": "6ec8fb09-5a83-4289-a6cc-cd3c725eb3d5", "isHook": false, "skipped": false } ], "suites": [], "passes": [ - "a51be199-a644-4db2-91fd-7b3381544a2b" + "25ee5a90-e278-4fad-9a4e-747020b3a9b2" ], "failures": [], "pending": [], "skipped": [], - "duration": 84, + "duration": 158, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 } ], "passes": [], @@ -3610,55 +3360,55 @@ "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 }, { - "uuid": "7bdcd896-44c4-4b19-9109-8a754fe96387", - "title": "tests for /v2.0/data/geopoliticalunits", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-geopoliticalunits-test.js", - "file": "/test/v2.0-data-geopoliticalunits-test.js", + "uuid": "5ea1ae4b-1346-4a93-9e5b-d20ab2292a1a", + "title": "tests for /v2.0/data/aggregatedatasets/{aggdatasetid}", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-aggregatedatasets-{aggdatasetid}-test.js", + "file": "/test/v2.0-data-aggregatedatasets-{aggdatasetid}-test.js", "beforeHooks": [], "afterHooks": [], "tests": [], "suites": [ { - "uuid": "6d27439a-9565-40a5-ad2e-0c697da87446", + "uuid": "f31bf9a2-3793-4b66-9328-62fcdb7798e5", "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-geopoliticalunits-test.js", - "file": "/test/v2.0-data-geopoliticalunits-test.js", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-aggregatedatasets-{aggdatasetid}-test.js", + "file": "/test/v2.0-data-aggregatedatasets-{aggdatasetid}-test.js", "beforeHooks": [], "afterHooks": [], "tests": [ { - "title": "should respond 200 for \"An array of geopolitical units.\"", - "fullTitle": "tests for /v2.0/data/geopoliticalunits tests for get should respond 200 for \"An array of geopolitical units.\"", + "title": "should respond 200 for \"An array of datasets.\"", + "fullTitle": "tests for /v2.0/data/aggregatedatasets/{aggdatasetid} tests for get should respond 200 for \"An array of datasets.\"", "timedOut": false, - "duration": 79, + "duration": 80, "state": "passed", "speed": "fast", "pass": true, "fail": false, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/geopoliticalunits', { \n 'qs': {\"gpid\":5392,\"gpname\":\"Canada\",\"rank\":3,\"lower\":false},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/aggregatedatasets/21500', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", "err": {}, - "uuid": "67cabe8f-21c2-44a3-8629-315de2a2cc2b", - "parentUUID": "6d27439a-9565-40a5-ad2e-0c697da87446", + "uuid": "485611d8-1def-49ed-92ec-9041c23ff194", + "parentUUID": "f31bf9a2-3793-4b66-9328-62fcdb7798e5", "isHook": false, "skipped": false } ], "suites": [], "passes": [ - "67cabe8f-21c2-44a3-8629-315de2a2cc2b" + "485611d8-1def-49ed-92ec-9041c23ff194" ], "failures": [], "pending": [], "skipped": [], - "duration": 79, + "duration": 80, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 } ], "passes": [], @@ -3668,55 +3418,55 @@ "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 }, { - "uuid": "108428d3-19fd-468b-9a24-3090d748a7de", - "title": "tests for /v1.5/data/datasets/{datasetid}", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v1.5-data-datasets-{datasetid}-test.js", - "file": "/test/v1.5-data-datasets-{datasetid}-test.js", + "uuid": "bc9bb11d-8cdc-4e6d-b9a8-d8c9793e993c", + "title": "tests for /v2.0/data/datasets/db", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-datasets-db-test.js", + "file": "/test/v2.0-data-datasets-db-test.js", "beforeHooks": [], "afterHooks": [], "tests": [], "suites": [ { - "uuid": "195e7ea1-7ccf-443a-bc98-cdf319d78851", + "uuid": "07b093ac-0f4c-4c99-b77c-a4a36cbde983", "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v1.5-data-datasets-{datasetid}-test.js", - "file": "/test/v1.5-data-datasets-{datasetid}-test.js", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-datasets-db-test.js", + "file": "/test/v2.0-data-datasets-db-test.js", "beforeHooks": [], "afterHooks": [], "tests": [ { - "title": "should respond 200 for \"An array of datasets.\"", - "fullTitle": "tests for /v1.5/data/datasets/{datasetid} tests for get should respond 200 for \"An array of datasets.\"", + "title": "should respond 200 for \"Datasets\"", + "fullTitle": "tests for /v2.0/data/datasets/db tests for get should respond 200 for \"Datasets\"", "timedOut": false, - "duration": 1931, + "duration": 16252, "state": "passed", "speed": "slow", "pass": true, "fail": false, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v1.5/data/datasets/500', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/datasets/db', { \n 'qs': {\"limit\":283,\"offset\":29305430,\"database\":\"Holocene Perspective on Peatland Biogeochemistry\"},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", "err": {}, - "uuid": "a774bb29-e4a4-462e-acaf-f73e9868288a", - "parentUUID": "195e7ea1-7ccf-443a-bc98-cdf319d78851", + "uuid": "393a3e5b-11aa-4c02-a958-9a7e2f62c326", + "parentUUID": "07b093ac-0f4c-4c99-b77c-a4a36cbde983", "isHook": false, "skipped": false } ], "suites": [], "passes": [ - "a774bb29-e4a4-462e-acaf-f73e9868288a" + "393a3e5b-11aa-4c02-a958-9a7e2f62c326" ], "failures": [], "pending": [], "skipped": [], - "duration": 1931, + "duration": 16252, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 } ], "passes": [], @@ -3726,55 +3476,55 @@ "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 }, { - "uuid": "3a45a7ad-c7dc-4243-9d84-8eb528244217", - "title": "tests for /v2.0/data/pollen/{id}", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-pollen-{id}-test.js", - "file": "/test/v2.0-data-pollen-{id}-test.js", + "uuid": "f57ba3f8-1eba-476f-a6a8-ca9c3cfbf178", + "title": "tests for /v2.0/data/geopoliticalunits/{gpid}/datasets", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-geopoliticalunits-{gpid}-datasets-test.js", + "file": "/test/v2.0-data-geopoliticalunits-{gpid}-datasets-test.js", "beforeHooks": [], "afterHooks": [], "tests": [], "suites": [ { - "uuid": "32e4946f-7244-4779-abbc-b9503f9fd376", + "uuid": "c6f48312-3514-4c1b-84ad-27753ae112f0", "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-pollen-{id}-test.js", - "file": "/test/v2.0-data-pollen-{id}-test.js", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-geopoliticalunits-{gpid}-datasets-test.js", + "file": "/test/v2.0-data-geopoliticalunits-{gpid}-datasets-test.js", "beforeHooks": [], "afterHooks": [], "tests": [ { - "title": "should respond 200 for \"A record of all pollen samples in time/space for a particular taxon.\"", - "fullTitle": "tests for /v2.0/data/pollen/{id} tests for get should respond 200 for \"A record of all pollen samples in time/space for a particular taxon.\"", + "title": "should respond 200 for \"An array of datasets.\"", + "fullTitle": "tests for /v2.0/data/geopoliticalunits/{gpid}/datasets tests for get should respond 200 for \"An array of datasets.\"", "timedOut": false, - "duration": 2, + "duration": 1738, "state": "passed", - "speed": "fast", + "speed": "slow", "pass": true, "fail": false, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/pollen/446', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/geopoliticalunits/8600/datasets', { \n 'qs': {\"limit\":6011,\"offset\":93719849},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", "err": {}, - "uuid": "8fdde587-a9f2-4667-bb3d-313af597019c", - "parentUUID": "32e4946f-7244-4779-abbc-b9503f9fd376", + "uuid": "13d5f13a-58a8-45f9-b8dc-f413451fe0e4", + "parentUUID": "c6f48312-3514-4c1b-84ad-27753ae112f0", "isHook": false, "skipped": false } ], "suites": [], "passes": [ - "8fdde587-a9f2-4667-bb3d-313af597019c" + "13d5f13a-58a8-45f9-b8dc-f413451fe0e4" ], "failures": [], "pending": [], "skipped": [], - "duration": 2, + "duration": 1738, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 } ], "passes": [], @@ -3784,55 +3534,55 @@ "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 }, { - "uuid": "8a36cc1b-5039-462b-ae3c-99f79e96b533", - "title": "tests for /v2.0/data/taxa", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-taxa-test.js", - "file": "/test/v2.0-data-taxa-test.js", + "uuid": "310ec252-e901-4709-a595-cbbc9cfd3810", + "title": "tests for /v2.0/data/summary/dstypemonth", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-summary-dstypemonth-test.js", + "file": "/test/v2.0-data-summary-dstypemonth-test.js", "beforeHooks": [], "afterHooks": [], "tests": [], "suites": [ { - "uuid": "0f8a9cd7-a90e-464f-9c6b-9f66a74fe95f", + "uuid": "39041d87-3e21-4c9c-9145-9cf430e9150b", "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-taxa-test.js", - "file": "/test/v2.0-data-taxa-test.js", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-summary-dstypemonth-test.js", + "file": "/test/v2.0-data-summary-dstypemonth-test.js", "beforeHooks": [], "afterHooks": [], "tests": [ { - "title": "should respond 200 for \"A taxon or array of taxa.\"", - "fullTitle": "tests for /v2.0/data/taxa tests for get should respond 200 for \"A taxon or array of taxa.\"", + "title": "should respond 200 for \"A count of the datasets added by datasettype for the requested period.\"", + "fullTitle": "tests for /v2.0/data/summary/dstypemonth tests for get should respond 200 for \"A count of the datasets added by datasettype for the requested period.\"", "timedOut": false, - "duration": 171, + "duration": 209, "state": "passed", "speed": "fast", "pass": true, "fail": false, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/taxa', { \n 'qs': {\"taxonname\":\"in labore proident\",\"taxagroup\":\"est esse dolore\",\"ecolgroup\":\"dolor exercitation nostrud\",\"status\":0,\"limit\": 10,\"offset\": 0},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/summary/dstypemonth', { \n 'qs': {\"start\":0,\"end\":1},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", "err": {}, - "uuid": "371fdd5a-94e6-43e9-a78b-2ea3e00dc890", - "parentUUID": "0f8a9cd7-a90e-464f-9c6b-9f66a74fe95f", + "uuid": "5a3f0c17-8b0c-40d1-b09d-0f97b91d45a2", + "parentUUID": "39041d87-3e21-4c9c-9145-9cf430e9150b", "isHook": false, "skipped": false } ], "suites": [], "passes": [ - "371fdd5a-94e6-43e9-a78b-2ea3e00dc890" + "5a3f0c17-8b0c-40d1-b09d-0f97b91d45a2" ], "failures": [], "pending": [], "skipped": [], - "duration": 171, + "duration": 209, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 } ], "passes": [], @@ -3842,55 +3592,55 @@ "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 }, { - "uuid": "4334453b-db3b-41a8-b28a-b4954d097886", - "title": "tests for /v1.5/apps/TaxaInDatasets", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v1.5-apps-TaxaInDatasets-test.js", - "file": "/test/v1.5-apps-TaxaInDatasets-test.js", + "uuid": "81ad40cd-39eb-4663-ae1a-e18ebdf9e833", + "title": "tests for /v2.0/data/spatial/lakes", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-spatial-lakes-test.js", + "file": "/test/v2.0-data-spatial-lakes-test.js", "beforeHooks": [], "afterHooks": [], "tests": [], "suites": [ { - "uuid": "90417f4b-a921-4c9e-bd8a-e6615527a5b4", + "uuid": "237e5bfe-a44b-4e88-b5b6-2366c2ebaa43", "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v1.5-apps-TaxaInDatasets-test.js", - "file": "/test/v1.5-apps-TaxaInDatasets-test.js", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-spatial-lakes-test.js", + "file": "/test/v2.0-data-spatial-lakes-test.js", "beforeHooks": [], "afterHooks": [], "tests": [ { - "title": "should respond 200 for \"An array of taxon identities with associated dataset IDs.\"", - "fullTitle": "tests for /v1.5/apps/TaxaInDatasets tests for get should respond 200 for \"An array of taxon identities with associated dataset IDs.\"", + "title": "should respond 200 for \"An object containing all matched lakes within some buffer distance of a site. Data derived from the [HydroLakes database](https://www.hydrosheds.org/products/hydrolakes):
* Messager, M.L., Lehner, B., Grill, G., Nedeva, I., Schmitt, O. (2016). Estimating the volume and age of water stored in global lakes using a geo-statistical approach. *Nature Communications*, 7: 13603. doi: [10.1038/ncomms13603](https://doi.org/10.1038/ncomms13603) \"", + "fullTitle": "tests for /v2.0/data/spatial/lakes tests for get should respond 200 for \"An object containing all matched lakes within some buffer distance of a site. Data derived from the [HydroLakes database](https://www.hydrosheds.org/products/hydrolakes):
* Messager, M.L., Lehner, B., Grill, G., Nedeva, I., Schmitt, O. (2016). Estimating the volume and age of water stored in global lakes using a geo-statistical approach. *Nature Communications*, 7: 13603. doi: [10.1038/ncomms13603](https://doi.org/10.1038/ncomms13603) \"", "timedOut": false, - "duration": 1366, + "duration": 82, "state": "passed", - "speed": "slow", + "speed": "fast", "pass": true, "fail": false, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v1.5/apps/TaxaInDatasets', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/spatial/lakes', { \n 'qs': {\"siteid\":12365,\"buffer\":8162,\"prec\":928.7451462526202,\"proj\":3857},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", "err": {}, - "uuid": "6bffe801-3bbc-4ea7-ae16-fa98b1be2bff", - "parentUUID": "90417f4b-a921-4c9e-bd8a-e6615527a5b4", + "uuid": "84bc14b7-3fc8-497e-8166-fe1e382b56d2", + "parentUUID": "237e5bfe-a44b-4e88-b5b6-2366c2ebaa43", "isHook": false, "skipped": false } ], "suites": [], "passes": [ - "6bffe801-3bbc-4ea7-ae16-fa98b1be2bff" + "84bc14b7-3fc8-497e-8166-fe1e382b56d2" ], "failures": [], "pending": [], "skipped": [], - "duration": 1366, + "duration": 82, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 } ], "passes": [], @@ -3900,55 +3650,55 @@ "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 }, { - "uuid": "35250d30-e58a-4e24-861d-7529cb9f503f", - "title": "tests for /v2.0/data/summary/dstypemonth", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-summary-dstypemonth-test.js", - "file": "/test/v2.0-data-summary-dstypemonth-test.js", + "uuid": "ace24cfe-56b7-4ef2-a768-59b7e30a38e4", + "title": "tests for /v2.0/data/sites/{siteid}/datasets", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-sites-{siteid}-datasets-test.js", + "file": "/test/v2.0-data-sites-{siteid}-datasets-test.js", "beforeHooks": [], "afterHooks": [], "tests": [], "suites": [ { - "uuid": "bebf9f7e-247f-4dd0-ae48-0ff14e7837b2", + "uuid": "89a42fe4-a83d-4ba7-b84f-76c6c3dbbe7c", "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-summary-dstypemonth-test.js", - "file": "/test/v2.0-data-summary-dstypemonth-test.js", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-sites-{siteid}-datasets-test.js", + "file": "/test/v2.0-data-sites-{siteid}-datasets-test.js", "beforeHooks": [], "afterHooks": [], "tests": [ { - "title": "should respond 200 for \"A count of the datasets added by datasettype for the requested period.\"", - "fullTitle": "tests for /v2.0/data/summary/dstypemonth tests for get should respond 200 for \"A count of the datasets added by datasettype for the requested period.\"", + "title": "should respond 200 for \"An array of datasets.\"", + "fullTitle": "tests for /v2.0/data/sites/{siteid}/datasets tests for get should respond 200 for \"An array of datasets.\"", "timedOut": false, - "duration": 204, + "duration": 103, "state": "passed", "speed": "fast", "pass": true, "fail": false, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/summary/dstypemonth', { \n 'qs': {\"start\": 1,\"end\": 10},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/sites/32837/datasets', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", "err": {}, - "uuid": "b28c012d-458d-4dfd-bd18-a4c0b645a3f7", - "parentUUID": "bebf9f7e-247f-4dd0-ae48-0ff14e7837b2", + "uuid": "2cb25604-9802-44f5-8aeb-a09cedf79cea", + "parentUUID": "89a42fe4-a83d-4ba7-b84f-76c6c3dbbe7c", "isHook": false, "skipped": false } ], "suites": [], "passes": [ - "b28c012d-458d-4dfd-bd18-a4c0b645a3f7" + "2cb25604-9802-44f5-8aeb-a09cedf79cea" ], "failures": [], "pending": [], "skipped": [], - "duration": 204, + "duration": 103, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 } ], "passes": [], @@ -3958,73 +3708,37 @@ "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 }, { - "uuid": "6142ef7b-d36f-4e8d-8bf6-2835547b999e", - "title": "Get site data any number of ways:", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/sites.js", - "file": "/test/sites.js", + "uuid": "16bb2e56-5e6a-4ac5-a497-d22dfc3f4354", + "title": "Get taxon data:", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/taxa.js", + "file": "/test/taxa.js", "beforeHooks": [], "afterHooks": [], "tests": [ { - "title": "Get site by singular id & return same id:", - "fullTitle": "Get site data any number of ways: Get site by singular id & return same id:", - "timedOut": false, - "duration": 85, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, - "pending": false, - "context": null, - "code": "api.get('v2.0/data/sites/12')\n .set('Accept', 'application/json')\n .end((err, res) => {\n if (err) return done(err);\n expect(res.body['data'][0]['siteid'] === 12 & Object.keys(res.body['data'][0]).length > 0);\n done();\n });", - "err": {}, - "uuid": "e4c4a5ad-9a9e-4a09-a320-cd8ea405911f", - "parentUUID": "6142ef7b-d36f-4e8d-8bf6-2835547b999e", - "isHook": false, - "skipped": false - }, - { - "title": "Get site by altitude:", - "fullTitle": "Get site data any number of ways: Get site by altitude:", - "timedOut": false, - "duration": 1447, - "state": "passed", - "speed": "slow", - "pass": true, - "fail": false, - "pending": false, - "context": null, - "code": "api.get('v2.0/data/sites/?altmax=5000&altmin=3000')\n .set('Accept', 'application/json')\n .end((err, res) => {\n if (err) return done(err);\n expect(Object.keys(res.body['data'][0]).length > 0);\n done();\n });", - "err": {}, - "uuid": "e3c8a918-b5e1-4517-aaa3-7c710f206b84", - "parentUUID": "6142ef7b-d36f-4e8d-8bf6-2835547b999e", - "isHook": false, - "skipped": false - }, - { - "title": "Break sites by flipping altitudes:", - "fullTitle": "Get site data any number of ways: Break sites by flipping altitudes:", + "title": "v2.0: An empty query returns the first 25 taxa.", + "fullTitle": "Get taxon data: v2.0: An empty query returns the first 25 taxa.", "timedOut": false, - "duration": 1, + "duration": 101, "state": "passed", "speed": "fast", "pass": true, "fail": false, "pending": false, "context": null, - "code": "api.get('v2.0/data/sites/?altmax=3000&altmin=5000')\n .set('Accept', 'application/json')\n .end((err, res) => {\n if (err) return done(err);\n expect(res.body.status === 'failure');\n done();\n });", + "code": "api.get('v2.0/data/taxa/')\n .set('Accept', 'application/json')\n .expect(200, done);", "err": {}, - "uuid": "82576689-1f69-4686-bfa0-af9854bcc1ae", - "parentUUID": "6142ef7b-d36f-4e8d-8bf6-2835547b999e", + "uuid": "ec2a25a3-d7a7-4147-83d8-0f92cd5c5bf0", + "parentUUID": "16bb2e56-5e6a-4ac5-a497-d22dfc3f4354", "isHook": false, "skipped": false }, { - "title": "Break sites by passing invalid siteid:", - "fullTitle": "Get site data any number of ways: Break sites by passing invalid siteid:", + "title": "v2.0: A single taxon should be returned by id:", + "fullTitle": "Get taxon data: v2.0: A single taxon should be returned by id:", "timedOut": false, "duration": 78, "state": "passed", @@ -4033,248 +3747,188 @@ "fail": false, "pending": false, "context": null, - "code": "api.get('v2.0/data/sites/abcd')\n .set('Accept', 'application/json')\n .end((err, res) => {\n if (err) return done(err);\n expect(500, done);\n done();\n });", - "err": {}, - "uuid": "00a82c44-e729-4142-975a-9d94196e11a9", - "parentUUID": "6142ef7b-d36f-4e8d-8bf6-2835547b999e", - "isHook": false, - "skipped": false - }, - { - "title": "Get site by contact information for multiple authors:", - "fullTitle": "Get site data any number of ways: Get site by contact information for multiple authors:", - "timedOut": false, - "duration": 106, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, - "pending": false, - "context": null, - "code": "api.get('v2.0/data/contacts/12,13/sites')\n .set('Accept', 'application/json')\n .expect(function(res) {\n return Object.keys(res.body['data'][0]).length === 2;\n })\n .expect(200, done);", - "err": {}, - "uuid": "2c572ff2-84b0-4686-83e8-5e0d4bfff268", - "parentUUID": "6142ef7b-d36f-4e8d-8bf6-2835547b999e", - "isHook": false, - "skipped": false - } - ], - "suites": [], - "passes": [ - "e4c4a5ad-9a9e-4a09-a320-cd8ea405911f", - "e3c8a918-b5e1-4517-aaa3-7c710f206b84", - "82576689-1f69-4686-bfa0-af9854bcc1ae", - "00a82c44-e729-4142-975a-9d94196e11a9", - "2c572ff2-84b0-4686-83e8-5e0d4bfff268" - ], - "failures": [], - "pending": [], - "skipped": [], - "duration": 1717, - "root": false, - "rootEmpty": false, - "_timeout": 5000 - }, - { - "uuid": "dcc100c9-916f-4da7-a881-46ae2b47d984", - "title": "Get datasets any number of ways:", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/datasets.js", - "file": "/test/datasets.js", - "beforeHooks": [], - "afterHooks": [], - "tests": [ - { - "title": "Asking for the datasets associated with Lake Tulane work:", - "fullTitle": "Get datasets any number of ways: Asking for the datasets associated with Lake Tulane work:", - "timedOut": false, - "duration": 137, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, - "pending": false, - "context": null, - "code": "api.get('v2.0/data/sites/2570/datasets')\n .set('Accept', 'application/json')\n .expect(function(res) {\n return Object.keys(res.body['data'][0]).includes('site');\n })\n .expect(function(res) {\n return res.body['data'][0].site.siteid === 2570;\n })\n .expect(function(res) {\n return Object.keys(res.body['data'][0]['site']['datasets'][0]).includes('datasetid');\n })\n .expect(200, done);", + "code": "api.get('v2.0/data/taxa/12')\n .set('Accept', 'application/json')\n .end(function(err, res) {\n assert.strictEqual(res.body.data[0]['taxonid'], 12);\n done();\n if (err) {\n console.log(err.message);\n };\n });", "err": {}, - "uuid": "d06421b4-8a4f-4160-9274-172b505d5c2a", - "parentUUID": "dcc100c9-916f-4da7-a881-46ae2b47d984", + "uuid": "67ee0da2-f238-4990-846c-a5beae956c05", + "parentUUID": "16bb2e56-5e6a-4ac5-a497-d22dfc3f4354", "isHook": false, "skipped": false }, { - "title": "Get dataset by singular id & return same id:", - "fullTitle": "Get datasets any number of ways: Get dataset by singular id & return same id:", + "title": "v2.0: Taxon queries should be case insensitive:", + "fullTitle": "Get taxon data: v2.0: Taxon queries should be case insensitive:", "timedOut": false, - "duration": 105, + "duration": 144, "state": "passed", "speed": "fast", "pass": true, "fail": false, "pending": false, "context": null, - "code": "api.get('v2.0/data/datasets/12')\n .set('Accept', 'application/json')\n .expect(function(res) {\n return Object.keys(res.body['data'][0]).length > 0;\n })\n .expect(function(res) {\n return res.body['data'][0]['siteid'] === 12;\n })\n .expect(200, done);", + "code": "api.get('v2.0/data/taxa/?taxonname=abies')\n .set('Accept', 'application/json')\n .end(function(err, res) {\n assert.strictEqual(res.body.data[0]['taxonid'], 1);\n done();\n if (err) {\n console.log(err.message);\n };\n });", "err": {}, - "uuid": "bf97995d-632f-4726-b5e4-be4b7fc31d16", - "parentUUID": "dcc100c9-916f-4da7-a881-46ae2b47d984", + "uuid": "80faef20-6512-452e-afff-9851f6fe2ea3", + "parentUUID": "16bb2e56-5e6a-4ac5-a497-d22dfc3f4354", "isHook": false, "skipped": false }, { - "title": "Get dataset from siteid gives us siteids back and datasets:", - "fullTitle": "Get datasets any number of ways: Get dataset from siteid gives us siteids back and datasets:", + "title": "v2.0: Taxon queries should accept comma separated lists:", + "fullTitle": "Get taxon data: v2.0: Taxon queries should accept comma separated lists:", "timedOut": false, - "duration": 93, + "duration": 148, "state": "passed", "speed": "fast", "pass": true, "fail": false, "pending": false, "context": null, - "code": "api.get('v2.0/data/sites/123/datasets')\n .set('Accept', 'application/json')\n .expect(function(res) {\n return res.body['data'][0].site.siteid === 123;\n })\n .expect(function(res) {\n return res.body['data'][0].site.datasets.length > 0;\n })\n .expect(200, done);", + "code": "api.get('v2.0/data/taxa/?taxonname=abies,picea')\n .set('Accept', 'application/json')\n .end(function(err, res) {\n assert.strictEqual(res.body.data[0]['taxonid'], 1);\n done();\n if (err) {\n console.log(err.message);\n };\n });", "err": {}, - "uuid": "f7606501-9dad-48d5-97c5-146c1490cf5b", - "parentUUID": "dcc100c9-916f-4da7-a881-46ae2b47d984", + "uuid": "e76a0e22-c939-4e52-9f19-d933f9b2325d", + "parentUUID": "16bb2e56-5e6a-4ac5-a497-d22dfc3f4354", "isHook": false, "skipped": false }, { - "title": "Get dataset by comma separated ids & return same ids:", - "fullTitle": "Get datasets any number of ways: Get dataset by comma separated ids & return same ids:", + "title": "v2.0: Hierarchical taxon queries should accept comma separated lists:", + "fullTitle": "Get taxon data: v2.0: Hierarchical taxon queries should accept comma separated lists:", "timedOut": false, - "duration": 106, + "duration": 256, "state": "passed", "speed": "fast", "pass": true, "fail": false, "pending": false, "context": null, - "code": "api.get('v2.0/data/datasets/?siteid=12,13,14')\n .set('Accept', 'application/json')\n .expect(function(res) {\n return Object.keys(res.body['data']).length > 0;\n })\n .expect(200, done);", + "code": "api.get('v2.0/data/taxa/?taxonname=abies,picea&lower=true')\n .set('Accept', 'application/json')\n .end(function(err, res) {\n const data = res.body.data;\n const higher = [...new Set(data.map((x) => x.highertaxonid))];\n /* There should be four unique higher taxon IDs:\n * One for `Abies`\n * One for `Picea`\n * The rest pointing to Abies & Picea.\n */\n assert.strictEqual(higher.length, 4);\n done();\n if (err) {\n console.log(err.message);\n };\n });", "err": {}, - "uuid": "76810f24-0eaa-4e6b-a33d-8459d9e5a67c", - "parentUUID": "dcc100c9-916f-4da7-a881-46ae2b47d984", + "uuid": "9a827c78-dc0c-401e-9613-7866a304f0e9", + "parentUUID": "16bb2e56-5e6a-4ac5-a497-d22dfc3f4354", "isHook": false, "skipped": false }, { - "title": "Returns all key elements of the object:", - "fullTitle": "Get datasets any number of ways: Returns all key elements of the object:", + "title": "v2.0: Taxon queries should accept `*` as a wildcard:", + "fullTitle": "Get taxon data: v2.0: Taxon queries should accept `*` as a wildcard:", "timedOut": false, - "duration": 1, + "duration": 149, "state": "passed", "speed": "fast", "pass": true, "fail": false, "pending": false, "context": null, - "code": "api.get('v2.0/data/datasets/12')\n .set('Accept', 'application/json')\n .expect(function(res) {\n return Object.keys(res.body['data']).includes('site', 'dataset');\n })\n .expect(200, done);", + "code": "api.get('v2.0/data/taxa/?taxonname=abie*')\n .set('Accept', 'application/json')\n .end(function(err, res) {\n assert.strictEqual(res.body.data[0]['taxonid'], 1);\n done();\n if (err) {\n console.log(err.message);\n };\n });", "err": {}, - "uuid": "8296fec1-1544-429a-82b4-76ad59641b37", - "parentUUID": "dcc100c9-916f-4da7-a881-46ae2b47d984", + "uuid": "3ec26ade-0d7d-46d0-9ad4-491c6e8eac5a", + "parentUUID": "16bb2e56-5e6a-4ac5-a497-d22dfc3f4354", "isHook": false, "skipped": false }, { - "title": "Limits work:", - "fullTitle": "Get datasets any number of ways: Limits work:", + "title": "v2.0: The default limit of 25 should be reached for taxon data:", + "fullTitle": "Get taxon data: v2.0: The default limit of 25 should be reached for taxon data:", "timedOut": false, - "duration": 239, + "duration": 721, "state": "passed", - "speed": "fast", + "speed": "medium", "pass": true, "fail": false, "pending": false, "context": null, - "code": "api.get('v2.0/data/datasets/?altmax=3&limit=10')\n .set('Accept', 'application/json')\n .expect(function(res) {\n return Object.keys(res.body['data']).length == 10;\n })\n .expect(200, done);", + "code": "api.get('v2.0/data/taxa/?taxonname=a*')\n .set('Accept', 'application/json')\n .end(function(err, res) {\n assert.strictEqual(res.body.data.length, 25);\n done();\n if (err) {\n console.log(err.message);\n };\n });", "err": {}, - "uuid": "fa9df147-5e67-4164-8b91-b1abc4e40c82", - "parentUUID": "dcc100c9-916f-4da7-a881-46ae2b47d984", + "uuid": "2b6438dc-6ba7-426f-8b88-19014e6a448b", + "parentUUID": "16bb2e56-5e6a-4ac5-a497-d22dfc3f4354", "isHook": false, "skipped": false }, { - "title": "Works with age validation:", - "fullTitle": "Get datasets any number of ways: Works with age validation:", + "title": "v2.0: Changing the limit should change the number of taxa retrieved:", + "fullTitle": "Get taxon data: v2.0: Changing the limit should change the number of taxa retrieved:", "timedOut": false, - "duration": 29505, + "duration": 592, "state": "passed", - "speed": "slow", + "speed": "medium", "pass": true, "fail": false, "pending": false, "context": null, - "code": "api.get('v2.0/data/datasets/?ageyoung=1200&ageold=1500&altmax=3')\n .set('Accept', 'application/json')\n .expect(function(res) {\n let test = true;\n for (let i = 0; i < res.body['data'].length; i++) {\n test = test &\n res.body['data'][i]['site']['datasets'][0]['agerange']['ageyoung'] < 1200 &\n res.body['data'][i]['site']['datasets'][0]['agerange']['ageold'] > 1500;\n if (test === false) { return test; }\n }\n return true;\n })\n .expect(200, done);", + "code": "api.get('v2.0/data/taxa/?taxonname=a*&limit=30')\n .set('Accept', 'application/json')\n .end(function(err, res) {\n assert.strictEqual(res.body.data.length, 30);\n done();\n if (err) {\n console.log(err.message);\n };\n });", "err": {}, - "uuid": "6adf9342-6c46-46b5-9ed7-3f1caad78a32", - "parentUUID": "dcc100c9-916f-4da7-a881-46ae2b47d984", + "uuid": "1b5c2030-cc85-4611-87da-cc0dcc87b1c5", + "parentUUID": "16bb2e56-5e6a-4ac5-a497-d22dfc3f4354", "isHook": false, "skipped": false } ], "suites": [], "passes": [ - "d06421b4-8a4f-4160-9274-172b505d5c2a", - "bf97995d-632f-4726-b5e4-be4b7fc31d16", - "f7606501-9dad-48d5-97c5-146c1490cf5b", - "76810f24-0eaa-4e6b-a33d-8459d9e5a67c", - "8296fec1-1544-429a-82b4-76ad59641b37", - "fa9df147-5e67-4164-8b91-b1abc4e40c82", - "6adf9342-6c46-46b5-9ed7-3f1caad78a32" + "ec2a25a3-d7a7-4147-83d8-0f92cd5c5bf0", + "67ee0da2-f238-4990-846c-a5beae956c05", + "80faef20-6512-452e-afff-9851f6fe2ea3", + "e76a0e22-c939-4e52-9f19-d933f9b2325d", + "9a827c78-dc0c-401e-9613-7866a304f0e9", + "3ec26ade-0d7d-46d0-9ad4-491c6e8eac5a", + "2b6438dc-6ba7-426f-8b88-19014e6a448b", + "1b5c2030-cc85-4611-87da-cc0dcc87b1c5" ], "failures": [], "pending": [], "skipped": [], - "duration": 30186, + "duration": 2189, "root": false, "rootEmpty": false, - "_timeout": 50000 + "_timeout": 900000 }, { - "uuid": "6d0d148c-aa53-4264-96d0-ae845494dedf", - "title": "tests for /v2.0/data/datasets/{datasetid}/lithology", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-datasets-{datasetid}-lithology-test.js", - "file": "/test/v2.0-data-datasets-{datasetid}-lithology-test.js", + "uuid": "65469ef2-c751-4907-8cd0-71707825cb34", + "title": "tests for /v2.0/apps/datasettypes", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-apps-datasettypes-test.js", + "file": "/test/v2.0-apps-datasettypes-test.js", "beforeHooks": [], "afterHooks": [], "tests": [], "suites": [ { - "uuid": "4eb7520b-8551-4790-96be-be91835425ff", + "uuid": "d341e8bb-2294-44ed-bab1-2ef2d4a03497", "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-datasets-{datasetid}-lithology-test.js", - "file": "/test/v2.0-data-datasets-{datasetid}-lithology-test.js", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-apps-datasettypes-test.js", + "file": "/test/v2.0-apps-datasettypes-test.js", "beforeHooks": [], "afterHooks": [], "tests": [ { - "title": "should respond 200 for \"Lithology\"", - "fullTitle": "tests for /v2.0/data/datasets/{datasetid}/lithology tests for get should respond 200 for \"Lithology\"", + "title": "should respond 200 for \"A table of Neotoma collection types.\"", + "fullTitle": "tests for /v2.0/apps/datasettypes tests for get should respond 200 for \"A table of Neotoma collection types.\"", "timedOut": false, - "duration": 100, + "duration": 93, "state": "passed", "speed": "fast", "pass": true, "fail": false, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/datasets/500/lithology', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "code": "var response = request('get', 'http://localhost:3001/v2.0/apps/datasettypes', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", "err": {}, - "uuid": "f88ef683-f637-400e-a3b3-2409db9b7722", - "parentUUID": "4eb7520b-8551-4790-96be-be91835425ff", + "uuid": "50ae73f8-103c-4bc7-b58a-7e89e8d1e43c", + "parentUUID": "d341e8bb-2294-44ed-bab1-2ef2d4a03497", "isHook": false, "skipped": false } ], "suites": [], "passes": [ - "f88ef683-f637-400e-a3b3-2409db9b7722" + "50ae73f8-103c-4bc7-b58a-7e89e8d1e43c" ], "failures": [], "pending": [], "skipped": [], - "duration": 100, + "duration": 93, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 } ], "passes": [], @@ -4284,55 +3938,55 @@ "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 }, { - "uuid": "888c9af0-684b-497f-9e10-c4f82df34ffb", - "title": "tests for /v2.0/data/sites", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-sites-test.js", - "file": "/test/v2.0-data-sites-test.js", + "uuid": "49b72643-ccf3-4125-9c8a-c7353509b73e", + "title": "tests for /v1.5/apps/DatasetTypes", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v1.5-apps-DatasetTypes-test.js", + "file": "/test/v1.5-apps-DatasetTypes-test.js", "beforeHooks": [], "afterHooks": [], "tests": [], "suites": [ { - "uuid": "8254803b-6299-4bdd-b89f-73b9086c21c9", + "uuid": "3d3f29bf-8464-445a-8a78-4174160c01d2", "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-sites-test.js", - "file": "/test/v2.0-data-sites-test.js", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v1.5-apps-DatasetTypes-test.js", + "file": "/test/v1.5-apps-DatasetTypes-test.js", "beforeHooks": [], "afterHooks": [], "tests": [ { - "title": "should respond 200 for \"An array of sites.\"", - "fullTitle": "tests for /v2.0/data/sites tests for get should respond 200 for \"An array of sites.\"", + "title": "should respond 200 for \"Returns the set of dataset types supported by Neotoma.\"", + "fullTitle": "tests for /v1.5/apps/DatasetTypes tests for get should respond 200 for \"Returns the set of dataset types supported by Neotoma.\"", "timedOut": false, - "duration": 964, + "duration": 92, "state": "passed", - "speed": "medium", + "speed": "fast", "pass": true, "fail": false, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/sites', { \n 'qs': {\"sitename\":\"sunt\",\"database\":\"Canadian Museum of Nature-Delorme Ostracoda-Surface Samples\",\"datasettype\":\"specimen stable isotope\",\"altmin\": 10,\"altmax\": 100,\"loc\":\"{\\\"type\\\":\\\"Polygon\\\",\\\"crs\\\":{\\\"type\\\":\\\"name\\\",\\\"properties\\\":{\\\"name\\\":\\\"EPSG:4326\\\"}},\\\"coordinates\\\":[[[13.4,55.92],[13.5,55.92],[13.5,55.95],[13.4,55.95],[13.4,55.92]]]}\",\"siteid\":42988,\"datasetid\":60309948,\"doi\":\"1021436435/Q7\",\"gpid\":5392,\"keyword\":\"beyond radiocarbon\",\"contactid\":13502,\"taxa\":\"minim\",\"ageyoung\": 1000,\"ageold\": 10000,\"ageof\":4640795,\"limit\": 10,\"offset\": 0},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "code": "var response = request('get', 'http://localhost:3001/v1.5/apps/DatasetTypes', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", "err": {}, - "uuid": "62fe955e-2153-483c-8045-aa062e3e490e", - "parentUUID": "8254803b-6299-4bdd-b89f-73b9086c21c9", + "uuid": "571c6216-7841-4ef5-9970-6b5fc6524276", + "parentUUID": "3d3f29bf-8464-445a-8a78-4174160c01d2", "isHook": false, "skipped": false } ], "suites": [], "passes": [ - "62fe955e-2153-483c-8045-aa062e3e490e" + "571c6216-7841-4ef5-9970-6b5fc6524276" ], "failures": [], "pending": [], "skipped": [], - "duration": 964, + "duration": 92, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 } ], "passes": [], @@ -4342,228 +3996,113 @@ "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 }, { - "uuid": "08472e39-f343-4b97-9686-d034a9e1ffd7", - "title": "Get Neotoma data with geoJSON extents:", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/spatial.js", - "file": "/test/spatial.js", + "uuid": "db54e0a6-6a3d-415e-820c-c5127ea1d740", + "title": "tests for /v2.0/data/contacts/{contactid}", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-contacts-{contactid}-test.js", + "file": "/test/v2.0-data-contacts-{contactid}-test.js", "beforeHooks": [], "afterHooks": [], - "tests": [ + "tests": [], + "suites": [ { - "title": "Get occurrence data using a simple geoJSON:", - "fullTitle": "Get Neotoma data with geoJSON extents: Get occurrence data using a simple geoJSON:", - "timedOut": false, - "duration": 446, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, - "pending": false, - "context": null, - "code": "api.get('v2.0/data/occurrences?loc={\"type\":\"Polygon\",\"coordinates\":[[[-104.053249,41.001406],[-103.497447,41.001635],[-102.865784,41.001988],[-102.556789,41.002219],[-102.051614,41.002377],[-102.051725,40.537839],[-102.051744,40.003078],[-102.050422,39.646048],[-102.048449,39.303138],[-102.045388,38.813392],[-102.045324,38.453647],[-102.044644,38.045532],[-102.041574,37.680436],[-102.041974,37.352613],[-102.04224,36.993083],[-102.698142,36.995149],[-102.814616,37.000783],[-103.002199,37.000104],[-103.733247,36.998016],[-104.338833,36.993535],[-105.000554,36.993264],[-105.1208,36.995428],[-105.62747,36.995679],[-106.201469,36.994122],[-106.869796,36.992426],[-106.877292,37.000139],[-107.420913,37.000005],[-108.000623,37.000001],[-108.249358,36.999015],[-108.620309,36.999287],[-109.045223,36.999084],[-109.04581,37.374993],[-109.041865,37.530726],[-109.041058,37.907236],[-109.041762,38.16469],[-109.060062,38.275489],[-109.059541,38.719888],[-109.054189,38.874984],[-109.051512,39.126095],[-109.051363,39.497674],[-109.050615,39.87497],[-109.050946,40.444368],[-109.048044,40.619231],[-109.050076,41.000659],[-108.884138,41.000094],[-108.250649,41.000114],[-107.625624,41.002124],[-106.857773,41.002663],[-106.453859,41.002057],[-106.217573,40.997734],[-105.730421,40.996886],[-105.277138,40.998173],[-104.855273,40.998048],[-104.675999,41.000957],[-104.053249,41.001406]]]}')\n .set('Accept', 'application/json')\n .expect(function(res) {\n return Object.keys(res.body['data'][0]).length > 0;\n })\n .expect(function(res) {\n return res.body['data'][0]['occurrence'] === 12;\n })\n .expect(200, done);", - "err": {}, - "uuid": "c97858af-cab2-421b-8b13-1bfa655a8657", - "parentUUID": "08472e39-f343-4b97-9686-d034a9e1ffd7", - "isHook": false, - "skipped": false - }, + "uuid": "e5900ac6-2bd5-45ea-98d8-ef3b60b2b3fe", + "title": "tests for get", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-contacts-{contactid}-test.js", + "file": "/test/v2.0-data-contacts-{contactid}-test.js", + "beforeHooks": [], + "afterHooks": [], + "tests": [ + { + "title": "should respond 200 for \"A Neotoma contacts object.\"", + "fullTitle": "tests for /v2.0/data/contacts/{contactid} tests for get should respond 200 for \"A Neotoma contacts object.\"", + "timedOut": false, + "duration": 72, + "state": "passed", + "speed": "fast", + "pass": true, + "fail": false, + "pending": false, + "context": null, + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/contacts/16865', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "err": {}, + "uuid": "da7f8342-e2cc-4f7f-99cc-2e72dc07b748", + "parentUUID": "e5900ac6-2bd5-45ea-98d8-ef3b60b2b3fe", + "isHook": false, + "skipped": false + } + ], + "suites": [], + "passes": [ + "da7f8342-e2cc-4f7f-99cc-2e72dc07b748" + ], + "failures": [], + "pending": [], + "skipped": [], + "duration": 72, + "root": false, + "rootEmpty": false, + "_timeout": 900000 + } + ], + "passes": [], + "failures": [], + "pending": [], + "skipped": [], + "duration": 0, + "root": false, + "rootEmpty": false, + "_timeout": 900000 + }, + { + "uuid": "bb24bf4a-b626-4cb2-ac73-d3eb361ef509", + "title": "tests for /v2.0/data/summary/rawbymonth", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-summary-rawbymonth-test.js", + "file": "/test/v2.0-data-summary-rawbymonth-test.js", + "beforeHooks": [], + "afterHooks": [], + "tests": [], + "suites": [ { - "title": "Get site data using a simple geoJSON:", - "fullTitle": "Get Neotoma data with geoJSON extents: Get site data using a simple geoJSON:", - "timedOut": false, - "duration": 1165, - "state": "passed", - "speed": "slow", - "pass": true, - "fail": false, - "pending": false, - "context": null, - "code": "api.get('v2.0/data/sites?loc={\"type\":\"Polygon\",\"coordinates\":[[[-104.053249,41.001406],[-103.497447,41.001635],[-102.865784,41.001988],[-102.556789,41.002219],[-102.051614,41.002377],[-102.051725,40.537839],[-102.051744,40.003078],[-102.050422,39.646048],[-102.048449,39.303138],[-102.045388,38.813392],[-102.045324,38.453647],[-102.044644,38.045532],[-102.041574,37.680436],[-102.041974,37.352613],[-102.04224,36.993083],[-102.698142,36.995149],[-102.814616,37.000783],[-103.002199,37.000104],[-103.733247,36.998016],[-104.338833,36.993535],[-105.000554,36.993264],[-105.1208,36.995428],[-105.62747,36.995679],[-106.201469,36.994122],[-106.869796,36.992426],[-106.877292,37.000139],[-107.420913,37.000005],[-108.000623,37.000001],[-108.249358,36.999015],[-108.620309,36.999287],[-109.045223,36.999084],[-109.04581,37.374993],[-109.041865,37.530726],[-109.041058,37.907236],[-109.041762,38.16469],[-109.060062,38.275489],[-109.059541,38.719888],[-109.054189,38.874984],[-109.051512,39.126095],[-109.051363,39.497674],[-109.050615,39.87497],[-109.050946,40.444368],[-109.048044,40.619231],[-109.050076,41.000659],[-108.884138,41.000094],[-108.250649,41.000114],[-107.625624,41.002124],[-106.857773,41.002663],[-106.453859,41.002057],[-106.217573,40.997734],[-105.730421,40.996886],[-105.277138,40.998173],[-104.855273,40.998048],[-104.675999,41.000957],[-104.053249,41.001406]]]}')\n .set('Accept', 'application/json')\n .expect(function(res) {\n return Object.keys(res.body['data'][0]).length > 0;\n })\n .expect(function(res) {\n return res.body['data'][0]['occurrence'] === 12;\n })\n .expect(200, done);", - "err": {}, - "uuid": "cda55941-dcd7-46b8-874d-7111a2136bfd", - "parentUUID": "08472e39-f343-4b97-9686-d034a9e1ffd7", - "isHook": false, - "skipped": false - }, - { - "title": "Get dataset data using a simple geoJSON:", - "fullTitle": "Get Neotoma data with geoJSON extents: Get dataset data using a simple geoJSON:", - "timedOut": false, - "duration": 3485, - "state": "passed", - "speed": "slow", - "pass": true, - "fail": false, - "pending": false, - "context": null, - "code": "api.get('v2.0/data/datasets?loc={\"type\":\"Polygon\",\"coordinates\":[[[-104.053249,41.001406],[-103.497447,41.001635],[-102.865784,41.001988],[-102.556789,41.002219],[-102.051614,41.002377],[-102.051725,40.537839],[-102.051744,40.003078],[-102.050422,39.646048],[-102.048449,39.303138],[-102.045388,38.813392],[-102.045324,38.453647],[-102.044644,38.045532],[-102.041574,37.680436],[-102.041974,37.352613],[-102.04224,36.993083],[-102.698142,36.995149],[-102.814616,37.000783],[-103.002199,37.000104],[-103.733247,36.998016],[-104.338833,36.993535],[-105.000554,36.993264],[-105.1208,36.995428],[-105.62747,36.995679],[-106.201469,36.994122],[-106.869796,36.992426],[-106.877292,37.000139],[-107.420913,37.000005],[-108.000623,37.000001],[-108.249358,36.999015],[-108.620309,36.999287],[-109.045223,36.999084],[-109.04581,37.374993],[-109.041865,37.530726],[-109.041058,37.907236],[-109.041762,38.16469],[-109.060062,38.275489],[-109.059541,38.719888],[-109.054189,38.874984],[-109.051512,39.126095],[-109.051363,39.497674],[-109.050615,39.87497],[-109.050946,40.444368],[-109.048044,40.619231],[-109.050076,41.000659],[-108.884138,41.000094],[-108.250649,41.000114],[-107.625624,41.002124],[-106.857773,41.002663],[-106.453859,41.002057],[-106.217573,40.997734],[-105.730421,40.996886],[-105.277138,40.998173],[-104.855273,40.998048],[-104.675999,41.000957],[-104.053249,41.001406]]]}')\n .set('Accept', 'application/json')\n .expect(function(res) {\n return Object.keys(res.body['data'][0]).length > 0;\n })\n .expect(function(res) {\n return res.body['data'][0]['occurrence'] === 12;\n })\n .expect(200, done);", - "err": {}, - "uuid": "2948d74c-3f7d-4d77-b401-d68cea4adb76", - "parentUUID": "08472e39-f343-4b97-9686-d034a9e1ffd7", - "isHook": false, - "skipped": false - } - ], - "suites": [], - "passes": [ - "c97858af-cab2-421b-8b13-1bfa655a8657", - "cda55941-dcd7-46b8-874d-7111a2136bfd", - "2948d74c-3f7d-4d77-b401-d68cea4adb76" - ], - "failures": [], - "pending": [], - "skipped": [], - "duration": 5096, - "root": false, - "rootEmpty": false, - "_timeout": 15000 - }, - { - "uuid": "e4ecc915-14cb-4527-bd31-87ef3e43c7e0", - "title": "Get Neotoma data with WKT extents:", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/spatial.js", - "file": "/test/spatial.js", - "beforeHooks": [], - "afterHooks": [], - "tests": [ - { - "title": "Get occurrence data using a simple WKT:", - "fullTitle": "Get Neotoma data with WKT extents: Get occurrence data using a simple WKT:", - "timedOut": false, - "duration": 248, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, - "pending": false, - "context": null, - "code": "api.get('v2.0/data/occurrences?loc=POLYGON((-104.053249 41.001406,-103.497447 41.001635,-102.865784 41.001988,-102.556789 41.002219,-102.051614 41.002377,-102.051725 40.537839,-102.051744 40.003078,-102.050422 39.646048,-102.048449 39.303138,-102.045388 38.813392,-102.045324 38.453647,-102.044644 38.045532,-102.041574 37.680436,-102.041974 37.352613,-102.04224 36.993083,-102.698142 36.995149,-102.814616 37.000783,-103.002199 37.000104,-103.733247 36.998016,-104.338833 36.993535,-105.000554 36.993264,-105.1208 36.995428,-105.62747 36.995679,-106.201469 36.994122,-106.869796 36.992426,-106.877292 37.000139,-107.420913 37.000005,-108.000623 37.000001,-108.249358 36.999015,-108.620309 36.999287,-109.045223 36.999084,-109.04581 37.374993,-109.041865 37.530726,-109.041058 37.907236,-109.041762 38.16469,-109.060062 38.275489,-109.059541 38.719888,-109.054189 38.874984,-109.051512 39.126095,-109.051363 39.497674,-109.050615 39.87497,-109.050946 40.444368,-109.048044 40.619231,-109.050076 41.000659,-108.884138 41.000094,-108.250649 41.000114,-107.625624 41.002124,-106.857773 41.002663,-106.453859 41.002057,-106.217573 40.997734,-105.730421 40.996886,-105.277138 40.998173,-104.855273 40.998048,-104.675999 41.000957,-104.053249 41.001406))')\n .set('Accept', 'application/json')\n .expect(function(res) {\n return Object.keys(res.body['data'][0]).length > 0;\n })\n .expect(function(res) {\n return res.body['data'][0]['occurrence'] === 12;\n })\n .expect(200, done);", - "err": {}, - "uuid": "ca9c596b-8f59-42b3-9840-deee6bc95f5b", - "parentUUID": "e4ecc915-14cb-4527-bd31-87ef3e43c7e0", - "isHook": false, - "skipped": false - }, - { - "title": "Get site data using a simple WKT:", - "fullTitle": "Get Neotoma data with WKT extents: Get site data using a simple WKT:", - "timedOut": false, - "duration": 208, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, - "pending": false, - "context": null, - "code": "api.get('v2.0/data/sites?loc=POLYGON((-104.053249 41.001406,-103.497447 41.001635,-102.865784 41.001988,-102.556789 41.002219,-102.051614 41.002377,-102.051725 40.537839,-102.051744 40.003078,-102.050422 39.646048,-102.048449 39.303138,-102.045388 38.813392,-102.045324 38.453647,-102.044644 38.045532,-102.041574 37.680436,-102.041974 37.352613,-102.04224 36.993083,-102.698142 36.995149,-102.814616 37.000783,-103.002199 37.000104,-103.733247 36.998016,-104.338833 36.993535,-105.000554 36.993264,-105.1208 36.995428,-105.62747 36.995679,-106.201469 36.994122,-106.869796 36.992426,-106.877292 37.000139,-107.420913 37.000005,-108.000623 37.000001,-108.249358 36.999015,-108.620309 36.999287,-109.045223 36.999084,-109.04581 37.374993,-109.041865 37.530726,-109.041058 37.907236,-109.041762 38.16469,-109.060062 38.275489,-109.059541 38.719888,-109.054189 38.874984,-109.051512 39.126095,-109.051363 39.497674,-109.050615 39.87497,-109.050946 40.444368,-109.048044 40.619231,-109.050076 41.000659,-108.884138 41.000094,-108.250649 41.000114,-107.625624 41.002124,-106.857773 41.002663,-106.453859 41.002057,-106.217573 40.997734,-105.730421 40.996886,-105.277138 40.998173,-104.855273 40.998048,-104.675999 41.000957,-104.053249 41.001406))')\n .set('Accept', 'application/json')\n .expect(function(res) {\n return Object.keys(res.body['data'][0]).length > 0;\n })\n .expect(function(res) {\n return res.body['data'][0]['occurrence'] === 12;\n })\n .expect(200, done);", - "err": {}, - "uuid": "833f696c-fa60-4f91-953f-822b2bbaf676", - "parentUUID": "e4ecc915-14cb-4527-bd31-87ef3e43c7e0", - "isHook": false, - "skipped": false - }, - { - "title": "Get dataset data using a simple WKT:", - "fullTitle": "Get Neotoma data with WKT extents: Get dataset data using a simple WKT:", - "timedOut": false, - "duration": 196, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, - "pending": false, - "context": null, - "code": "api.get('v2.0/data/datasets?loc=POLYGON((-104.053249 41.001406,-103.497447 41.001635,-102.865784 41.001988,-102.556789 41.002219,-102.051614 41.002377,-102.051725 40.537839,-102.051744 40.003078,-102.050422 39.646048,-102.048449 39.303138,-102.045388 38.813392,-102.045324 38.453647,-102.044644 38.045532,-102.041574 37.680436,-102.041974 37.352613,-102.04224 36.993083,-102.698142 36.995149,-102.814616 37.000783,-103.002199 37.000104,-103.733247 36.998016,-104.338833 36.993535,-105.000554 36.993264,-105.1208 36.995428,-105.62747 36.995679,-106.201469 36.994122,-106.869796 36.992426,-106.877292 37.000139,-107.420913 37.000005,-108.000623 37.000001,-108.249358 36.999015,-108.620309 36.999287,-109.045223 36.999084,-109.04581 37.374993,-109.041865 37.530726,-109.041058 37.907236,-109.041762 38.16469,-109.060062 38.275489,-109.059541 38.719888,-109.054189 38.874984,-109.051512 39.126095,-109.051363 39.497674,-109.050615 39.87497,-109.050946 40.444368,-109.048044 40.619231,-109.050076 41.000659,-108.884138 41.000094,-108.250649 41.000114,-107.625624 41.002124,-106.857773 41.002663,-106.453859 41.002057,-106.217573 40.997734,-105.730421 40.996886,-105.277138 40.998173,-104.855273 40.998048,-104.675999 41.000957,-104.053249 41.001406))')\n .set('Accept', 'application/json')\n .expect(function(res) {\n return Object.keys(res.body['data'][0]).length > 0;\n })\n .expect(function(res) {\n return res.body['data'][0]['occurrence'] === 12;\n })\n .expect(200, done);", - "err": {}, - "uuid": "5e3fbd66-1755-48ec-af1f-717e8aa84141", - "parentUUID": "e4ecc915-14cb-4527-bd31-87ef3e43c7e0", - "isHook": false, - "skipped": false - }, - { - "title": "Get dataset data using a simple WKT:", - "fullTitle": "Get Neotoma data with WKT extents: Get dataset data using a simple WKT:", - "timedOut": false, - "duration": 185, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, - "pending": false, - "context": null, - "code": "api.get('v2.0/data/datasets?loc=POLYGON((139.8%20-33.7,%20150.1%20-33.7,%20150.1%20-39.1,%20139.8%20-39.1,%20139.8%20-33.7))')\n .set('Accept', 'application/json')\n .expect(function(res) {\n return Object.keys(res.body['data'][0]).length > 0;\n })\n .expect(function(res) {\n return res.body['data'][0]['occurrence'] === 12;\n })\n .expect(200, done);", - "err": {}, - "uuid": "6901e9cd-d4b1-4451-b6f2-b7df9e47d580", - "parentUUID": "e4ecc915-14cb-4527-bd31-87ef3e43c7e0", - "isHook": false, - "skipped": false - } - ], - "suites": [], - "passes": [ - "ca9c596b-8f59-42b3-9840-deee6bc95f5b", - "833f696c-fa60-4f91-953f-822b2bbaf676", - "5e3fbd66-1755-48ec-af1f-717e8aa84141", - "6901e9cd-d4b1-4451-b6f2-b7df9e47d580" - ], - "failures": [], - "pending": [], - "skipped": [], - "duration": 837, - "root": false, - "rootEmpty": false, - "_timeout": 15000 - }, - { - "uuid": "9e0cc6c0-285b-42ed-9a57-225aa75e8e45", - "title": "tests for /v2.0/data/taxa/{taxonid}/occurrences", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-taxa-{taxonid}-occurrences-test.js", - "file": "/test/v2.0-data-taxa-{taxonid}-occurrences-test.js", - "beforeHooks": [], - "afterHooks": [], - "tests": [], - "suites": [ - { - "uuid": "d0e1cf6c-e77e-4d71-8124-873e3f55f003", + "uuid": "cc648f17-b69a-4941-adc3-a466c4220f33", "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-taxa-{taxonid}-occurrences-test.js", - "file": "/test/v2.0-data-taxa-{taxonid}-occurrences-test.js", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-summary-rawbymonth-test.js", + "file": "/test/v2.0-data-summary-rawbymonth-test.js", "beforeHooks": [], "afterHooks": [], "tests": [ { - "title": "should respond 200 for \"occurrence\"", - "fullTitle": "tests for /v2.0/data/taxa/{taxonid}/occurrences tests for get should respond 200 for \"occurrence\"", + "title": "should respond 200 for \"A count of the data objects added to Neotoma.\"", + "fullTitle": "tests for /v2.0/data/summary/rawbymonth tests for get should respond 200 for \"A count of the data objects added to Neotoma.\"", "timedOut": false, - "duration": 110, + "duration": 12196, "state": "passed", - "speed": "fast", + "speed": "slow", "pass": true, "fail": false, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/taxa/500/occurrences', { \n 'qs': {\"limit\": 10,\"offset\": 0},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/summary/rawbymonth', { \n 'qs': {\"start\":0,\"end\":1},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", "err": {}, - "uuid": "25efa9ff-ce82-464b-8466-1e0f490ebcf8", - "parentUUID": "d0e1cf6c-e77e-4d71-8124-873e3f55f003", + "uuid": "0cf3fd2f-8508-452e-8dbe-821b51ee0424", + "parentUUID": "cc648f17-b69a-4941-adc3-a466c4220f33", "isHook": false, "skipped": false } ], "suites": [], "passes": [ - "25efa9ff-ce82-464b-8466-1e0f490ebcf8" + "0cf3fd2f-8508-452e-8dbe-821b51ee0424" ], "failures": [], "pending": [], "skipped": [], - "duration": 110, + "duration": 12196, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 } ], "passes": [], @@ -4573,55 +4112,55 @@ "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 }, { - "uuid": "a997f614-01f6-4643-89d4-16c581652ee5", - "title": "tests for /v2.0/apps/datasettypes", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-apps-datasettypes-test.js", - "file": "/test/v2.0-apps-datasettypes-test.js", + "uuid": "e9f0259a-4b7a-4660-9ee0-3fa1f07eb560", + "title": "tests for /v2.0/data/sites", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-sites-test.js", + "file": "/test/v2.0-data-sites-test.js", "beforeHooks": [], "afterHooks": [], "tests": [], "suites": [ { - "uuid": "c73f2d2c-68ce-42c8-84d7-cbd762080567", + "uuid": "ccbe9bc8-4bf1-4ae4-8612-3fb1416b14f8", "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-apps-datasettypes-test.js", - "file": "/test/v2.0-apps-datasettypes-test.js", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-sites-test.js", + "file": "/test/v2.0-data-sites-test.js", "beforeHooks": [], "afterHooks": [], "tests": [ { - "title": "should respond 200 for \"A table of Neotoma collection types.\"", - "fullTitle": "tests for /v2.0/apps/datasettypes tests for get should respond 200 for \"A table of Neotoma collection types.\"", + "title": "should respond 200 for \"An array of sites.\"", + "fullTitle": "tests for /v2.0/data/sites tests for get should respond 200 for \"An array of sites.\"", "timedOut": false, - "duration": 106, + "duration": 731, "state": "passed", - "speed": "fast", + "speed": "medium", "pass": true, "fail": false, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/apps/datasettypes', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/sites', { \n 'qs': {\"sitename\":\"dolor adipisicing pariatur\",\"database\":\"Japanese Pollen Database\",\"datasettype\":\"cladocera\",\"altmin\": 10,\"altmax\":3463,\"loc\":\"{\\\"type\\\":\\\"Polygon\\\",\\\"crs\\\":{\\\"type\\\":\\\"name\\\",\\\"properties\\\":{\\\"name\\\":\\\"EPSG:4326\\\"}},\\\"coordinates\\\":[[[13.4,55.92],[13.5,55.92],[13.5,55.95],[13.4,55.95],[13.4,55.92]]]}\",\"siteid\":16865,\"datasetid\":55195853,\"doi\":\"10w999224/2QO\",\"gpid\":5392,\"keyword\":\"beyond radiocarbon\",\"contactid\":6980,\"taxa\":\"aute\",\"ageyoung\":8654962,\"ageold\":22331618,\"ageof\":7914886,\"limit\":5940,\"offset\":71247476},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", "err": {}, - "uuid": "9e344e6a-f4a9-42a6-8877-3904c5bcc7df", - "parentUUID": "c73f2d2c-68ce-42c8-84d7-cbd762080567", + "uuid": "e079c1af-ec07-444a-a043-72c9beef339f", + "parentUUID": "ccbe9bc8-4bf1-4ae4-8612-3fb1416b14f8", "isHook": false, "skipped": false } ], "suites": [], "passes": [ - "9e344e6a-f4a9-42a6-8877-3904c5bcc7df" + "e079c1af-ec07-444a-a043-72c9beef339f" ], "failures": [], "pending": [], "skipped": [], - "duration": 106, + "duration": 731, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 } ], "passes": [], @@ -4631,55 +4170,55 @@ "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 }, { - "uuid": "6304dbe7-4f83-48b9-8262-85a82b58b620", - "title": "tests for /v2.0/data/datasets_elc", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-datasets_elc-test.js", - "file": "/test/v2.0-data-datasets_elc-test.js", + "uuid": "90682610-ba59-4de2-8454-f464e334761f", + "title": "tests for /v2.0/data/occurrences/{occurrenceid}", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-occurrences-{occurrenceid}-test.js", + "file": "/test/v2.0-data-occurrences-{occurrenceid}-test.js", "beforeHooks": [], "afterHooks": [], "tests": [], "suites": [ { - "uuid": "ba126699-d46e-45c7-9cd7-b3db1a8819d3", + "uuid": "1e356e37-c63e-4ec7-b2fc-f79e6cd054d3", "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-datasets_elc-test.js", - "file": "/test/v2.0-data-datasets_elc-test.js", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-occurrences-{occurrenceid}-test.js", + "file": "/test/v2.0-data-occurrences-{occurrenceid}-test.js", "beforeHooks": [], "afterHooks": [], "tests": [ { - "title": "should respond 200 for \"A Neotoma datasets object suitable for the EarthLife Consortium API.\"", - "fullTitle": "tests for /v2.0/data/datasets_elc tests for get should respond 200 for \"A Neotoma datasets object suitable for the EarthLife Consortium API.\"", + "title": "should respond 200 for \"occurrence\"", + "fullTitle": "tests for /v2.0/data/occurrences/{occurrenceid} tests for get should respond 200 for \"occurrence\"", "timedOut": false, - "duration": 99, + "duration": 116, "state": "passed", "speed": "fast", "pass": true, "fail": false, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/datasets_elc', { \n 'qs': {\"siteid\":2501,\"contactid\":8324,\"datasettype\":\"ostracode\",\"altmin\": 10,\"altmax\": 100,\"loc\":\"{\\\"type\\\":\\\"Polygon\\\",\\\"crs\\\":{\\\"type\\\":\\\"name\\\",\\\"properties\\\":{\\\"name\\\":\\\"EPSG:4326\\\"}},\\\"coordinates\\\":[[[13.4,55.92],[13.5,55.92],[13.5,55.95],[13.4,55.95],[13.4,55.92]]]}\",\"ageyoung\": 1000,\"ageold\": 10000,\"ageof\":22149359},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/occurrences/5083105', { \n 'qs': {\"limit\":7347,\"offset\":43286578},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", "err": {}, - "uuid": "a01ef758-6671-4a97-bcce-63d7309589f8", - "parentUUID": "ba126699-d46e-45c7-9cd7-b3db1a8819d3", + "uuid": "2d5dfbd8-ced8-48d4-ad55-1b4422476a79", + "parentUUID": "1e356e37-c63e-4ec7-b2fc-f79e6cd054d3", "isHook": false, "skipped": false } ], "suites": [], "passes": [ - "a01ef758-6671-4a97-bcce-63d7309589f8" + "2d5dfbd8-ced8-48d4-ad55-1b4422476a79" ], "failures": [], "pending": [], "skipped": [], - "duration": 99, + "duration": 116, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 } ], "passes": [], @@ -4689,55 +4228,55 @@ "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 }, { - "uuid": "78fd5283-b35f-4c3c-81e9-a5ae5c9ed61d", - "title": "tests for /v2.0/data/contacts/{contactid}", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-contacts-{contactid}-test.js", - "file": "/test/v2.0-data-contacts-{contactid}-test.js", + "uuid": "0bd140e3-6976-468a-ae32-ef4e4cdce728", + "title": "tests for /v2.0/data/chronologies/{chronid}", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-chronologies-{chronid}-test.js", + "file": "/test/v2.0-data-chronologies-{chronid}-test.js", "beforeHooks": [], "afterHooks": [], "tests": [], "suites": [ { - "uuid": "a5553805-9423-4398-b501-87767827199f", + "uuid": "6523623e-be58-464f-abb7-287840d20928", "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-contacts-{contactid}-test.js", - "file": "/test/v2.0-data-contacts-{contactid}-test.js", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-chronologies-{chronid}-test.js", + "file": "/test/v2.0-data-chronologies-{chronid}-test.js", "beforeHooks": [], "afterHooks": [], "tests": [ { - "title": "should respond 200 for \"A Neotoma contacts object.\"", - "fullTitle": "tests for /v2.0/data/contacts/{contactid} tests for get should respond 200 for \"A Neotoma contacts object.\"", + "title": "should respond 200 for \"A Neotoma chronology object.\"", + "fullTitle": "tests for /v2.0/data/chronologies/{chronid} tests for get should respond 200 for \"A Neotoma chronology object.\"", "timedOut": false, - "duration": 83, + "duration": 104, "state": "passed", "speed": "fast", "pass": true, "fail": false, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/contacts/500', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/chronologies/10567', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", "err": {}, - "uuid": "5e3f84a8-7800-4be1-a2e8-c4b5009987a7", - "parentUUID": "a5553805-9423-4398-b501-87767827199f", + "uuid": "24687d7e-2426-42e9-b2e1-fe7a2833eb67", + "parentUUID": "6523623e-be58-464f-abb7-287840d20928", "isHook": false, "skipped": false } ], "suites": [], "passes": [ - "5e3f84a8-7800-4be1-a2e8-c4b5009987a7" + "24687d7e-2426-42e9-b2e1-fe7a2833eb67" ], "failures": [], "pending": [], "skipped": [], - "duration": 83, + "duration": 104, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 } ], "passes": [], @@ -4747,55 +4286,151 @@ "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 }, { - "uuid": "55c8dd39-8e4f-4156-9f23-ee9dd7462c8b", - "title": "tests for /v2.0/data/frozen/{datasetid}", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-frozen-{datasetid}-test.js", - "file": "/test/v2.0-data-frozen-{datasetid}-test.js", + "uuid": "a9c186da-179a-4186-b246-c82ae3a6b047", + "title": "Get geopolitical data:", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/geopolitical.js", + "file": "/test/geopolitical.js", + "beforeHooks": [], + "afterHooks": [], + "tests": [ + { + "title": "An empty query returns a valid response.", + "fullTitle": "Get geopolitical data: An empty query returns a valid response.", + "timedOut": false, + "duration": 76, + "state": "passed", + "speed": "fast", + "pass": true, + "fail": false, + "pending": false, + "context": null, + "code": "api.get('v2.0/data/geopoliticalunits/')\n .set('Accept', 'application/json')\n .expect(200, done);", + "err": {}, + "uuid": "d3029b2c-0dc7-42c0-9e3b-a7bdb37589e6", + "parentUUID": "a9c186da-179a-4186-b246-c82ae3a6b047", + "isHook": false, + "skipped": false + }, + { + "title": "The default limit of 25 should be reached for country level data:", + "fullTitle": "Get geopolitical data: The default limit of 25 should be reached for country level data:", + "timedOut": false, + "duration": 70, + "state": "passed", + "speed": "fast", + "pass": true, + "fail": false, + "pending": false, + "context": null, + "code": "api.get('v2.0/data/geopoliticalunits/?rank=1')\n .set('Accept', 'application/json')\n .end(function(err, res) {\n assert.equal(res.body.data.length, 25);\n done();\n });", + "err": {}, + "uuid": "7d0c2dbc-ade4-47d5-8607-18fe58ccaad2", + "parentUUID": "a9c186da-179a-4186-b246-c82ae3a6b047", + "isHook": false, + "skipped": false + }, + { + "title": "Changing the limit should change the number of countries retrieved:", + "fullTitle": "Get geopolitical data: Changing the limit should change the number of countries retrieved:", + "timedOut": false, + "duration": 68, + "state": "passed", + "speed": "fast", + "pass": true, + "fail": false, + "pending": false, + "context": null, + "code": "api.get('v2.0/data/geopoliticalunits/?rank=1&limit=30')\n .set('Accept', 'application/json')\n .end(function(err, res) {\n assert.equal(res.body.data.length, 30);\n done();\n });", + "err": {}, + "uuid": "df7045b4-6740-4540-84e8-3029e1399efb", + "parentUUID": "a9c186da-179a-4186-b246-c82ae3a6b047", + "isHook": false, + "skipped": false + }, + { + "title": "A single geopolitical unit (12) should be returned.", + "fullTitle": "Get geopolitical data: A single geopolitical unit (12) should be returned.", + "timedOut": false, + "duration": 69, + "state": "passed", + "speed": "fast", + "pass": true, + "fail": false, + "pending": false, + "context": null, + "code": "api.get('v2.0/data/geopoliticalunits/12')\n .set('Accept', 'application/json')\n .end(function(err, res) {\n assert.equal(res.body.data[0]['geopoliticalid'], 12);\n done();\n });", + "err": {}, + "uuid": "b1a6706c-1e67-4670-8285-1942c412cc1e", + "parentUUID": "a9c186da-179a-4186-b246-c82ae3a6b047", + "isHook": false, + "skipped": false + } + ], + "suites": [], + "passes": [ + "d3029b2c-0dc7-42c0-9e3b-a7bdb37589e6", + "7d0c2dbc-ade4-47d5-8607-18fe58ccaad2", + "df7045b4-6740-4540-84e8-3029e1399efb", + "b1a6706c-1e67-4670-8285-1942c412cc1e" + ], + "failures": [], + "pending": [], + "skipped": [], + "duration": 283, + "root": false, + "rootEmpty": false, + "_timeout": 5000 + }, + { + "uuid": "5ac4ed0d-c64e-4393-96b3-892ca5cbef2f", + "title": "tests for /v2.0/apps/constdb/datasetuploads", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-apps-constdb-datasetuploads-test.js", + "file": "/test/v2.0-apps-constdb-datasetuploads-test.js", "beforeHooks": [], "afterHooks": [], "tests": [], "suites": [ { - "uuid": "305795ab-ad91-4122-8c10-c4f8217ae037", + "uuid": "eb478fb7-7f87-4645-81cd-644611bf8286", "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-frozen-{datasetid}-test.js", - "file": "/test/v2.0-data-frozen-{datasetid}-test.js", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-apps-constdb-datasetuploads-test.js", + "file": "/test/v2.0-apps-constdb-datasetuploads-test.js", "beforeHooks": [], "afterHooks": [], "tests": [ { - "title": "should respond 200 for \"Returned download object.\"", - "fullTitle": "tests for /v2.0/data/frozen/{datasetid} tests for get should respond 200 for \"Returned download object.\"", + "title": "should respond 200 for \"Returns an ordered array (from earliest to latest) of upload counts by month (YYYY/MM/DD; all days as 01). Months with no uploads are excluded. \"", + "fullTitle": "tests for /v2.0/apps/constdb/datasetuploads tests for get should respond 200 for \"Returns an ordered array (from earliest to latest) of upload counts by month (YYYY/MM/DD; all days as 01). Months with no uploads are excluded. \"", "timedOut": false, - "duration": 162, + "duration": 72, "state": "passed", "speed": "fast", "pass": true, "fail": false, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/frozen/500', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "code": "var response = request('get', 'http://localhost:3001/v2.0/apps/constdb/datasetuploads', { \n 'qs': {\"dbid\":8},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", "err": {}, - "uuid": "6b9ee9ca-7ae6-4c0a-9778-0dffd034e5ed", - "parentUUID": "305795ab-ad91-4122-8c10-c4f8217ae037", + "uuid": "a5b83735-5954-4443-b10f-de7d63786715", + "parentUUID": "eb478fb7-7f87-4645-81cd-644611bf8286", "isHook": false, "skipped": false } ], "suites": [], "passes": [ - "6b9ee9ca-7ae6-4c0a-9778-0dffd034e5ed" + "a5b83735-5954-4443-b10f-de7d63786715" ], "failures": [], "pending": [], "skipped": [], - "duration": 162, + "duration": 72, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 } ], "passes": [], @@ -4805,283 +4440,380 @@ "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 }, { - "uuid": "6be281bc-e31f-495b-9f6d-65ba837464bc", - "title": "Tests for Explorer App Services", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/explorerCalls.js", - "file": "/test/explorerCalls.js", + "uuid": "a11a1880-23ce-49a1-805b-00fb631b1f26", + "title": "Get occurrence data any number of ways:", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/occurrence.js", + "file": "/test/occurrence.js", "beforeHooks": [], "afterHooks": [], - "tests": [], - "suites": [ + "tests": [ { - "uuid": "a9fd6282-63e4-4f57-926e-2221560f48f7", - "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/explorerCalls.js", - "file": "/test/explorerCalls.js", - "beforeHooks": [], - "afterHooks": [], - "tests": [ - { - "title": "should respond 200 for TaxaGroupTypes", - "fullTitle": "Tests for Explorer App Services tests for get should respond 200 for TaxaGroupTypes", - "timedOut": false, - "duration": 142, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, - "pending": false, - "context": null, - "code": "const response = request('get', appServicesLocation + '/TaxaGroupTypes', {\n time: true,\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", - "err": {}, - "uuid": "fca1cc1f-d376-4911-b838-ba9927c855f2", - "parentUUID": "a9fd6282-63e4-4f57-926e-2221560f48f7", - "isHook": false, - "skipped": false - }, - { - "title": "should respond 200 for TaphonomyTypes", - "fullTitle": "Tests for Explorer App Services tests for get should respond 200 for TaphonomyTypes", - "timedOut": false, - "duration": 4, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, - "pending": false, - "context": null, - "code": "const response = request('get', appServicesLocation + '/TaphonomyTypes', {\n qs: {\n taphonomicSystemId: 1,\n },\n time: true,\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", - "err": {}, - "uuid": "e2a22c0b-cbc9-4e9e-8c20-5a0fe163cc47", - "parentUUID": "a9fd6282-63e4-4f57-926e-2221560f48f7", - "isHook": false, - "skipped": false - }, - { - "title": "should respond 200 for TaphonomySystems", - "fullTitle": "Tests for Explorer App Services tests for get should respond 200 for TaphonomySystems", - "timedOut": false, - "duration": 82, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, - "pending": false, - "context": null, - "code": "const response = request('get', appServicesLocation + '/TaphonomySystems', {\n qs: {\n datasetTypeId: 1,\n },\n time: true,\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", - "err": {}, - "uuid": "115bdce3-8940-44f9-bd88-485f9869ac2a", - "parentUUID": "a9fd6282-63e4-4f57-926e-2221560f48f7", - "isHook": false, - "skipped": false - }, - { - "title": "should respond 200 for ElementTypes", - "fullTitle": "Tests for Explorer App Services tests for get should respond 200 for ElementTypes", - "timedOut": false, - "duration": 86, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, - "pending": false, - "context": null, - "code": "const response = request('get', appServicesLocation + '/ElementTypes', {\n qs: {\n taxagroupid: 1,\n },\n time: true,\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", - "err": {}, - "uuid": "cd33393b-5299-4c46-ac8a-48dd9571ac30", - "parentUUID": "a9fd6282-63e4-4f57-926e-2221560f48f7", - "isHook": false, - "skipped": false - }, - { - "title": "should respond 200 for TaxaInDatasets (a slow service)", - "fullTitle": "Tests for Explorer App Services tests for get should respond 200 for TaxaInDatasets (a slow service)", - "timedOut": false, - "duration": 1304, - "state": "passed", - "speed": "slow", - "pass": true, - "fail": false, - "pending": false, - "context": null, - "code": "const response = request('get', appServicesLocation + '/TaxaInDatasets', {\n time: true,\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", - "err": {}, - "uuid": "6aaeb21c-3725-427b-99d3-2034dea9000d", - "parentUUID": "a9fd6282-63e4-4f57-926e-2221560f48f7", - "isHook": false, - "skipped": false - }, - { - "title": "should respond 200 for collectionTypes", - "fullTitle": "Tests for Explorer App Services tests for get should respond 200 for collectionTypes", - "timedOut": false, - "duration": 80, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, - "pending": false, - "context": null, - "code": "const response = request('get', appServicesLocation + '/collectionTypes', {\n time: true,\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", - "err": {}, - "uuid": "9d184395-29ad-4e24-945d-b0a3cb7fa033", - "parentUUID": "a9fd6282-63e4-4f57-926e-2221560f48f7", - "isHook": false, - "skipped": false - }, - { - "title": "should respond 200 for keywords", - "fullTitle": "Tests for Explorer App Services tests for get should respond 200 for keywords", - "timedOut": false, - "duration": 80, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, - "pending": false, - "context": null, - "code": "const response = request('get', appServicesLocation + '/keywords', {\n time: true,\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", - "err": {}, - "uuid": "73233af4-71f7-45fc-8400-c6d0edb24161", - "parentUUID": "a9fd6282-63e4-4f57-926e-2221560f48f7", - "isHook": false, - "skipped": false - }, - { - "title": "should respond 200 for authorpis", - "fullTitle": "Tests for Explorer App Services tests for get should respond 200 for authorpis", - "timedOut": false, - "duration": 271, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, - "pending": false, - "context": null, - "code": "const response = request('get', appServicesLocation + '/authorpis', {\n time: true,\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", - "err": {}, - "uuid": "225f954c-fca1-4f40-8bb5-c05b329922cb", - "parentUUID": "a9fd6282-63e4-4f57-926e-2221560f48f7", - "isHook": false, - "skipped": false - }, - { - "title": "should respond 200 for DepositionalEnvironments", - "fullTitle": "Tests for Explorer App Services tests for get should respond 200 for DepositionalEnvironments", - "timedOut": false, - "duration": 3, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, - "pending": false, - "context": null, - "code": "const response = request('get', appServicesLocation + '/DepositionalEnvironments', {\n qs: {idProperty: 1},\n time: true,\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", - "err": {}, - "uuid": "5858ca7b-ef5a-48bf-84e7-0b4e16bee6d3", - "parentUUID": "a9fd6282-63e4-4f57-926e-2221560f48f7", - "isHook": false, - "skipped": false - }, - { - "title": "should respond 200 for Search", - "fullTitle": "Tests for Explorer App Services tests for get should respond 200 for Search", - "timedOut": false, - "duration": 1, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, - "pending": false, - "context": null, - "code": "const response = request('post', appServicesLocation + '/Search', {\n qs: {search: '{\"datasetTypeId\":21}',\n time: true},\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", - "err": {}, - "uuid": "2667c036-68a5-42c5-99e0-f245685f1ea9", - "parentUUID": "a9fd6282-63e4-4f57-926e-2221560f48f7", - "isHook": false, - "skipped": false - }, - { - "title": "should respond 200 for DatasetTypes", - "fullTitle": "Tests for Explorer App Services tests for get should respond 200 for DatasetTypes", - "timedOut": false, - "duration": 94, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, - "pending": false, - "context": null, - "code": "const response = request('get', appServicesLocation + '/DatasetTypes', {\n time: true,\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", - "err": {}, - "uuid": "681607b0-48a8-47b8-9c92-52a12e963ab8", - "parentUUID": "a9fd6282-63e4-4f57-926e-2221560f48f7", - "isHook": false, - "skipped": false - }, + "title": "Get occurrence by singular id & return same id:", + "fullTitle": "Get occurrence data any number of ways: Get occurrence by singular id & return same id:", + "timedOut": false, + "duration": 1, + "state": "passed", + "speed": "fast", + "pass": true, + "fail": false, + "pending": false, + "context": null, + "code": "api.get('v2.0/data/occurrences/12')\n .set('Accept', 'application/json')\n .expect(function(res) {\n return Object.keys(res.body['data'][0]).length > 0;\n })\n .expect(function(res) {\n return res.body['data'][0]['occurrence'] === 12;\n })\n .expect(200);\ndone();", + "err": {}, + "uuid": "f2480f8b-c7e1-464c-946c-8c23d2784f30", + "parentUUID": "a11a1880-23ce-49a1-805b-00fb631b1f26", + "isHook": false, + "skipped": false + }, + { + "title": "Get the Flyover test call:", + "fullTitle": "Get occurrence data any number of ways: Get the Flyover test call:", + "timedOut": false, + "duration": 0, + "state": "passed", + "speed": "fast", + "pass": true, + "fail": false, + "pending": false, + "context": null, + "code": "api.get('v2.0/data/occurrences?taxonname=rhinocerotidae,megacerops,moeritherium,ceratogaulus,gomphotherium,deinotherium,condylarthra,paraceratherium,mesonychia,pantodonta,hyaenodon,thylacosmilus,glyptodon,castoroides,toxodon,megatherium,arctodus,smilodon,mammuthus,mammut,coelodonta,megaloceras,gigantopithecus,phlegethontia,temnospondyli,lepospondyli,ichthyosauria,sauropterygia,mosasauroidea,pterosauromorpha,titanoboa,megalania,placodus,tanystropheidae,hyperodapedon,stagonolepis,scutosaurus,pareiasauria,archelon,stupendemys,protostega,placodermi,leedsichthys,onychodontiformes,acanthostega,ichthyostega,crassigyrinus,ornithosuchus,erpetosuchidae,protosuchus,dakosaurus,geosaurus,deinosuchus&lower=true&limit=999999&loc=POLYGON((-122.56 39.94,-115.21 41.96,-107.99 43.42,-100.51 44.41,-92.85 44.91,-83.49 44.84,-74.25 44.02,-70.19 43.38,-69.36 42.75,-69.02 41.76,-69.13 41.07,-69.5 40.47,-70.07 40.06,-70.75 39.9,-78.36 40.86,-85.79 41.33,-93.27 41.3,-100.68 40.78,-105.86 40.12,-111.42 39.12,-116.79 37.86,-122.28 36.29,-122.98 36.35,-123.61 36.67,-124.06 37.21,-124.27 37.88,-124.21 38.58,-123.89 39.2,-123.35 39.65,-122.56 39.94))')\n .set('Accept', 'application/json')\n .expect(function(res) {\n return Object.keys(res.body['data'][0]).length > 0;\n })\n .expect(200);\ndone();", + "err": {}, + "uuid": "b1efed38-166a-4396-aa8e-6bf7f5dc7da0", + "parentUUID": "a11a1880-23ce-49a1-805b-00fb631b1f26", + "isHook": false, + "skipped": false + }, + { + "title": "Failing Canis test works:", + "fullTitle": "Get occurrence data any number of ways: Failing Canis test works:", + "timedOut": false, + "duration": 0, + "state": "passed", + "speed": "fast", + "pass": true, + "fail": false, + "pending": false, + "context": null, + "code": "// This casuses timeout fails for some reason. It's frustrating.\napi.get('v2.0/data/occurrences?taxonname=Canis&lower=true&limit=999999')\n .set('Accept', 'application/json')\n .expect(function(res) {\n return Object.keys(res.body['data'][0]).length > 0;\n })\n .expect(200);\ndone();", + "err": {}, + "uuid": "230c640d-aaa4-4154-a1b0-3f9c0e9716a2", + "parentUUID": "a11a1880-23ce-49a1-805b-00fb631b1f26", + "isHook": false, + "skipped": false + }, + { + "title": "Get occurrence by taxon:", + "fullTitle": "Get occurrence data any number of ways: Get occurrence by taxon:", + "timedOut": false, + "duration": 0, + "state": "passed", + "speed": "fast", + "pass": true, + "fail": false, + "pending": false, + "context": null, + "code": "api.get('v2.0/data/taxa/12/occurrences')\n .set('Accept', 'application/json')\n .expect(function(res) {\n return Object.keys(res.body['data'][0]).length > 0;\n })\n .expect(200);\ndone();", + "err": {}, + "uuid": "c2e16189-3204-4bf1-a5c8-5b7cd38bb48f", + "parentUUID": "a11a1880-23ce-49a1-805b-00fb631b1f26", + "isHook": false, + "skipped": false + }, + { + "title": "Break occurrences by flipping altitudes:", + "fullTitle": "Get occurrence data any number of ways: Break occurrences by flipping altitudes:", + "timedOut": false, + "duration": 0, + "state": "passed", + "speed": "fast", + "pass": true, + "fail": false, + "pending": false, + "context": null, + "code": "api.get('v2.0/data/occurrences/?altmax=3000&altmin=5000')\n .set('Accept', 'application/json')\n .expect(500);\ndone();", + "err": {}, + "uuid": "4df233c8-3d40-41c5-bcfa-d1dfc71e410e", + "parentUUID": "a11a1880-23ce-49a1-805b-00fb631b1f26", + "isHook": false, + "skipped": false + }, + { + "title": "Break occurrences by flipping ages:", + "fullTitle": "Get occurrence data any number of ways: Break occurrences by flipping ages:", + "timedOut": false, + "duration": 0, + "state": "passed", + "speed": "fast", + "pass": true, + "fail": false, + "pending": false, + "context": null, + "code": "api.get('v2.0/data/occurrences/?ageyoung=5000&ageold=3000')\n .set('Accept', 'application/json')\n .expect(500);\ndone();", + "err": {}, + "uuid": "e71866d1-be34-404c-b877-28cbdc268d1d", + "parentUUID": "a11a1880-23ce-49a1-805b-00fb631b1f26", + "isHook": false, + "skipped": false + }, + { + "title": "Occurrences filter by age:", + "fullTitle": "Get occurrence data any number of ways: Occurrences filter by age:", + "timedOut": false, + "duration": 0, + "state": "passed", + "speed": "fast", + "pass": true, + "fail": false, + "pending": false, + "context": null, + "code": "api.get('v2.0/data/occurrences/?ageyoung=3000&ageold=5000')\n .set('Accept', 'application/json')\n .expect(function(res) {\n })\n .expect(200);\ndone();", + "err": {}, + "uuid": "35698b2b-efe6-4754-ad87-dbceeeaa1f6a", + "parentUUID": "a11a1880-23ce-49a1-805b-00fb631b1f26", + "isHook": false, + "skipped": false + }, + { + "title": "Get occurrences with comma separated fields:", + "fullTitle": "Get occurrence data any number of ways: Get occurrences with comma separated fields:", + "timedOut": false, + "duration": 0, + "state": "passed", + "speed": "fast", + "pass": true, + "fail": false, + "pending": false, + "context": null, + "code": "api.get('v2.0/data/occurrences/' +\n '?siteid=12,13,14,15&taxonname=Betula&limit=200')\n .set('Accept', 'application/json')\n .expect(function(res) {\n const allSite = res.body['data'];\n const siteids = [];\n for (let i = 0; i < allSite.length; i++) {\n siteids.push(allSite[i]['site']['siteid']);\n };\n const uniqueSites = Array.from(new Set(siteids)).sort(function(a, b) {\n return a - b;\n });\n return (uniqueSites.every((item) => [12, 13, 14, 15].includes(item)));\n })\n .expect(200);\ndone();", + "err": {}, + "uuid": "5edf9e82-7f2e-4221-9645-57160fc7597b", + "parentUUID": "a11a1880-23ce-49a1-805b-00fb631b1f26", + "isHook": false, + "skipped": false + }, + { + "title": "Get occurrences with comma separated taxa:", + "fullTitle": "Get occurrence data any number of ways: Get occurrences with comma separated taxa:", + "timedOut": false, + "duration": 0, + "state": "passed", + "speed": "fast", + "pass": true, + "fail": false, + "pending": false, + "context": null, + "code": "api.get('v2.0/data/occurrences/?taxonname=Picea,Abies&limit=25')\n .set('Accept', 'application/json')\n .expect(function(res) {\n return (res.body.data.length > 0);\n })\n .expect(200);\ndone();", + "err": {}, + "uuid": "5477fa9e-7f16-454a-a597-6a0d701efa44", + "parentUUID": "a11a1880-23ce-49a1-805b-00fb631b1f26", + "isHook": false, + "skipped": false + }, + { + "title": "Get hierarchical occurrences with comma separated taxa:", + "fullTitle": "Get occurrence data any number of ways: Get hierarchical occurrences with comma separated taxa:", + "timedOut": false, + "duration": 0, + "state": "passed", + "speed": "fast", + "pass": true, + "fail": false, + "pending": false, + "context": null, + "code": "api.get('v2.0/data/occurrences/?taxonname=Picea,Abies&limit=25&lower=true')\n .set('Accept', 'application/json')\n .expect(function(res) {\n return (res.body.data.length > 0);\n })\n .expect(200);\ndone();", + "err": {}, + "uuid": "fed5eeb9-b947-4c8f-86cc-b385224c0f60", + "parentUUID": "a11a1880-23ce-49a1-805b-00fb631b1f26", + "isHook": false, + "skipped": false + }, + { + "title": "Get occurrences returns lower taxa:", + "fullTitle": "Get occurrence data any number of ways: Get occurrences returns lower taxa:", + "timedOut": false, + "duration": 0, + "state": "passed", + "speed": "fast", + "pass": true, + "fail": false, + "pending": false, + "context": null, + "code": "api.get('v2.0/data/occurrences/?taxonname=Myrica&lower=true&limit=200')\n .set('Accept', 'application/json')\n .expect(function(res) {\n const allTaxa = res.body['data'];\n const taxaids = [];\n for (let i = 0; i < allTaxa.length; i++) {\n taxaids.push(allTaxa[i]['sample']['taxonname']);\n };\n const uniqueTaxa = Array.from(new Set(taxaids)).sort();\n return uniqueTaxa.length > 1;\n })\n .expect(200);\ndone();", + "err": {}, + "uuid": "82f45421-cb17-4986-b23b-3f51ea1fbd97", + "parentUUID": "a11a1880-23ce-49a1-805b-00fb631b1f26", + "isHook": false, + "skipped": false + }, + { + "title": "Get occurrences with mammals and lower taxa works:", + "fullTitle": "Get occurrence data any number of ways: Get occurrences with mammals and lower taxa works:", + "timedOut": false, + "duration": 0, + "state": "passed", + "speed": "fast", + "pass": true, + "fail": false, + "pending": false, + "context": null, + "code": "api.get('v2.0/data/occurrences/?taxonname=Homo&lower=true&limit=25')\n .set('Accept', 'application/json')\n .expect(function(res) {\n const allTaxa = res.body['data'];\n const taxaids = [];\n for (let i = 0; i < allTaxa.length; i++) {\n taxaids.push(allTaxa[i]['sample']['taxonname']);\n };\n const uniqueTaxa = Array.from(new Set(taxaids)).sort();\n return uniqueTaxa.length > 1 & allTaxa.length > 0;\n })\n .expect(200);\ndone();", + "err": {}, + "uuid": "78c338fd-080f-49c6-8596-2872f9bbfff9", + "parentUUID": "a11a1880-23ce-49a1-805b-00fb631b1f26", + "isHook": false, + "skipped": false + }, + { + "title": "Get occurrences using taxon and age bounds:", + "fullTitle": "Get occurrence data any number of ways: Get occurrences using taxon and age bounds:", + "timedOut": false, + "duration": 0, + "state": "passed", + "speed": "fast", + "pass": true, + "fail": false, + "pending": false, + "context": null, + "code": "api.get('v2.0/data/occurrences/?ageyoung=2000&ageold=3000&taxonname=Pinus')\n .set('Accept', 'application/json')\n .expect(function(res) {\n return Object.keys(res.body['data'][0]).length > 0;\n })\n .expect(200);\ndone();", + "err": {}, + "uuid": "77944c35-e347-465e-ad88-aa85d2098f7f", + "parentUUID": "a11a1880-23ce-49a1-805b-00fb631b1f26", + "isHook": false, + "skipped": false + } + ], + "suites": [], + "passes": [ + "f2480f8b-c7e1-464c-946c-8c23d2784f30", + "b1efed38-166a-4396-aa8e-6bf7f5dc7da0", + "230c640d-aaa4-4154-a1b0-3f9c0e9716a2", + "c2e16189-3204-4bf1-a5c8-5b7cd38bb48f", + "4df233c8-3d40-41c5-bcfa-d1dfc71e410e", + "e71866d1-be34-404c-b877-28cbdc268d1d", + "35698b2b-efe6-4754-ad87-dbceeeaa1f6a", + "5edf9e82-7f2e-4221-9645-57160fc7597b", + "5477fa9e-7f16-454a-a597-6a0d701efa44", + "fed5eeb9-b947-4c8f-86cc-b385224c0f60", + "82f45421-cb17-4986-b23b-3f51ea1fbd97", + "78c338fd-080f-49c6-8596-2872f9bbfff9", + "77944c35-e347-465e-ad88-aa85d2098f7f" + ], + "failures": [], + "pending": [], + "skipped": [], + "duration": 1, + "root": false, + "rootEmpty": false, + "_timeout": 30000 + }, + { + "uuid": "5d0f34c6-6bf8-4f53-a7d8-31fec51e020a", + "title": "tests for /v2.0/data/datasets/{datasetid}/taxa", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-datasets-{datasetid}-taxa-test.js", + "file": "/test/v2.0-data-datasets-{datasetid}-taxa-test.js", + "beforeHooks": [], + "afterHooks": [], + "tests": [], + "suites": [ + { + "uuid": "d5b678a1-14ba-4659-9fda-1db826ec0e13", + "title": "tests for get", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-datasets-{datasetid}-taxa-test.js", + "file": "/test/v2.0-data-datasets-{datasetid}-taxa-test.js", + "beforeHooks": [], + "afterHooks": [], + "tests": [ { - "title": "should respond 200 for RelativeAges", - "fullTitle": "Tests for Explorer App Services tests for get should respond 200 for RelativeAges", + "title": "should respond 200 for \"Taxa\"", + "fullTitle": "tests for /v2.0/data/datasets/{datasetid}/taxa tests for get should respond 200 for \"Taxa\"", "timedOut": false, - "duration": 160, + "duration": 74, "state": "passed", "speed": "fast", "pass": true, "fail": false, "pending": false, "context": null, - "code": "const response = request('get', appServicesLocation + '/RelativeAges', {\n qs: {agescaleid: 1},\n time: true,\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/datasets/95602233/taxa', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", "err": {}, - "uuid": "98f6d834-0736-4ce9-9c02-618b277a5127", - "parentUUID": "a9fd6282-63e4-4f57-926e-2221560f48f7", + "uuid": "b61ad6fc-e26f-4183-9bac-96627746dd97", + "parentUUID": "d5b678a1-14ba-4659-9fda-1db826ec0e13", "isHook": false, "skipped": false - }, + } + ], + "suites": [], + "passes": [ + "b61ad6fc-e26f-4183-9bac-96627746dd97" + ], + "failures": [], + "pending": [], + "skipped": [], + "duration": 74, + "root": false, + "rootEmpty": false, + "_timeout": 900000 + } + ], + "passes": [], + "failures": [], + "pending": [], + "skipped": [], + "duration": 0, + "root": false, + "rootEmpty": false, + "_timeout": 900000 + }, + { + "uuid": "27b7c600-fb43-445f-9ce9-0ba4e594c934", + "title": "tests for /v1.5/data/occurrence/{occurrenceid}", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v1.5-data-occurrence-{occurrenceid}-test.js", + "file": "/test/v1.5-data-occurrence-{occurrenceid}-test.js", + "beforeHooks": [], + "afterHooks": [], + "tests": [], + "suites": [ + { + "uuid": "2016697a-8133-4737-af6c-76ddea40419b", + "title": "tests for get", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v1.5-data-occurrence-{occurrenceid}-test.js", + "file": "/test/v1.5-data-occurrence-{occurrenceid}-test.js", + "beforeHooks": [], + "afterHooks": [], + "tests": [ { - "title": "should respond 200 for Geochronologies", - "fullTitle": "Tests for Explorer App Services tests for get should respond 200 for Geochronologies", + "title": "should respond 200 for \"A single occurrence object.\"", + "fullTitle": "tests for /v1.5/data/occurrence/{occurrenceid} tests for get should respond 200 for \"A single occurrence object.\"", "timedOut": false, - "duration": 2, + "duration": 79, "state": "passed", "speed": "fast", "pass": true, "fail": false, "pending": false, "context": null, - "code": "const response = request('get', appServicesLocation + '/Geochronologies', {\n qs: {datasetId: 1001},\n time: true,\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "code": "var response = request('get', 'http://localhost:3001/v1.5/data/occurrence/500', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", "err": {}, - "uuid": "f6f4327c-4e6e-4422-bb4a-9613e8a23244", - "parentUUID": "a9fd6282-63e4-4f57-926e-2221560f48f7", + "uuid": "be6cb2b1-c07a-4ab9-befa-782789c40d20", + "parentUUID": "2016697a-8133-4737-af6c-76ddea40419b", "isHook": false, "skipped": false } ], "suites": [], "passes": [ - "fca1cc1f-d376-4911-b838-ba9927c855f2", - "e2a22c0b-cbc9-4e9e-8c20-5a0fe163cc47", - "115bdce3-8940-44f9-bd88-485f9869ac2a", - "cd33393b-5299-4c46-ac8a-48dd9571ac30", - "6aaeb21c-3725-427b-99d3-2034dea9000d", - "9d184395-29ad-4e24-945d-b0a3cb7fa033", - "73233af4-71f7-45fc-8400-c6d0edb24161", - "225f954c-fca1-4f40-8bb5-c05b329922cb", - "5858ca7b-ef5a-48bf-84e7-0b4e16bee6d3", - "2667c036-68a5-42c5-99e0-f245685f1ea9", - "681607b0-48a8-47b8-9c92-52a12e963ab8", - "98f6d834-0736-4ce9-9c02-618b277a5127", - "f6f4327c-4e6e-4422-bb4a-9613e8a23244" + "be6cb2b1-c07a-4ab9-befa-782789c40d20" ], "failures": [], "pending": [], "skipped": [], - "duration": 2309, + "duration": 79, "root": false, "rootEmpty": false, - "_timeout": 12000 + "_timeout": 900000 } ], "passes": [], @@ -5091,152 +4823,228 @@ "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 12000 + "_timeout": 900000 }, { - "uuid": "f123021b-4887-4bdf-8d37-2fa78e39d022", - "title": "Get chronology data by datasetid:", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/chronologies.js", - "file": "/test/chronologies.js", + "uuid": "61fbe6bb-e0df-40f2-98a8-1ba6498b0c49", + "title": "Get Neotoma data with geoJSON extents:", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/spatial.js", + "file": "/test/spatial.js", "beforeHooks": [], "afterHooks": [], "tests": [ { - "title": "A call to two datasets returns two datasets of data:", - "fullTitle": "Get chronology data by datasetid: A call to two datasets returns two datasets of data:", + "title": "Get occurrence data using a simple geoJSON:", + "fullTitle": "Get Neotoma data with geoJSON extents: Get occurrence data using a simple geoJSON:", "timedOut": false, - "duration": 1, + "duration": 429, "state": "passed", "speed": "fast", "pass": true, "fail": false, "pending": false, "context": null, - "code": "api.get('v2.0/data/datasets/684,1001/chronologies')\n .set('Accept', 'application/json')\n .expect(function(res) {\n return res.body['data'].length === 4;\n })\n .expect(200, done());", + "code": "api.get('v2.0/data/occurrences?loc={\"type\":\"Polygon\",\"coordinates\":[[[-104.053249,41.001406],[-103.497447,41.001635],[-102.865784,41.001988],[-102.556789,41.002219],[-102.051614,41.002377],[-102.051725,40.537839],[-102.051744,40.003078],[-102.050422,39.646048],[-102.048449,39.303138],[-102.045388,38.813392],[-102.045324,38.453647],[-102.044644,38.045532],[-102.041574,37.680436],[-102.041974,37.352613],[-102.04224,36.993083],[-102.698142,36.995149],[-102.814616,37.000783],[-103.002199,37.000104],[-103.733247,36.998016],[-104.338833,36.993535],[-105.000554,36.993264],[-105.1208,36.995428],[-105.62747,36.995679],[-106.201469,36.994122],[-106.869796,36.992426],[-106.877292,37.000139],[-107.420913,37.000005],[-108.000623,37.000001],[-108.249358,36.999015],[-108.620309,36.999287],[-109.045223,36.999084],[-109.04581,37.374993],[-109.041865,37.530726],[-109.041058,37.907236],[-109.041762,38.16469],[-109.060062,38.275489],[-109.059541,38.719888],[-109.054189,38.874984],[-109.051512,39.126095],[-109.051363,39.497674],[-109.050615,39.87497],[-109.050946,40.444368],[-109.048044,40.619231],[-109.050076,41.000659],[-108.884138,41.000094],[-108.250649,41.000114],[-107.625624,41.002124],[-106.857773,41.002663],[-106.453859,41.002057],[-106.217573,40.997734],[-105.730421,40.996886],[-105.277138,40.998173],[-104.855273,40.998048],[-104.675999,41.000957],[-104.053249,41.001406]]]}')\n .set('Accept', 'application/json')\n .expect(function(res) {\n return Object.keys(res.body['data'][0]).length > 0;\n })\n .expect(function(res) {\n return res.body['data'][0]['occurrence'] === 12;\n })\n .expect(200, done);", + "err": {}, + "uuid": "62b72f5a-d30a-45f8-ac88-35361a6e1f5e", + "parentUUID": "61fbe6bb-e0df-40f2-98a8-1ba6498b0c49", + "isHook": false, + "skipped": false + }, + { + "title": "Get site data using a simple geoJSON:", + "fullTitle": "Get Neotoma data with geoJSON extents: Get site data using a simple geoJSON:", + "timedOut": false, + "duration": 10471, + "state": "passed", + "speed": "slow", + "pass": true, + "fail": false, + "pending": false, + "context": null, + "code": "api.get('v2.0/data/sites?loc={\"type\":\"Polygon\",\"coordinates\":[[[-104.053249,41.001406],[-103.497447,41.001635],[-102.865784,41.001988],[-102.556789,41.002219],[-102.051614,41.002377],[-102.051725,40.537839],[-102.051744,40.003078],[-102.050422,39.646048],[-102.048449,39.303138],[-102.045388,38.813392],[-102.045324,38.453647],[-102.044644,38.045532],[-102.041574,37.680436],[-102.041974,37.352613],[-102.04224,36.993083],[-102.698142,36.995149],[-102.814616,37.000783],[-103.002199,37.000104],[-103.733247,36.998016],[-104.338833,36.993535],[-105.000554,36.993264],[-105.1208,36.995428],[-105.62747,36.995679],[-106.201469,36.994122],[-106.869796,36.992426],[-106.877292,37.000139],[-107.420913,37.000005],[-108.000623,37.000001],[-108.249358,36.999015],[-108.620309,36.999287],[-109.045223,36.999084],[-109.04581,37.374993],[-109.041865,37.530726],[-109.041058,37.907236],[-109.041762,38.16469],[-109.060062,38.275489],[-109.059541,38.719888],[-109.054189,38.874984],[-109.051512,39.126095],[-109.051363,39.497674],[-109.050615,39.87497],[-109.050946,40.444368],[-109.048044,40.619231],[-109.050076,41.000659],[-108.884138,41.000094],[-108.250649,41.000114],[-107.625624,41.002124],[-106.857773,41.002663],[-106.453859,41.002057],[-106.217573,40.997734],[-105.730421,40.996886],[-105.277138,40.998173],[-104.855273,40.998048],[-104.675999,41.000957],[-104.053249,41.001406]]]}')\n .set('Accept', 'application/json')\n .expect(function(res) {\n return Object.keys(res.body['data'][0]).length > 0;\n })\n .expect(function(res) {\n return res.body['data'][0]['occurrence'] === 12;\n })\n .expect(200, done);", + "err": {}, + "uuid": "d01f9b4d-1a17-4e7e-826a-1bfe34141195", + "parentUUID": "61fbe6bb-e0df-40f2-98a8-1ba6498b0c49", + "isHook": false, + "skipped": false + }, + { + "title": "Get dataset data using a simple geoJSON:", + "fullTitle": "Get Neotoma data with geoJSON extents: Get dataset data using a simple geoJSON:", + "timedOut": false, + "duration": 5300, + "state": "passed", + "speed": "slow", + "pass": true, + "fail": false, + "pending": false, + "context": null, + "code": "api.get('v2.0/data/datasets?loc={\"type\":\"Polygon\",\"coordinates\":[[[-104.053249,41.001406],[-103.497447,41.001635],[-102.865784,41.001988],[-102.556789,41.002219],[-102.051614,41.002377],[-102.051725,40.537839],[-102.051744,40.003078],[-102.050422,39.646048],[-102.048449,39.303138],[-102.045388,38.813392],[-102.045324,38.453647],[-102.044644,38.045532],[-102.041574,37.680436],[-102.041974,37.352613],[-102.04224,36.993083],[-102.698142,36.995149],[-102.814616,37.000783],[-103.002199,37.000104],[-103.733247,36.998016],[-104.338833,36.993535],[-105.000554,36.993264],[-105.1208,36.995428],[-105.62747,36.995679],[-106.201469,36.994122],[-106.869796,36.992426],[-106.877292,37.000139],[-107.420913,37.000005],[-108.000623,37.000001],[-108.249358,36.999015],[-108.620309,36.999287],[-109.045223,36.999084],[-109.04581,37.374993],[-109.041865,37.530726],[-109.041058,37.907236],[-109.041762,38.16469],[-109.060062,38.275489],[-109.059541,38.719888],[-109.054189,38.874984],[-109.051512,39.126095],[-109.051363,39.497674],[-109.050615,39.87497],[-109.050946,40.444368],[-109.048044,40.619231],[-109.050076,41.000659],[-108.884138,41.000094],[-108.250649,41.000114],[-107.625624,41.002124],[-106.857773,41.002663],[-106.453859,41.002057],[-106.217573,40.997734],[-105.730421,40.996886],[-105.277138,40.998173],[-104.855273,40.998048],[-104.675999,41.000957],[-104.053249,41.001406]]]}')\n .set('Accept', 'application/json')\n .expect(function(res) {\n return Object.keys(res.body['data'][0]).length > 0;\n })\n .expect(function(res) {\n return res.body['data'][0]['occurrence'] === 12;\n })\n .expect(200, done);", "err": {}, - "uuid": "a7cc83b9-d9d2-4bae-83ee-0aaf67daeca8", - "parentUUID": "f123021b-4887-4bdf-8d37-2fa78e39d022", + "uuid": "588d607d-bff8-4496-a95a-5968c2bdfd2b", + "parentUUID": "61fbe6bb-e0df-40f2-98a8-1ba6498b0c49", "isHook": false, "skipped": false } ], "suites": [], "passes": [ - "a7cc83b9-d9d2-4bae-83ee-0aaf67daeca8" + "62b72f5a-d30a-45f8-ac88-35361a6e1f5e", + "d01f9b4d-1a17-4e7e-826a-1bfe34141195", + "588d607d-bff8-4496-a95a-5968c2bdfd2b" ], "failures": [], "pending": [], "skipped": [], - "duration": 1, + "duration": 16200, "root": false, "rootEmpty": false, - "_timeout": 5000 + "_timeout": 15000 }, { - "uuid": "ce6abc2b-f982-4e27-8a9c-05a4dbd13b86", - "title": "tests for /v2.0/data/pollen", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-pollen-test.js", - "file": "/test/v2.0-data-pollen-test.js", + "uuid": "8a57c85b-1bbb-4a8a-80ec-38d5cafe425e", + "title": "Get Neotoma data with WKT extents:", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/spatial.js", + "file": "/test/spatial.js", "beforeHooks": [], "afterHooks": [], - "tests": [], - "suites": [ + "tests": [ { - "uuid": "c46fbcb5-02cd-454b-9b4f-12e124d05163", - "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-pollen-test.js", - "file": "/test/v2.0-data-pollen-test.js", - "beforeHooks": [], - "afterHooks": [], - "tests": [ - { - "title": "should respond 200 for \"A record of all pollen samples in time/space for a particular taxon.\"", - "fullTitle": "tests for /v2.0/data/pollen tests for get should respond 200 for \"A record of all pollen samples in time/space for a particular taxon.\"", - "timedOut": false, - "duration": 1, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, - "pending": false, - "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/pollen', { \n 'qs': {\"taxonname\":\"cupidatat ullamco Lorem nisi aliquip\",\"taxonid\":20895,\"siteid\":22291,\"sitename\":\"et\",\"datasettype\":\"biomarker\",\"altmin\": 10,\"altmax\": 100,\"loc\":\"{\\\"type\\\":\\\"Polygon\\\",\\\"crs\\\":{\\\"type\\\":\\\"name\\\",\\\"properties\\\":{\\\"name\\\":\\\"EPSG:4326\\\"}},\\\"coordinates\\\":[[[13.4,55.92],[13.5,55.92],[13.5,55.95],[13.4,55.95],[13.4,55.92]]]}\",\"ageof\":16889037,\"ageyoung\": 1000,\"ageold\": 10000,\"limit\": 10,\"offset\": 0},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", - "err": {}, - "uuid": "1082d29c-5c00-43c5-b8f3-7a9cefcfec94", - "parentUUID": "c46fbcb5-02cd-454b-9b4f-12e124d05163", - "isHook": false, - "skipped": false - } - ], - "suites": [], - "passes": [ - "1082d29c-5c00-43c5-b8f3-7a9cefcfec94" - ], - "failures": [], - "pending": [], - "skipped": [], - "duration": 1, - "root": false, - "rootEmpty": false, - "_timeout": 300000 + "title": "Get occurrence data using a simple WKT:", + "fullTitle": "Get Neotoma data with WKT extents: Get occurrence data using a simple WKT:", + "timedOut": false, + "duration": 248, + "state": "passed", + "speed": "fast", + "pass": true, + "fail": false, + "pending": false, + "context": null, + "code": "api.get('v2.0/data/occurrences?loc=POLYGON((-104.053249 41.001406,-103.497447 41.001635,-102.865784 41.001988,-102.556789 41.002219,-102.051614 41.002377,-102.051725 40.537839,-102.051744 40.003078,-102.050422 39.646048,-102.048449 39.303138,-102.045388 38.813392,-102.045324 38.453647,-102.044644 38.045532,-102.041574 37.680436,-102.041974 37.352613,-102.04224 36.993083,-102.698142 36.995149,-102.814616 37.000783,-103.002199 37.000104,-103.733247 36.998016,-104.338833 36.993535,-105.000554 36.993264,-105.1208 36.995428,-105.62747 36.995679,-106.201469 36.994122,-106.869796 36.992426,-106.877292 37.000139,-107.420913 37.000005,-108.000623 37.000001,-108.249358 36.999015,-108.620309 36.999287,-109.045223 36.999084,-109.04581 37.374993,-109.041865 37.530726,-109.041058 37.907236,-109.041762 38.16469,-109.060062 38.275489,-109.059541 38.719888,-109.054189 38.874984,-109.051512 39.126095,-109.051363 39.497674,-109.050615 39.87497,-109.050946 40.444368,-109.048044 40.619231,-109.050076 41.000659,-108.884138 41.000094,-108.250649 41.000114,-107.625624 41.002124,-106.857773 41.002663,-106.453859 41.002057,-106.217573 40.997734,-105.730421 40.996886,-105.277138 40.998173,-104.855273 40.998048,-104.675999 41.000957,-104.053249 41.001406))')\n .set('Accept', 'application/json')\n .expect(function(res) {\n return Object.keys(res.body['data'][0]).length > 0;\n })\n .expect(function(res) {\n return res.body['data'][0]['occurrence'] === 12;\n })\n .expect(200, done);", + "err": {}, + "uuid": "22de43f1-da0c-4eaf-904c-877a1800cb58", + "parentUUID": "8a57c85b-1bbb-4a8a-80ec-38d5cafe425e", + "isHook": false, + "skipped": false + }, + { + "title": "Get site data using a simple WKT:", + "fullTitle": "Get Neotoma data with WKT extents: Get site data using a simple WKT:", + "timedOut": false, + "duration": 232, + "state": "passed", + "speed": "fast", + "pass": true, + "fail": false, + "pending": false, + "context": null, + "code": "api.get('v2.0/data/sites?loc=POLYGON((-104.053249 41.001406,-103.497447 41.001635,-102.865784 41.001988,-102.556789 41.002219,-102.051614 41.002377,-102.051725 40.537839,-102.051744 40.003078,-102.050422 39.646048,-102.048449 39.303138,-102.045388 38.813392,-102.045324 38.453647,-102.044644 38.045532,-102.041574 37.680436,-102.041974 37.352613,-102.04224 36.993083,-102.698142 36.995149,-102.814616 37.000783,-103.002199 37.000104,-103.733247 36.998016,-104.338833 36.993535,-105.000554 36.993264,-105.1208 36.995428,-105.62747 36.995679,-106.201469 36.994122,-106.869796 36.992426,-106.877292 37.000139,-107.420913 37.000005,-108.000623 37.000001,-108.249358 36.999015,-108.620309 36.999287,-109.045223 36.999084,-109.04581 37.374993,-109.041865 37.530726,-109.041058 37.907236,-109.041762 38.16469,-109.060062 38.275489,-109.059541 38.719888,-109.054189 38.874984,-109.051512 39.126095,-109.051363 39.497674,-109.050615 39.87497,-109.050946 40.444368,-109.048044 40.619231,-109.050076 41.000659,-108.884138 41.000094,-108.250649 41.000114,-107.625624 41.002124,-106.857773 41.002663,-106.453859 41.002057,-106.217573 40.997734,-105.730421 40.996886,-105.277138 40.998173,-104.855273 40.998048,-104.675999 41.000957,-104.053249 41.001406))')\n .set('Accept', 'application/json')\n .expect(function(res) {\n return Object.keys(res.body['data'][0]).length > 0;\n })\n .expect(function(res) {\n return res.body['data'][0]['occurrence'] === 12;\n })\n .expect(200, done);", + "err": {}, + "uuid": "5e1d6bbd-31e2-4e24-941c-32a406181834", + "parentUUID": "8a57c85b-1bbb-4a8a-80ec-38d5cafe425e", + "isHook": false, + "skipped": false + }, + { + "title": "Get dataset data using a simple WKT:", + "fullTitle": "Get Neotoma data with WKT extents: Get dataset data using a simple WKT:", + "timedOut": false, + "duration": 203, + "state": "passed", + "speed": "fast", + "pass": true, + "fail": false, + "pending": false, + "context": null, + "code": "api.get('v2.0/data/datasets?loc=POLYGON((-104.053249 41.001406,-103.497447 41.001635,-102.865784 41.001988,-102.556789 41.002219,-102.051614 41.002377,-102.051725 40.537839,-102.051744 40.003078,-102.050422 39.646048,-102.048449 39.303138,-102.045388 38.813392,-102.045324 38.453647,-102.044644 38.045532,-102.041574 37.680436,-102.041974 37.352613,-102.04224 36.993083,-102.698142 36.995149,-102.814616 37.000783,-103.002199 37.000104,-103.733247 36.998016,-104.338833 36.993535,-105.000554 36.993264,-105.1208 36.995428,-105.62747 36.995679,-106.201469 36.994122,-106.869796 36.992426,-106.877292 37.000139,-107.420913 37.000005,-108.000623 37.000001,-108.249358 36.999015,-108.620309 36.999287,-109.045223 36.999084,-109.04581 37.374993,-109.041865 37.530726,-109.041058 37.907236,-109.041762 38.16469,-109.060062 38.275489,-109.059541 38.719888,-109.054189 38.874984,-109.051512 39.126095,-109.051363 39.497674,-109.050615 39.87497,-109.050946 40.444368,-109.048044 40.619231,-109.050076 41.000659,-108.884138 41.000094,-108.250649 41.000114,-107.625624 41.002124,-106.857773 41.002663,-106.453859 41.002057,-106.217573 40.997734,-105.730421 40.996886,-105.277138 40.998173,-104.855273 40.998048,-104.675999 41.000957,-104.053249 41.001406))')\n .set('Accept', 'application/json')\n .expect(function(res) {\n return Object.keys(res.body['data'][0]).length > 0;\n })\n .expect(function(res) {\n return res.body['data'][0]['occurrence'] === 12;\n })\n .expect(200, done);", + "err": {}, + "uuid": "62deabcc-6f9a-4124-8dae-abc407f4243e", + "parentUUID": "8a57c85b-1bbb-4a8a-80ec-38d5cafe425e", + "isHook": false, + "skipped": false + }, + { + "title": "Get dataset data using a simple WKT:", + "fullTitle": "Get Neotoma data with WKT extents: Get dataset data using a simple WKT:", + "timedOut": false, + "duration": 169, + "state": "passed", + "speed": "fast", + "pass": true, + "fail": false, + "pending": false, + "context": null, + "code": "api.get('v2.0/data/datasets?loc=POLYGON((139.8%20-33.7,%20150.1%20-33.7,%20150.1%20-39.1,%20139.8%20-39.1,%20139.8%20-33.7))')\n .set('Accept', 'application/json')\n .expect(function(res) {\n return Object.keys(res.body['data'][0]).length > 0;\n })\n .expect(function(res) {\n return res.body['data'][0]['occurrence'] === 12;\n })\n .expect(200, done);", + "err": {}, + "uuid": "783c24e6-1406-45ca-bc56-670eea017272", + "parentUUID": "8a57c85b-1bbb-4a8a-80ec-38d5cafe425e", + "isHook": false, + "skipped": false } ], - "passes": [], + "suites": [], + "passes": [ + "22de43f1-da0c-4eaf-904c-877a1800cb58", + "5e1d6bbd-31e2-4e24-941c-32a406181834", + "62deabcc-6f9a-4124-8dae-abc407f4243e", + "783c24e6-1406-45ca-bc56-670eea017272" + ], "failures": [], "pending": [], "skipped": [], - "duration": 0, + "duration": 852, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 15000 }, { - "uuid": "01e5127b-afda-4a6f-9e6c-da16a964cfce", - "title": "tests for /v2.0/data/sites/{siteid}/datasets_elc", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-sites-{siteid}-datasets_elc-test.js", - "file": "/test/v2.0-data-sites-{siteid}-datasets_elc-test.js", + "uuid": "764176b5-13b8-4e53-b64d-ec763bd4a229", + "title": "tests for /v2.0/data/speleothems/{collectionunitid}", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-speleothems-{collectionunitid}-test.js", + "file": "/test/v2.0-data-speleothems-{collectionunitid}-test.js", "beforeHooks": [], "afterHooks": [], "tests": [], "suites": [ { - "uuid": "be3ce129-bf25-4242-ba16-dc1a9aac4e0c", + "uuid": "6ca5f765-2081-43b9-85dd-67a0b7dcf509", "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-sites-{siteid}-datasets_elc-test.js", - "file": "/test/v2.0-data-sites-{siteid}-datasets_elc-test.js", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-speleothems-{collectionunitid}-test.js", + "file": "/test/v2.0-data-speleothems-{collectionunitid}-test.js", "beforeHooks": [], "afterHooks": [], "tests": [ { - "title": "should respond 200 for \"An array of datasets.\"", - "fullTitle": "tests for /v2.0/data/sites/{siteid}/datasets_elc tests for get should respond 200 for \"An array of datasets.\"", + "title": "should respond 200 for \"Metadata associated with speleothems submitted through SISAL.\"", + "fullTitle": "tests for /v2.0/data/speleothems/{collectionunitid} tests for get should respond 200 for \"Metadata associated with speleothems submitted through SISAL.\"", "timedOut": false, - "duration": 2317, + "duration": 100, "state": "passed", - "speed": "slow", + "speed": "fast", "pass": true, "fail": false, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/sites/500/datasets_elc', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/speleothems/24472', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", "err": {}, - "uuid": "018952eb-1a66-4738-b356-7fb378c6184d", - "parentUUID": "be3ce129-bf25-4242-ba16-dc1a9aac4e0c", + "uuid": "43185b10-c458-40ef-9501-042e145e8714", + "parentUUID": "6ca5f765-2081-43b9-85dd-67a0b7dcf509", "isHook": false, "skipped": false } ], "suites": [], "passes": [ - "018952eb-1a66-4738-b356-7fb378c6184d" + "43185b10-c458-40ef-9501-042e145e8714" ], "failures": [], "pending": [], "skipped": [], - "duration": 2317, + "duration": 100, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 } ], "passes": [], @@ -5246,55 +5054,55 @@ "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 }, { - "uuid": "0b56d38a-9551-4ca3-a3bf-b0314a6939e5", - "title": "tests for /v2.0/data/aggregatedatasets/{aggdatasetid}", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-aggregatedatasets-{aggdatasetid}-test.js", - "file": "/test/v2.0-data-aggregatedatasets-{aggdatasetid}-test.js", + "uuid": "2fa47f59-3548-4c04-a9e3-5166df0d8825", + "title": "tests for /v2.0/apps/collectiontypes", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-apps-collectiontypes-test.js", + "file": "/test/v2.0-apps-collectiontypes-test.js", "beforeHooks": [], "afterHooks": [], "tests": [], "suites": [ { - "uuid": "4d3de612-f6d1-4b3b-9397-b7cc335c37a8", + "uuid": "d94f817a-c3da-4e1d-83a2-b8a95bb010a5", "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-aggregatedatasets-{aggdatasetid}-test.js", - "file": "/test/v2.0-data-aggregatedatasets-{aggdatasetid}-test.js", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-apps-collectiontypes-test.js", + "file": "/test/v2.0-apps-collectiontypes-test.js", "beforeHooks": [], "afterHooks": [], "tests": [ { - "title": "should respond 200 for \"An array of datasets.\"", - "fullTitle": "tests for /v2.0/data/aggregatedatasets/{aggdatasetid} tests for get should respond 200 for \"An array of datasets.\"", + "title": "should respond 200 for \"A table of Neotoma collection types.\"", + "fullTitle": "tests for /v2.0/apps/collectiontypes tests for get should respond 200 for \"A table of Neotoma collection types.\"", "timedOut": false, - "duration": 89, + "duration": 71, "state": "passed", "speed": "fast", "pass": true, "fail": false, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/aggregatedatasets/500', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "code": "var response = request('get', 'http://localhost:3001/v2.0/apps/collectiontypes', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", "err": {}, - "uuid": "c06577a1-a7bf-496f-ae82-847d965109ad", - "parentUUID": "4d3de612-f6d1-4b3b-9397-b7cc335c37a8", + "uuid": "53ed165e-6035-4a33-a591-60c9dfdf062a", + "parentUUID": "d94f817a-c3da-4e1d-83a2-b8a95bb010a5", "isHook": false, "skipped": false } ], "suites": [], "passes": [ - "c06577a1-a7bf-496f-ae82-847d965109ad" + "53ed165e-6035-4a33-a591-60c9dfdf062a" ], "failures": [], "pending": [], "skipped": [], - "duration": 89, + "duration": 71, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 } ], "passes": [], @@ -5304,55 +5112,55 @@ "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 }, { - "uuid": "1666ab9e-6eeb-44b6-ab27-33c8d052efad", - "title": "tests for /v2.0/apps/constdb/datasetuploads", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-apps-constdb-datasetuploads-test.js", - "file": "/test/v2.0-apps-constdb-datasetuploads-test.js", + "uuid": "2bdf11ac-2235-4fdd-8758-75fc6b869a9b", + "title": "tests for /v1.5/data/datasets/{datasetid}", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v1.5-data-datasets-{datasetid}-test.js", + "file": "/test/v1.5-data-datasets-{datasetid}-test.js", "beforeHooks": [], "afterHooks": [], "tests": [], "suites": [ { - "uuid": "66640f3c-2b1a-4439-87aa-21f71b14a8e7", + "uuid": "4b936a76-0a7b-4f48-ab99-5198d7d3c447", "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-apps-constdb-datasetuploads-test.js", - "file": "/test/v2.0-apps-constdb-datasetuploads-test.js", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v1.5-data-datasets-{datasetid}-test.js", + "file": "/test/v1.5-data-datasets-{datasetid}-test.js", "beforeHooks": [], "afterHooks": [], "tests": [ { - "title": "should respond 200 for \"Returns an ordered array (from earliest to latest) of upload counts by month (YYYY/MM/DD; all days as 01). Months with no uploads are excluded. \"", - "fullTitle": "tests for /v2.0/apps/constdb/datasetuploads tests for get should respond 200 for \"Returns an ordered array (from earliest to latest) of upload counts by month (YYYY/MM/DD; all days as 01). Months with no uploads are excluded. \"", + "title": "should respond 200 for \"An array of datasets.\"", + "fullTitle": "tests for /v1.5/data/datasets/{datasetid} tests for get should respond 200 for \"An array of datasets.\"", "timedOut": false, - "duration": 94, + "duration": 3195, "state": "passed", - "speed": "fast", + "speed": "slow", "pass": true, "fail": false, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/apps/constdb/datasetuploads', { \n 'qs': {\"dbid\":17},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "code": "var response = request('get', 'http://localhost:3001/v1.5/data/datasets/500', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", "err": {}, - "uuid": "730afc28-23b3-4a38-b129-8905ea8d0990", - "parentUUID": "66640f3c-2b1a-4439-87aa-21f71b14a8e7", + "uuid": "a9cd21ee-9b10-4cb1-8b1e-9fbdcd131c94", + "parentUUID": "4b936a76-0a7b-4f48-ab99-5198d7d3c447", "isHook": false, "skipped": false } ], "suites": [], "passes": [ - "730afc28-23b3-4a38-b129-8905ea8d0990" + "a9cd21ee-9b10-4cb1-8b1e-9fbdcd131c94" ], "failures": [], "pending": [], "skipped": [], - "duration": 94, + "duration": 3195, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 } ], "passes": [], @@ -5362,55 +5170,55 @@ "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 }, { - "uuid": "ac0963a2-af8e-49c9-bea0-06e78226f4be", - "title": "tests for /v2.0/apps/constdb/datasets", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-apps-constdb-datasets-test.js", - "file": "/test/v2.0-apps-constdb-datasets-test.js", + "uuid": "2b8c20ef-8869-46cf-9d8d-1b4272dac03c", + "title": "tests for /v2.0/data/sites/{siteid}/contacts", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-sites-{siteid}-contacts-test.js", + "file": "/test/v2.0-data-sites-{siteid}-contacts-test.js", "beforeHooks": [], "afterHooks": [], "tests": [], "suites": [ { - "uuid": "fe50dce6-4871-4487-8a34-0e30da0aefb6", + "uuid": "6dd90bd5-0d42-4490-9173-66168cb7ff85", "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-apps-constdb-datasets-test.js", - "file": "/test/v2.0-apps-constdb-datasets-test.js", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-sites-{siteid}-contacts-test.js", + "file": "/test/v2.0-data-sites-{siteid}-contacts-test.js", "beforeHooks": [], "afterHooks": [], "tests": [ { - "title": "should respond 200 for \"Returns the set of datasets contained within a constituent database, identified by the constituent database identifier. Used for quick landing page generation. \"", - "fullTitle": "tests for /v2.0/apps/constdb/datasets tests for get should respond 200 for \"Returns the set of datasets contained within a constituent database, identified by the constituent database identifier. Used for quick landing page generation. \"", + "title": "should respond 200 for \"contact\"", + "fullTitle": "tests for /v2.0/data/sites/{siteid}/contacts tests for get should respond 200 for \"contact\"", "timedOut": false, - "duration": 235, + "duration": 76, "state": "passed", "speed": "fast", "pass": true, "fail": false, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/apps/constdb/datasets', { \n 'qs': {\"dbid\":7},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/sites/812/contacts', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", "err": {}, - "uuid": "c0f0d0cf-2e38-45c2-890e-844c326e3a1f", - "parentUUID": "fe50dce6-4871-4487-8a34-0e30da0aefb6", + "uuid": "2a0f4602-d332-4017-ba1c-f41e114af84a", + "parentUUID": "6dd90bd5-0d42-4490-9173-66168cb7ff85", "isHook": false, "skipped": false } ], "suites": [], "passes": [ - "c0f0d0cf-2e38-45c2-890e-844c326e3a1f" + "2a0f4602-d332-4017-ba1c-f41e114af84a" ], "failures": [], "pending": [], "skipped": [], - "duration": 235, + "duration": 76, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 } ], "passes": [], @@ -5420,55 +5228,55 @@ "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 }, { - "uuid": "e0f35258-53e5-4b62-97ba-75bf60244deb", - "title": "tests for /v2.0/data/geopoliticalunits/{gpid}/datasets", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-geopoliticalunits-{gpid}-datasets-test.js", - "file": "/test/v2.0-data-geopoliticalunits-{gpid}-datasets-test.js", + "uuid": "44172868-2915-42ba-bbc1-7e9e152c4b1f", + "title": "tests for /v2.0/data/sites/{siteid}/geopoliticalunits", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-sites-{siteid}-geopoliticalunits-test.js", + "file": "/test/v2.0-data-sites-{siteid}-geopoliticalunits-test.js", "beforeHooks": [], "afterHooks": [], "tests": [], "suites": [ { - "uuid": "113a3b3b-2644-4a4e-b310-6001e3f19a33", + "uuid": "71b7b8d5-e1e7-49e6-9d79-251ca456e2bd", "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-geopoliticalunits-{gpid}-datasets-test.js", - "file": "/test/v2.0-data-geopoliticalunits-{gpid}-datasets-test.js", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-sites-{siteid}-geopoliticalunits-test.js", + "file": "/test/v2.0-data-sites-{siteid}-geopoliticalunits-test.js", "beforeHooks": [], "afterHooks": [], "tests": [ { - "title": "should respond 200 for \"An array of datasets.\"", - "fullTitle": "tests for /v2.0/data/geopoliticalunits/{gpid}/datasets tests for get should respond 200 for \"An array of datasets.\"", + "title": "should respond 200 for \"An array of geopolitical units.\"", + "fullTitle": "tests for /v2.0/data/sites/{siteid}/geopoliticalunits tests for get should respond 200 for \"An array of geopolitical units.\"", "timedOut": false, - "duration": 97, + "duration": 71, "state": "passed", "speed": "fast", "pass": true, "fail": false, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/geopoliticalunits/7248/datasets', { \n 'qs': {\"limit\": 10,\"offset\": 0},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/sites/39598/geopoliticalunits', { \n 'qs': {\"limit\":3406,\"offset\":66171112},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", "err": {}, - "uuid": "3b9b6694-ea93-4020-bfef-4fb477b17091", - "parentUUID": "113a3b3b-2644-4a4e-b310-6001e3f19a33", + "uuid": "d4c70c1e-91b9-418c-a5b2-132a7819ac20", + "parentUUID": "71b7b8d5-e1e7-49e6-9d79-251ca456e2bd", "isHook": false, "skipped": false } ], "suites": [], "passes": [ - "3b9b6694-ea93-4020-bfef-4fb477b17091" + "d4c70c1e-91b9-418c-a5b2-132a7819ac20" ], "failures": [], "pending": [], "skipped": [], - "duration": 97, + "duration": 71, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 } ], "passes": [], @@ -5478,55 +5286,94 @@ "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 }, { - "uuid": "237b03d4-b018-4821-b1f9-65d4753ed0ae", - "title": "tests for /v2.0/data/summary/dsdbmonth", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-summary-dsdbmonth-test.js", - "file": "/test/v2.0-data-summary-dsdbmonth-test.js", + "uuid": "998f7e5a-48e1-4674-9387-c9e9fa7241d6", + "title": "Any path goes to the api documentation:", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/neotoma_test.js", + "file": "/test/neotoma_test.js", + "beforeHooks": [], + "afterHooks": [], + "tests": [ + { + "title": "`api-docs` redirects to the api documentation.", + "fullTitle": "Any path goes to the api documentation: `api-docs` redirects to the api documentation.", + "timedOut": false, + "duration": 3, + "state": "passed", + "speed": "fast", + "pass": true, + "fail": false, + "pending": false, + "context": null, + "code": "api.get('v2')\n .set('Accept', 'application/json')\n .expect(302, done);", + "err": {}, + "uuid": "cea01c3b-f0c4-46ac-a633-03115d1b5eb0", + "parentUUID": "998f7e5a-48e1-4674-9387-c9e9fa7241d6", + "isHook": false, + "skipped": false + } + ], + "suites": [], + "passes": [ + "cea01c3b-f0c4-46ac-a633-03115d1b5eb0" + ], + "failures": [], + "pending": [], + "skipped": [], + "duration": 3, + "root": false, + "rootEmpty": false, + "_timeout": 900000 + }, + { + "uuid": "66e44853-aa7c-49f3-adff-6da32a49e053", + "title": "tests for /v2.0/data/contacts", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-contacts-test.js", + "file": "/test/v2.0-data-contacts-test.js", "beforeHooks": [], "afterHooks": [], "tests": [], "suites": [ { - "uuid": "48d109bd-50c0-45a0-917f-f0a6fb90297e", + "uuid": "79bec42c-f89b-4e3e-8b59-48d55e3fa3c3", "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-summary-dsdbmonth-test.js", - "file": "/test/v2.0-data-summary-dsdbmonth-test.js", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-contacts-test.js", + "file": "/test/v2.0-data-contacts-test.js", "beforeHooks": [], "afterHooks": [], "tests": [ { - "title": "should respond 200 for \"A count of the datasets added by database for the requested period.\"", - "fullTitle": "tests for /v2.0/data/summary/dsdbmonth tests for get should respond 200 for \"A count of the datasets added by database for the requested period.\"", + "title": "should respond 200 for \"contact\"", + "fullTitle": "tests for /v2.0/data/contacts tests for get should respond 200 for \"contact\"", "timedOut": false, - "duration": 213, + "duration": 76, "state": "passed", "speed": "fast", "pass": true, "fail": false, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/summary/dsdbmonth', { \n 'qs': {\"start\": 1,\"end\": 10},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/contacts', { \n 'qs': {\"contactid\":854,\"familyname\":\"fK Ft'nX\",\"contactname\":\"NZFb\",\"contactstatus\":\"deceased\",\"limit\":630,\"offset\":51256476},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", "err": {}, - "uuid": "7e93f5c7-d755-453b-be6e-7c483575684b", - "parentUUID": "48d109bd-50c0-45a0-917f-f0a6fb90297e", + "uuid": "8eae134e-3e01-4a06-bf45-780631083039", + "parentUUID": "79bec42c-f89b-4e3e-8b59-48d55e3fa3c3", "isHook": false, "skipped": false } ], "suites": [], "passes": [ - "7e93f5c7-d755-453b-be6e-7c483575684b" + "8eae134e-3e01-4a06-bf45-780631083039" ], "failures": [], "pending": [], "skipped": [], - "duration": 213, + "duration": 76, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 } ], "passes": [], @@ -5536,55 +5383,55 @@ "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 }, { - "uuid": "fbc8e808-0677-491c-b25e-499a8ad60284", - "title": "tests for /v2.0/data/datasets/db", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-datasets-db-test.js", - "file": "/test/v2.0-data-datasets-db-test.js", + "uuid": "1c00bc66-2e28-4123-a1d5-32f91fbce33a", + "title": "tests for /v2.0/data/dbtables", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-dbtables-test.js", + "file": "/test/v2.0-data-dbtables-test.js", "beforeHooks": [], "afterHooks": [], "tests": [], "suites": [ { - "uuid": "5a130bc6-68db-4963-b05a-9659ac8ae553", + "uuid": "f5361504-7e0f-49e2-9231-ea7bceb024a6", "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-datasets-db-test.js", - "file": "/test/v2.0-data-datasets-db-test.js", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-dbtables-test.js", + "file": "/test/v2.0-data-dbtables-test.js", "beforeHooks": [], "afterHooks": [], "tests": [ { - "title": "should respond 200 for \"Datasets\"", - "fullTitle": "tests for /v2.0/data/datasets/db tests for get should respond 200 for \"Datasets\"", + "title": "should respond 200 for \"Returned table.\"", + "fullTitle": "tests for /v2.0/data/dbtables tests for get should respond 200 for \"Returned table.\"", "timedOut": false, - "duration": 918, + "duration": 81, "state": "passed", - "speed": "medium", + "speed": "fast", "pass": true, "fail": false, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/datasets/db', { \n 'qs': {\"limit\": 10,\"offset\": 0,\"database\":\"NDSU Insect Database\"},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/dbtables', { \n 'qs': {\"table\":\"labore quis veniam laborum Ut\",\"count\":false,\"limit\":154,\"offset\":77061579},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", "err": {}, - "uuid": "485e8199-c836-477c-b63c-2c9129fff6e3", - "parentUUID": "5a130bc6-68db-4963-b05a-9659ac8ae553", + "uuid": "2eff9a81-31ac-420b-b37a-f0afec107776", + "parentUUID": "f5361504-7e0f-49e2-9231-ea7bceb024a6", "isHook": false, "skipped": false } ], "suites": [], "passes": [ - "485e8199-c836-477c-b63c-2c9129fff6e3" + "2eff9a81-31ac-420b-b37a-f0afec107776" ], "failures": [], "pending": [], "skipped": [], - "duration": 918, + "duration": 81, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 } ], "passes": [], @@ -5594,55 +5441,209 @@ "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 }, { - "uuid": "53c0d9cf-58e0-4413-a007-863f2e0bf18f", - "title": "tests for /v2.0/data/datasets/{datasetid}/publications", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-datasets-{datasetid}-publications-test.js", - "file": "/test/v2.0-data-datasets-{datasetid}-publications-test.js", + "uuid": "2e5628ee-9fad-41a1-beeb-f9a0cee66320", + "title": "Get datasets any number of ways:", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/datasets.js", + "file": "/test/datasets.js", + "beforeHooks": [], + "afterHooks": [], + "tests": [ + { + "title": "Asking for the datasets associated with Lake Tulane work:", + "fullTitle": "Get datasets any number of ways: Asking for the datasets associated with Lake Tulane work:", + "timedOut": false, + "duration": 110, + "state": "passed", + "speed": "fast", + "pass": true, + "fail": false, + "pending": false, + "context": null, + "code": "api.get('v2.0/data/sites/2570/datasets')\n .set('Accept', 'application/json')\n .expect(function(res) {\n return Object.keys(res.body['data'][0]).includes('site');\n })\n .expect(function(res) {\n return res.body['data'][0].site.siteid === 2570;\n })\n .expect(function(res) {\n return Object.keys(res.body['data'][0]['site']['datasets'][0]).includes('datasetid');\n })\n .expect(200, done);", + "err": {}, + "uuid": "17e05c9f-e433-442c-81f4-4a6cf8cba8b0", + "parentUUID": "2e5628ee-9fad-41a1-beeb-f9a0cee66320", + "isHook": false, + "skipped": false + }, + { + "title": "Get dataset by singular id & return same id:", + "fullTitle": "Get datasets any number of ways: Get dataset by singular id & return same id:", + "timedOut": false, + "duration": 110, + "state": "passed", + "speed": "fast", + "pass": true, + "fail": false, + "pending": false, + "context": null, + "code": "api.get('v2.0/data/datasets/12')\n .set('Accept', 'application/json')\n .expect(function(res) {\n return Object.keys(res.body['data'][0]).length > 0;\n })\n .expect(function(res) {\n return res.body['data'][0]['siteid'] === 12;\n })\n .expect(200, done);", + "err": {}, + "uuid": "568f3da6-46b5-4ed7-903b-79debe5058e8", + "parentUUID": "2e5628ee-9fad-41a1-beeb-f9a0cee66320", + "isHook": false, + "skipped": false + }, + { + "title": "Get dataset from siteid gives us siteids back and datasets:", + "fullTitle": "Get datasets any number of ways: Get dataset from siteid gives us siteids back and datasets:", + "timedOut": false, + "duration": 90, + "state": "passed", + "speed": "fast", + "pass": true, + "fail": false, + "pending": false, + "context": null, + "code": "api.get('v2.0/data/sites/123/datasets')\n .set('Accept', 'application/json')\n .expect(function(res) {\n return res.body['data'][0].site.siteid === 123;\n })\n .expect(function(res) {\n return res.body['data'][0].site.datasets.length > 0;\n })\n .expect(200, done);", + "err": {}, + "uuid": "46dab848-619e-4a62-8af5-1ec3cbb5d2eb", + "parentUUID": "2e5628ee-9fad-41a1-beeb-f9a0cee66320", + "isHook": false, + "skipped": false + }, + { + "title": "Get dataset by comma separated ids & return same ids:", + "fullTitle": "Get datasets any number of ways: Get dataset by comma separated ids & return same ids:", + "timedOut": false, + "duration": 97, + "state": "passed", + "speed": "fast", + "pass": true, + "fail": false, + "pending": false, + "context": null, + "code": "api.get('v2.0/data/datasets/?siteid=12,13,14')\n .set('Accept', 'application/json')\n .expect(function(res) {\n return Object.keys(res.body['data']).length > 0;\n })\n .expect(200, done);", + "err": {}, + "uuid": "09c7409a-85bc-4af2-ad8f-5ecea2c5cc10", + "parentUUID": "2e5628ee-9fad-41a1-beeb-f9a0cee66320", + "isHook": false, + "skipped": false + }, + { + "title": "Returns all key elements of the object:", + "fullTitle": "Get datasets any number of ways: Returns all key elements of the object:", + "timedOut": false, + "duration": 4, + "state": "passed", + "speed": "fast", + "pass": true, + "fail": false, + "pending": false, + "context": null, + "code": "api.get('v2.0/data/datasets/12')\n .set('Accept', 'application/json')\n .expect(function(res) {\n return Object.keys(res.body['data']).includes('site', 'dataset');\n })\n .expect(200, done);", + "err": {}, + "uuid": "5469495d-a8f4-4228-a8e4-6f97beeabab7", + "parentUUID": "2e5628ee-9fad-41a1-beeb-f9a0cee66320", + "isHook": false, + "skipped": false + }, + { + "title": "Limits work:", + "fullTitle": "Get datasets any number of ways: Limits work:", + "timedOut": false, + "duration": 515, + "state": "passed", + "speed": "medium", + "pass": true, + "fail": false, + "pending": false, + "context": null, + "code": "api.get('v2.0/data/datasets/?altmax=3&limit=10')\n .set('Accept', 'application/json')\n .expect(function(res) {\n return Object.keys(res.body['data']).length == 10;\n })\n .expect(200, done);", + "err": {}, + "uuid": "ae8ece47-35bd-4274-94d3-d0522daed2ab", + "parentUUID": "2e5628ee-9fad-41a1-beeb-f9a0cee66320", + "isHook": false, + "skipped": false + }, + { + "title": "Works with age validation:", + "fullTitle": "Get datasets any number of ways: Works with age validation:", + "timedOut": false, + "duration": 0, + "state": "pending", + "speed": null, + "pass": false, + "fail": false, + "pending": true, + "context": null, + "code": "", + "err": {}, + "uuid": "bd89f4ae-2506-4563-97d2-91b7cf57d03b", + "parentUUID": "2e5628ee-9fad-41a1-beeb-f9a0cee66320", + "isHook": false, + "skipped": false + } + ], + "suites": [], + "passes": [ + "17e05c9f-e433-442c-81f4-4a6cf8cba8b0", + "568f3da6-46b5-4ed7-903b-79debe5058e8", + "46dab848-619e-4a62-8af5-1ec3cbb5d2eb", + "09c7409a-85bc-4af2-ad8f-5ecea2c5cc10", + "5469495d-a8f4-4228-a8e4-6f97beeabab7", + "ae8ece47-35bd-4274-94d3-d0522daed2ab" + ], + "failures": [], + "pending": [ + "bd89f4ae-2506-4563-97d2-91b7cf57d03b" + ], + "skipped": [], + "duration": 926, + "root": false, + "rootEmpty": false, + "_timeout": 50000 + }, + { + "uuid": "2f86c5d0-8623-4562-bb29-be9167967c40", + "title": "tests for /v2.0/data/summary/dsdbmonth", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-summary-dsdbmonth-test.js", + "file": "/test/v2.0-data-summary-dsdbmonth-test.js", "beforeHooks": [], "afterHooks": [], "tests": [], "suites": [ { - "uuid": "99618c15-c7c7-4dc6-8638-69fe84c8c763", + "uuid": "8c65cf9b-c3d7-49d1-9bc5-0755b9c8628d", "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-datasets-{datasetid}-publications-test.js", - "file": "/test/v2.0-data-datasets-{datasetid}-publications-test.js", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-summary-dsdbmonth-test.js", + "file": "/test/v2.0-data-summary-dsdbmonth-test.js", "beforeHooks": [], "afterHooks": [], "tests": [ { - "title": "should respond 200 for \"Publication\"", - "fullTitle": "tests for /v2.0/data/datasets/{datasetid}/publications tests for get should respond 200 for \"Publication\"", + "title": "should respond 200 for \"A count of the datasets added by database for the requested period.\"", + "fullTitle": "tests for /v2.0/data/summary/dsdbmonth tests for get should respond 200 for \"A count of the datasets added by database for the requested period.\"", "timedOut": false, - "duration": 102, + "duration": 190, "state": "passed", "speed": "fast", "pass": true, "fail": false, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/datasets/500/publications', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/summary/dsdbmonth', { \n 'qs': {\"start\":0,\"end\":1},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", "err": {}, - "uuid": "d271aad9-0a8b-436a-b427-ba0fdc8d5cbb", - "parentUUID": "99618c15-c7c7-4dc6-8638-69fe84c8c763", + "uuid": "28349c36-22a7-4b4b-841e-f6d1a6c46aa5", + "parentUUID": "8c65cf9b-c3d7-49d1-9bc5-0755b9c8628d", "isHook": false, "skipped": false } ], "suites": [], "passes": [ - "d271aad9-0a8b-436a-b427-ba0fdc8d5cbb" + "28349c36-22a7-4b4b-841e-f6d1a6c46aa5" ], "failures": [], "pending": [], "skipped": [], - "duration": 102, + "duration": 190, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 } ], "passes": [], @@ -5652,55 +5653,55 @@ "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 }, { - "uuid": "ae7fcff5-983a-4af7-819e-12fd88f39726", - "title": "tests for /v2.0/data/contacts/{contactid}/sites", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-contacts-{contactid}-sites-test.js", - "file": "/test/v2.0-data-contacts-{contactid}-sites-test.js", + "uuid": "4e0ad04b-8661-47e5-85e5-1ecf5a7faa1e", + "title": "tests for /v2.0/data/geopoliticalunits", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-geopoliticalunits-test.js", + "file": "/test/v2.0-data-geopoliticalunits-test.js", "beforeHooks": [], "afterHooks": [], "tests": [], "suites": [ { - "uuid": "b720eb63-e615-4eb2-b13f-9973fa182cd7", + "uuid": "563f0e0e-58f2-4ab1-b5c8-32c981f121af", "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-contacts-{contactid}-sites-test.js", - "file": "/test/v2.0-data-contacts-{contactid}-sites-test.js", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-geopoliticalunits-test.js", + "file": "/test/v2.0-data-geopoliticalunits-test.js", "beforeHooks": [], "afterHooks": [], "tests": [ { - "title": "should respond 200 for \"A Neotoma sites object.\"", - "fullTitle": "tests for /v2.0/data/contacts/{contactid}/sites tests for get should respond 200 for \"A Neotoma sites object.\"", + "title": "should respond 200 for \"An array of geopolitical units.\"", + "fullTitle": "tests for /v2.0/data/geopoliticalunits tests for get should respond 200 for \"An array of geopolitical units.\"", "timedOut": false, - "duration": 88, + "duration": 73, "state": "passed", "speed": "fast", "pass": true, "fail": false, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/contacts/8571/sites', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/geopoliticalunits', { \n 'qs': {\"gpid\":5392,\"gpname\":\"Canada\",\"rank\":1,\"lower\":false},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", "err": {}, - "uuid": "79988c7a-ec58-42ea-8268-33088c3853fd", - "parentUUID": "b720eb63-e615-4eb2-b13f-9973fa182cd7", + "uuid": "931cdffb-c01e-45c8-9057-deb42dfac428", + "parentUUID": "563f0e0e-58f2-4ab1-b5c8-32c981f121af", "isHook": false, "skipped": false } ], "suites": [], "passes": [ - "79988c7a-ec58-42ea-8268-33088c3853fd" + "931cdffb-c01e-45c8-9057-deb42dfac428" ], "failures": [], "pending": [], "skipped": [], - "duration": 88, + "duration": 73, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 } ], "passes": [], @@ -5710,55 +5711,55 @@ "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 }, { - "uuid": "40e83aa6-04a8-4a6e-b1de-668ca96f8705", - "title": "tests for /v2.0/data/publications/{publicationid}", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-publications-{publicationid}-test.js", - "file": "/test/v2.0-data-publications-{publicationid}-test.js", + "uuid": "9d2e47c0-3cc2-463c-9e12-8e667f28b45b", + "title": "tests for /v2.0/data/datasets/{datasetid}/contacts", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-datasets-{datasetid}-contacts-test.js", + "file": "/test/v2.0-data-datasets-{datasetid}-contacts-test.js", "beforeHooks": [], "afterHooks": [], "tests": [], "suites": [ { - "uuid": "354fa8c3-6902-45e9-b2b0-950a55f9f354", + "uuid": "01c097e5-2f7d-413f-906f-b1d7dfc9f732", "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-publications-{publicationid}-test.js", - "file": "/test/v2.0-data-publications-{publicationid}-test.js", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-datasets-{datasetid}-contacts-test.js", + "file": "/test/v2.0-data-datasets-{datasetid}-contacts-test.js", "beforeHooks": [], "afterHooks": [], "tests": [ { - "title": "should respond 200 for \"A list of publications.\"", - "fullTitle": "tests for /v2.0/data/publications/{publicationid} tests for get should respond 200 for \"A list of publications.\"", + "title": "should respond 200 for \"contact\"", + "fullTitle": "tests for /v2.0/data/datasets/{datasetid}/contacts tests for get should respond 200 for \"contact\"", "timedOut": false, - "duration": 89, + "duration": 69, "state": "passed", "speed": "fast", "pass": true, "fail": false, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/publications/6927', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/datasets/59820373/contacts', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", "err": {}, - "uuid": "8626fb62-8b73-41d3-991d-771b3a0a2e13", - "parentUUID": "354fa8c3-6902-45e9-b2b0-950a55f9f354", + "uuid": "47b846a4-6f69-4564-821b-e033a8eab789", + "parentUUID": "01c097e5-2f7d-413f-906f-b1d7dfc9f732", "isHook": false, "skipped": false } ], "suites": [], "passes": [ - "8626fb62-8b73-41d3-991d-771b3a0a2e13" + "47b846a4-6f69-4564-821b-e033a8eab789" ], "failures": [], "pending": [], "skipped": [], - "duration": 89, + "duration": 69, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 } ], "passes": [], @@ -5768,55 +5769,55 @@ "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 }, { - "uuid": "0c3b3c59-2714-4da9-8a97-199551de6ad7", - "title": "tests for /v2.0/data/datasets/{datasetid}", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-datasets-{datasetid}-test.js", - "file": "/test/v2.0-data-datasets-{datasetid}-test.js", + "uuid": "4467bb3f-1c31-4d7a-9f65-00b08a0927dc", + "title": "tests for /v1.5/data/sites/{siteid}", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v1.5-data-sites-{siteid}-test.js", + "file": "/test/v1.5-data-sites-{siteid}-test.js", "beforeHooks": [], "afterHooks": [], "tests": [], "suites": [ { - "uuid": "b6fbec16-5737-4dbf-9b73-46de6dcc866e", + "uuid": "700cbb6c-5d0d-41c3-ac40-b503b739cafd", "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-data-datasets-{datasetid}-test.js", - "file": "/test/v2.0-data-datasets-{datasetid}-test.js", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v1.5-data-sites-{siteid}-test.js", + "file": "/test/v1.5-data-sites-{siteid}-test.js", "beforeHooks": [], "afterHooks": [], "tests": [ { - "title": "should respond 200 for \"An array of datasets.\"", - "fullTitle": "tests for /v2.0/data/datasets/{datasetid} tests for get should respond 200 for \"An array of datasets.\"", + "title": "should respond 200 for \"An array of site elements.\"", + "fullTitle": "tests for /v1.5/data/sites/{siteid} tests for get should respond 200 for \"An array of site elements.\"", "timedOut": false, - "duration": 100, + "duration": 73, "state": "passed", "speed": "fast", "pass": true, "fail": false, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/datasets/500', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "code": "var response = request('get', 'http://localhost:3001/v1.5/data/sites/4070', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", "err": {}, - "uuid": "daa4bf06-374b-40f0-b870-6fb89dc183f8", - "parentUUID": "b6fbec16-5737-4dbf-9b73-46de6dcc866e", + "uuid": "98d63971-e19c-4785-be80-67d7b552ee5e", + "parentUUID": "700cbb6c-5d0d-41c3-ac40-b503b739cafd", "isHook": false, "skipped": false } ], "suites": [], "passes": [ - "daa4bf06-374b-40f0-b870-6fb89dc183f8" + "98d63971-e19c-4785-be80-67d7b552ee5e" ], "failures": [], "pending": [], "skipped": [], - "duration": 100, + "duration": 73, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 } ], "passes": [], @@ -5826,55 +5827,55 @@ "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 }, { - "uuid": "214a284d-1491-4849-b5d7-9afc7314ddab", - "title": "tests for /v2.0/apps/depenvt", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-apps-depenvt-test.js", - "file": "/test/v2.0-apps-depenvt-test.js", + "uuid": "4e536344-4763-4c1f-9253-634b6ff5833f", + "title": "tests for /v2.0/data/datasets/{datasetid}", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-datasets-{datasetid}-test.js", + "file": "/test/v2.0-data-datasets-{datasetid}-test.js", "beforeHooks": [], "afterHooks": [], "tests": [], "suites": [ { - "uuid": "27db4242-aed8-46ce-b5f9-3755272b58fe", + "uuid": "22682868-d17a-4393-8a10-e3b317c7469f", "title": "tests for get", - "fullFile": "/home/simon/Documents/Neotoma/api_nodetest/test/v2.0-apps-depenvt-test.js", - "file": "/test/v2.0-apps-depenvt-test.js", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-datasets-{datasetid}-test.js", + "file": "/test/v2.0-data-datasets-{datasetid}-test.js", "beforeHooks": [], "afterHooks": [], "tests": [ { - "title": "should respond 200 for \"This returns the information about depositional environment for selected dataset/collection unit/site.\"", - "fullTitle": "tests for /v2.0/apps/depenvt tests for get should respond 200 for \"This returns the information about depositional environment for selected dataset/collection unit/site.\"", + "title": "should respond 200 for \"An array of datasets.\"", + "fullTitle": "tests for /v2.0/data/datasets/{datasetid} tests for get should respond 200 for \"An array of datasets.\"", "timedOut": false, - "duration": 166, + "duration": 96, "state": "passed", "speed": "fast", "pass": true, "fail": false, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/apps/depenvt', { \n 'qs': {\"siteid\":7138,\"datasetid\":98069349,\"collectionunitid\":52407},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/datasets/51049927', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", "err": {}, - "uuid": "5c5df494-6d13-4139-b974-ceea0cabe868", - "parentUUID": "27db4242-aed8-46ce-b5f9-3755272b58fe", + "uuid": "7094ac4e-3d8e-4cfb-9791-366949070696", + "parentUUID": "22682868-d17a-4393-8a10-e3b317c7469f", "isHook": false, "skipped": false } ], "suites": [], "passes": [ - "5c5df494-6d13-4139-b974-ceea0cabe868" + "7094ac4e-3d8e-4cfb-9791-366949070696" ], "failures": [], "pending": [], "skipped": [], - "duration": 166, + "duration": 96, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 } ], "passes": [], @@ -5884,7 +5885,7 @@ "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 300000 + "_timeout": 900000 } ], "passes": [], @@ -5894,7 +5895,7 @@ "duration": 0, "root": true, "rootEmpty": true, - "_timeout": 300000 + "_timeout": 900000 } ], "meta": { diff --git a/runmochabatch.sh b/runmochabatch.sh index 507ef0cc..72b79775 100644 --- a/runmochabatch.sh +++ b/runmochabatch.sh @@ -17,6 +17,7 @@ HELP } run_mocha() { + # Only run v2.0 tests locally 'v2.0-*.js' — v1.5 endpoints are slow and trip chakram's default timeout find ./test -name '*.js' | shuf | xargs mocha --config=test/.mocharc.yml --reporter-options reportDir=public,reportFilename=tests } @@ -26,23 +27,28 @@ run_mocha() { test=0 +# Default target: local production-mode API. Flags below override. +# Must be set BEFORE getopts because getopts skips its loop when no flags are passed. +export APIPATH='http://localhost:3001/' + while getopts "hdpa" opt; do case $opt in h) show_help exit 0 ;; - d) + d) export APIPATH='https://api-dev.neotomadb.org/' ;; p) export APIPATH='https://api.neotomadb.org/' ;; - a) + a) export APIPATH='http://neotomaapi-env.eba-wd29jtvf.us-east-2.elasticbeanstalk.com/' ;; *) - export APIPATH='http://localhost:3001/' + show_help + exit 1 ;; esac done diff --git a/test/.mocharc.yml b/test/.mocharc.yml index 9506c954..1e8ee828 100644 --- a/test/.mocharc.yml +++ b/test/.mocharc.yml @@ -1,13 +1,13 @@ exit: true -bail: true +bail: false check-leaks: true allow-uncaught: false slow: 1000 -timeout: 300000 +timeout: 900000 recursive: true color: true full-trace: true ui: 'bdd' reporter: 'node_modules/mochawesome' -retries: 3 -jobs: 2 +retries: 0 +jobs: 1 diff --git a/test/datasets.js b/test/datasets.js index 8771754d..9608ab34 100755 --- a/test/datasets.js +++ b/test/datasets.js @@ -87,7 +87,14 @@ describe('Get datasets any number of ways:', function() { }); this.timeout(50000); - it('Works with age validation:', function(done) { + // TODO: re-enable once the assertion is rewritten. Currently broken in two ways: + // 1. Bitwise & instead of logical && — `test` becomes 0/1, never === false, so the + // loop always returns true and never catches a real failure. + // 2. Nested property access (data[i].site.datasets[0].agerange.ageyoung) throws when + // any link is null/undefined; supertest swallows the exception and done() never + // fires, causing the per-test 50s timeout. Fix with optional chaining + throw on + // assertion failure inside the .expect(fn) callback. + it.skip('Works with age validation:', function(done) { api.get('v2.0/data/datasets/?ageyoung=1200&ageold=1500&altmax=3') .set('Accept', 'application/json') .expect(function(res) { diff --git a/v2.0/helpers/validation/sessionauth.js b/v2.0/helpers/validation/sessionauth.js new file mode 100644 index 00000000..63a18dec --- /dev/null +++ b/v2.0/helpers/validation/sessionauth.js @@ -0,0 +1,100 @@ +'use strict'; +// Session auth middleware for Neotoma API. +// +// Reads "Authorization: Bearer " from incoming requests, +// looks the UUID up in ap.orcidlogins, checks that it hasn't expired, +// and attaches the user info to req.user. Downstream route handlers can +// then check req.user to know whether (and as whom) the caller is logged in. +// +// Two flavors: +// optionalAuth — always continues; req.user is null if no/invalid token +// requireAuth — returns 401 if no/invalid/expired token + +/** + * Pull the bearer token out of the Authorization header. + * Returns the token string, or null if no header / wrong scheme. + */ +function extractBearerToken(req) { + const header = req.get('Authorization'); + if (!header) return null; + const parts = header.split(' '); + if (parts.length !== 2 || parts[0] !== 'Bearer') return null; + return parts[1]; +} + +/** + * Look up a session UUID in ap.orcidlogins. Returns the user record + * if the session exists and hasn't expired, otherwise null. + */ +async function lookupSession(db, sessionuuid) { + // Basic UUID shape check before hitting the DB. This keeps malformed + // tokens from causing a SQL error. + const uuidRe = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i; + if (!uuidRe.test(sessionuuid)) return null; + + const row = await db.oneOrNone( + `SELECT orcidid, sessionuuid, expiresat, userip + FROM ap.orcidlogins + WHERE sessionuuid = $1 + AND expiresat > now()`, + [sessionuuid] + ); + return row || null; +} + +/** + * Middleware: attaches req.user if a valid session is present, else null. + * Always calls next(). Use this on routes that work for both logged-in + * and anonymous users (e.g., a dataset page that hides embargoed rows). + */ +const optionalAuth = async function(req, res, next) { + const token = extractBearerToken(req); + if (!token) { + req.user = null; + return next(); + } + try { + const db = req.app.locals.db; + const session = await lookupSession(db, token); + req.user = session; // null if not found / expired + next(); + } catch (err) { + console.error('optionalAuth lookup failed:', err); + req.user = null; + next(); + } +}; + +/** + * Middleware: rejects with 401 if no valid session. Use on endpoints + * that require login (e.g., upload, set embargo, view "my datasets"). + */ +const requireAuth = async function(req, res, next) { + const token = extractBearerToken(req); + if (!token) { + return res.status(401).json({ + status: 'unauthorized', + message: 'Missing Authorization header', + }); + } + try { + const db = req.app.locals.db; + const session = await lookupSession(db, token); + if (!session) { + return res.status(401).json({ + status: 'unauthorized', + message: 'Invalid or expired session token', + }); + } + req.user = session; + next(); + } catch (err) { + console.error('requireAuth lookup failed:', err); + res.status(500).json({ + status: 'error', + message: 'Auth check failed', + }); + } +}; + +module.exports = {optionalAuth, requireAuth}; \ No newline at end of file diff --git a/v2.0/routes/apps.js b/v2.0/routes/apps.js index f62a6c39..f281c8fa 100755 --- a/v2.0/routes/apps.js +++ b/v2.0/routes/apps.js @@ -10,11 +10,40 @@ Last Updated: Aug 19, 2021 const express = require('express'); const router = express.Router(); const handlers = require('../handlers/apps_handlers'); +const {requireAuth} = require('../helpers/validation/sessionauth'); // requireAuth middleware router.get('/', function(req, res, next) { res.send('NeotomaDB apps API: please provide a valid request'); }); +router.get('/whoami', requireAuth, function(req, res) { + res.status(200).json({ + status: 'success', + data: { + orcidid: req.user.orcidid, + sessionuuid: req.user.sessionuuid, + expiresat: req.user.expiresat, + }, + message: 'Authenticated session', + }); +}); + +router.post('/logout', requireAuth, async function(req, res) { + const db = req.app.locals.db; + try { + await db.none( + `UPDATE ap.orcidlogins + SET expiresat = now(), + loggedoutat = now() + WHERE sessionuuid = $1`, + [req.user.sessionuuid] + ); + res.status(200).json({status: 'success', message: 'Session ended'}); + } catch (err) { + res.status(500).json({status: 'error', message: 'Logout failed'}); + } +}); + router.get('/authorpis', handlers.authorpis); router.get('/collectiontypes', handlers.collectiontypes); diff --git a/yarn.lock b/yarn.lock index 5b955297..6b65b4c9 100644 --- a/yarn.lock +++ b/yarn.lock @@ -23,14 +23,14 @@ __metadata: languageName: node linkType: hard -"@eslint/config-array@npm:^0.21.1": - version: 0.21.1 - resolution: "@eslint/config-array@npm:0.21.1" +"@eslint/config-array@npm:^0.21.2": + version: 0.21.2 + resolution: "@eslint/config-array@npm:0.21.2" dependencies: "@eslint/object-schema": "npm:^2.1.7" debug: "npm:^4.3.1" - minimatch: "npm:^3.1.2" - checksum: 10c0/2f657d4edd6ddcb920579b72e7a5b127865d4c3fb4dda24f11d5c4f445a93ca481aebdbd6bf3291c536f5d034458dbcbb298ee3b698bc6c9dd02900fe87eec3c + minimatch: "npm:^3.1.5" + checksum: 10c0/89dfe815d18456177c0a1f238daf4593107fd20298b3598e0103054360d3b8d09d967defd8318f031185d68df1f95cfa68becf1390a9c5c6887665f1475142e3 languageName: node linkType: hard @@ -52,27 +52,27 @@ __metadata: languageName: node linkType: hard -"@eslint/eslintrc@npm:^3.3.1": - version: 3.3.3 - resolution: "@eslint/eslintrc@npm:3.3.3" +"@eslint/eslintrc@npm:^3.3.5": + version: 3.3.5 + resolution: "@eslint/eslintrc@npm:3.3.5" dependencies: - ajv: "npm:^6.12.4" + ajv: "npm:^6.14.0" debug: "npm:^4.3.2" espree: "npm:^10.0.1" globals: "npm:^14.0.0" ignore: "npm:^5.2.0" import-fresh: "npm:^3.2.1" js-yaml: "npm:^4.1.1" - minimatch: "npm:^3.1.2" + minimatch: "npm:^3.1.5" strip-json-comments: "npm:^3.1.1" - checksum: 10c0/532c7acc7ddd042724c28b1f020bd7bf148fcd4653bb44c8314168b5f772508c842ce4ee070299cac51c5c5757d2124bdcfcef5551c8c58ff9986e3e17f2260d + checksum: 10c0/9fb9f1ca65e46d6173966e3aaa5bd353e3a65d7f1f582bebf77f578fab7d7960a399fac1ecfb1e7d52bd61f5cefd6531087ca52a3a3c388f2e1b4f1ebd3da8b7 languageName: node linkType: hard -"@eslint/js@npm:9.39.2": - version: 9.39.2 - resolution: "@eslint/js@npm:9.39.2" - checksum: 10c0/00f51c52b04ac79faebfaa65a9652b2093b9c924e945479f1f3945473f78aee83cbc76c8d70bbffbf06f7024626575b16d97b66eab16182e1d0d39daff2f26f5 +"@eslint/js@npm:9.39.4": + version: 9.39.4 + resolution: "@eslint/js@npm:9.39.4" + checksum: 10c0/5aa7dea2cbc5decf7f5e3b0c6f86a084ccee0f792d288ca8e839f8bc1b64e03e227068968e49b26096e6f71fd857ab6e42691d1b993826b9a3883f1bdd7a0e46 languageName: node linkType: hard @@ -109,20 +109,30 @@ __metadata: languageName: node linkType: hard -"@humanfs/core@npm:^0.19.1": - version: 0.19.1 - resolution: "@humanfs/core@npm:0.19.1" - checksum: 10c0/aa4e0152171c07879b458d0e8a704b8c3a89a8c0541726c6b65b81e84fd8b7564b5d6c633feadc6598307d34564bd53294b533491424e8e313d7ab6c7bc5dc67 +"@humanfs/core@npm:^0.19.2": + version: 0.19.2 + resolution: "@humanfs/core@npm:0.19.2" + dependencies: + "@humanfs/types": "npm:^0.15.0" + checksum: 10c0/d0a1d52d7b30c27d49475a53072d1510b81c5803e44b342fb8faf3887f1aa27593a1e6dc76a45268e7892d3f4e198146659281f6b6d55eacf3fd5a38bac30c5c languageName: node linkType: hard "@humanfs/node@npm:^0.16.6": - version: 0.16.7 - resolution: "@humanfs/node@npm:0.16.7" + version: 0.16.8 + resolution: "@humanfs/node@npm:0.16.8" dependencies: - "@humanfs/core": "npm:^0.19.1" + "@humanfs/core": "npm:^0.19.2" + "@humanfs/types": "npm:^0.15.0" "@humanwhocodes/retry": "npm:^0.4.0" - checksum: 10c0/9f83d3cf2cfa37383e01e3cdaead11cd426208e04c44adcdd291aa983aaf72d7d3598844d2fe9ce54896bb1bf8bd4b56883376611c8905a19c44684642823f30 + checksum: 10c0/56140579db811af4e160b195d45d0f29acf644d192c93fe24c9e594ebf06f19dfc157494a07c84540b8a071c0e4b37209c2362765d31734f4d0be869c2422e25 + languageName: node + linkType: hard + +"@humanfs/types@npm:^0.15.0": + version: 0.15.0 + resolution: "@humanfs/types@npm:0.15.0" + checksum: 10c0/fc26b9a024b0e55f7eaf64036df94345bf5d36d6a41ef80ef38e78f1f7430ce26cf435af736adae58913baae18eac3f38c18739054a3d379102015978eae862e languageName: node linkType: hard @@ -140,22 +150,6 @@ __metadata: languageName: node linkType: hard -"@isaacs/balanced-match@npm:^4.0.1": - version: 4.0.1 - resolution: "@isaacs/balanced-match@npm:4.0.1" - checksum: 10c0/7da011805b259ec5c955f01cee903da72ad97c5e6f01ca96197267d3f33103d5b2f8a1af192140f3aa64526c593c8d098ae366c2b11f7f17645d12387c2fd420 - languageName: node - linkType: hard - -"@isaacs/brace-expansion@npm:^5.0.0": - version: 5.0.0 - resolution: "@isaacs/brace-expansion@npm:5.0.0" - dependencies: - "@isaacs/balanced-match": "npm:^4.0.1" - checksum: 10c0/b4d4812f4be53afc2c5b6c545001ff7a4659af68d4484804e9d514e183d20269bb81def8682c01a22b17c4d6aed14292c8494f7d2ac664e547101c1a905aa977 - languageName: node - linkType: hard - "@isaacs/cliui@npm:^8.0.2": version: 8.0.2 resolution: "@isaacs/cliui@npm:8.0.2" @@ -204,28 +198,6 @@ __metadata: languageName: node linkType: hard -"@npmcli/agent@npm:^4.0.0": - version: 4.0.0 - resolution: "@npmcli/agent@npm:4.0.0" - dependencies: - agent-base: "npm:^7.1.0" - http-proxy-agent: "npm:^7.0.0" - https-proxy-agent: "npm:^7.0.1" - lru-cache: "npm:^11.2.1" - socks-proxy-agent: "npm:^8.0.3" - checksum: 10c0/f7b5ce0f3dd42c3f8c6546e8433573d8049f67ef11ec22aa4704bc41483122f68bf97752e06302c455ead667af5cb753e6a09bff06632bc465c1cfd4c4b75a53 - languageName: node - linkType: hard - -"@npmcli/fs@npm:^5.0.0": - version: 5.0.0 - resolution: "@npmcli/fs@npm:5.0.0" - dependencies: - semver: "npm:^7.3.5" - checksum: 10c0/26e376d780f60ff16e874a0ac9bc3399186846baae0b6e1352286385ac134d900cc5dafaded77f38d77f86898fc923ae1cee9d7399f0275b1aa24878915d722b - languageName: node - linkType: hard - "@paralleldrive/cuid2@npm:^2.2.2": version: 2.3.1 resolution: "@paralleldrive/cuid2@npm:2.3.1" @@ -320,11 +292,11 @@ __metadata: linkType: hard "@types/node@npm:*": - version: 25.0.9 - resolution: "@types/node@npm:25.0.9" + version: 25.6.0 + resolution: "@types/node@npm:25.6.0" dependencies: - undici-types: "npm:~7.16.0" - checksum: 10c0/a757efafe303d9c8833eb53c2e9a0981cd5ac725cdc04c5612a71db86468c938778d4fa328be4231b68fffc68258638764df7b9c69e86cf55f0bb67105eb056f + undici-types: "npm:~7.19.0" + checksum: 10c0/d2d2015630ff098a201407f55f5077a20270ae4f465c739b40865cd9933b91b9c5d2b85568eadaf3db0801b91e267333ca7eb39f007428b173d1cdab4b339ac5 languageName: node linkType: hard @@ -433,18 +405,11 @@ __metadata: linkType: hard "acorn@npm:^8.15.0": - version: 8.15.0 - resolution: "acorn@npm:8.15.0" + version: 8.16.0 + resolution: "acorn@npm:8.16.0" bin: acorn: bin/acorn - checksum: 10c0/dec73ff59b7d6628a01eebaece7f2bdb8bb62b9b5926dcad0f8931f2b8b79c2be21f6c68ac095592adb5adb15831a3635d9343e6a91d028bbe85d564875ec3ec - languageName: node - linkType: hard - -"agent-base@npm:^7.1.0, agent-base@npm:^7.1.2": - version: 7.1.4 - resolution: "agent-base@npm:7.1.4" - checksum: 10c0/c2c9ab7599692d594b6a161559ada307b7a624fa4c7b03e3afdb5a5e31cd0e53269115b620fcab024c5ac6a6f37fa5eb2e004f076ad30f5f7e6b8b671f7b35fe + checksum: 10c0/c9c52697227661b68d0debaf972222d4f622aa06b185824164e153438afa7b08273432ca43ea792cadb24dada1d46f6f6bb1ef8de9956979288cc1b96bf9914e languageName: node linkType: hard @@ -462,27 +427,27 @@ __metadata: languageName: node linkType: hard -"ajv@npm:^6.12.3, ajv@npm:^6.12.4": - version: 6.12.6 - resolution: "ajv@npm:6.12.6" +"ajv@npm:^6.12.3, ajv@npm:^6.14.0": + version: 6.15.0 + resolution: "ajv@npm:6.15.0" dependencies: fast-deep-equal: "npm:^3.1.1" fast-json-stable-stringify: "npm:^2.0.0" json-schema-traverse: "npm:^0.4.1" uri-js: "npm:^4.2.2" - checksum: 10c0/41e23642cbe545889245b9d2a45854ebba51cda6c778ebced9649420d9205f2efb39cb43dbc41e358409223b1ea43303ae4839db682c848b891e4811da1a5a71 + checksum: 10c0/67966499dd272ecde1c2e467084411132891523d057487587879d39ac04207f4351b7b2324c83198013967fbfa632c1612adc960114a30770fbe07a0773b32c2 languageName: node linkType: hard "ajv@npm:^8.0.0, ajv@npm:^8.1.0, ajv@npm:^8.4.0": - version: 8.17.1 - resolution: "ajv@npm:8.17.1" + version: 8.20.0 + resolution: "ajv@npm:8.20.0" dependencies: fast-deep-equal: "npm:^3.1.3" fast-uri: "npm:^3.0.1" json-schema-traverse: "npm:^1.0.0" require-from-string: "npm:^2.0.2" - checksum: 10c0/ec3ba10a573c6b60f94639ffc53526275917a2df6810e4ab5a6b959d87459f9ef3f00d5e7865b82677cb7d21590355b34da14d1d0b9c32d75f95a187e76fff35 + checksum: 10c0/5df9a1c8f83863cde1bd3a9ddb426f599718f88e3dc9153616c79fb28e0be455335830d7f21d745576519f057b371352daa31047b6a33d7036fe08777d60cf2a languageName: node linkType: hard @@ -543,7 +508,7 @@ __metadata: languageName: node linkType: hard -"ansi-regex@npm:^6.0.1": +"ansi-regex@npm:^6.2.2": version: 6.2.2 resolution: "ansi-regex@npm:6.2.2" checksum: 10c0/05d4acb1d2f59ab2cf4b794339c7b168890d44dda4bf0ce01152a8da0213aca207802f930442ce8cd22d7a92f44907664aac6508904e75e038fa944d2601b30f @@ -956,6 +921,13 @@ __metadata: languageName: node linkType: hard +"async-generator-function@npm:^1.0.0": + version: 1.0.0 + resolution: "async-generator-function@npm:1.0.0" + checksum: 10c0/2c50ef856c543ad500d8d8777d347e3c1ba623b93e99c9263ecc5f965c1b12d2a140e2ab6e43c3d0b85366110696f28114649411cbcd10b452a92a2318394186 + languageName: node + linkType: hard + "async-settle@npm:^1.0.0": version: 1.0.0 resolution: "async-settle@npm:1.0.0" @@ -1044,25 +1016,25 @@ __metadata: linkType: hard "axios@npm:^1.12.0": - version: 1.13.2 - resolution: "axios@npm:1.13.2" + version: 1.16.0 + resolution: "axios@npm:1.16.0" dependencies: - follow-redirects: "npm:^1.15.6" - form-data: "npm:^4.0.4" - proxy-from-env: "npm:^1.1.0" - checksum: 10c0/e8a42e37e5568ae9c7a28c348db0e8cf3e43d06fcbef73f0048669edfe4f71219664da7b6cc991b0c0f01c28a48f037c515263cb79be1f1ae8ff034cd813867b + follow-redirects: "npm:^1.16.0" + form-data: "npm:^4.0.5" + proxy-from-env: "npm:^2.1.0" + checksum: 10c0/1c91a5221b77b76072026b4cc95ecdf38f7c3e33e63423abec09a85e6e9a12279637dcc9ac2ba1fc333e0c447fb3b0f46d7965acb5d7cea02d188e9c6d425c0b languageName: node linkType: hard "b4a@npm:^1.6.4": - version: 1.7.3 - resolution: "b4a@npm:1.7.3" + version: 1.8.1 + resolution: "b4a@npm:1.8.1" peerDependencies: react-native-b4a: "*" peerDependenciesMeta: react-native-b4a: optional: true - checksum: 10c0/ac16d186e00fa0d16de1f1a4af413953bc762d50d5a0e382aaa744a13886600313b7293403ad77fc83f6b1489c3fc2610494d1026754a51d1b7cdac2115a7598 + checksum: 10c0/344d8c94b244ec7a9cb516ea43a98216312454cb72478e4b7628a679ee343be237564c53bbe73995ab10ea9bc923b420236081b180b3cf78fd0c945bfc886798 languageName: node linkType: hard @@ -1101,6 +1073,13 @@ __metadata: languageName: node linkType: hard +"balanced-match@npm:^4.0.2": + version: 4.0.4 + resolution: "balanced-match@npm:4.0.4" + checksum: 10c0/07e86102a3eb2ee2a6a1a89164f29d0dbaebd28f2ca3f5ca786f36b8b23d9e417eb3be45a4acf754f837be5ac0a2317de90d3fcb7f4f4dc95720a1f36b26a17b + languageName: node + linkType: hard + "bare-events@npm:^2.7.0": version: 2.8.2 resolution: "bare-events@npm:2.8.2" @@ -1209,8 +1188,8 @@ __metadata: linkType: hard "body-parser@npm:^1.20.3, body-parser@npm:~1.20.3": - version: 1.20.4 - resolution: "body-parser@npm:1.20.4" + version: 1.20.5 + resolution: "body-parser@npm:1.20.5" dependencies: bytes: "npm:~3.1.2" content-type: "npm:~1.0.5" @@ -1220,30 +1199,39 @@ __metadata: http-errors: "npm:~2.0.1" iconv-lite: "npm:~0.4.24" on-finished: "npm:~2.4.1" - qs: "npm:~6.14.0" + qs: "npm:~6.15.1" raw-body: "npm:~2.5.3" type-is: "npm:~1.6.18" unpipe: "npm:~1.0.0" - checksum: 10c0/569c1e896297d1fcd8f34026c8d0ab70b90d45343c15c5d8dff5de2bad08125fc1e2f8c2f3f4c1ac6c0caaad115218202594d37dcb8d89d9b5dcae1c2b736aa9 + checksum: 10c0/ad777ca5e4711eae253c93f50fdc4608c60b76a9710d79e5e5b84581c76691e6ad21ecc9158986d9ea2b365df73e403ca33c27a8bccc1a7cfc2ccc248548118d languageName: node linkType: hard "brace-expansion@npm:^1.1.7": - version: 1.1.12 - resolution: "brace-expansion@npm:1.1.12" + version: 1.1.14 + resolution: "brace-expansion@npm:1.1.14" dependencies: balanced-match: "npm:^1.0.0" concat-map: "npm:0.0.1" - checksum: 10c0/975fecac2bb7758c062c20d0b3b6288c7cc895219ee25f0a64a9de662dbac981ff0b6e89909c3897c1f84fa353113a721923afdec5f8b2350255b097f12b1f73 + checksum: 10c0/b6fdac832bc4e36a753658c9ed052c2e1a2be221763b002df25d1efbf7d21724334e726a6cd5eadc72a4b19ec3efb632d629cc003bc9c62f7af7a7915ffa4385 languageName: node linkType: hard -"brace-expansion@npm:^2.0.1": - version: 2.0.2 - resolution: "brace-expansion@npm:2.0.2" +"brace-expansion@npm:^2.0.1, brace-expansion@npm:^2.0.2": + version: 2.1.0 + resolution: "brace-expansion@npm:2.1.0" dependencies: balanced-match: "npm:^1.0.0" - checksum: 10c0/6d117a4c793488af86b83172deb6af143e94c17bc53b0b3cec259733923b4ca84679d506ac261f4ba3c7ed37c46018e2ff442f9ce453af8643ecd64f4a54e6cf + checksum: 10c0/439cedf3e23d7993b37919f1d6fdc653ec21a42437ec3e7460bea9ca8b17edf7a24a633273c31d61aa4335877cf29a443f1871814131c87997a1e6223e1f1502 + languageName: node + linkType: hard + +"brace-expansion@npm:^5.0.5": + version: 5.0.5 + resolution: "brace-expansion@npm:5.0.5" + dependencies: + balanced-match: "npm:^4.0.2" + checksum: 10c0/4d238e14ed4f5cc9c07285550a41cef23121ca08ba99fa9eb5b55b580dcb6bf868b8210aa10526bdc9f8dc97f33ca2a7259039c4cc131a93042beddb424c48e3 languageName: node linkType: hard @@ -1322,25 +1310,6 @@ __metadata: languageName: node linkType: hard -"cacache@npm:^20.0.1": - version: 20.0.3 - resolution: "cacache@npm:20.0.3" - dependencies: - "@npmcli/fs": "npm:^5.0.0" - fs-minipass: "npm:^3.0.0" - glob: "npm:^13.0.0" - lru-cache: "npm:^11.1.0" - minipass: "npm:^7.0.3" - minipass-collect: "npm:^2.0.1" - minipass-flush: "npm:^1.0.5" - minipass-pipeline: "npm:^1.2.4" - p-map: "npm:^7.0.2" - ssri: "npm:^13.0.0" - unique-filename: "npm:^5.0.0" - checksum: 10c0/c7da1ca694d20e8f8aedabd21dc11518f809a7d2b59aa76a1fc655db5a9e62379e465c157ddd2afe34b19230808882288effa6911b2de26a088a6d5645123462 - languageName: node - linkType: hard - "cache-base@npm:^1.0.1": version: 1.0.1 resolution: "cache-base@npm:1.0.1" @@ -1358,7 +1327,7 @@ __metadata: languageName: node linkType: hard -"call-bind-apply-helpers@npm:^1.0.0, call-bind-apply-helpers@npm:^1.0.1, call-bind-apply-helpers@npm:^1.0.2": +"call-bind-apply-helpers@npm:^1.0.1, call-bind-apply-helpers@npm:^1.0.2": version: 1.0.2 resolution: "call-bind-apply-helpers@npm:1.0.2" dependencies: @@ -1368,15 +1337,15 @@ __metadata: languageName: node linkType: hard -"call-bind@npm:^1.0.7, call-bind@npm:^1.0.8": - version: 1.0.8 - resolution: "call-bind@npm:1.0.8" +"call-bind@npm:^1.0.7, call-bind@npm:^1.0.8, call-bind@npm:^1.0.9": + version: 1.0.9 + resolution: "call-bind@npm:1.0.9" dependencies: - call-bind-apply-helpers: "npm:^1.0.0" - es-define-property: "npm:^1.0.0" - get-intrinsic: "npm:^1.2.4" + call-bind-apply-helpers: "npm:^1.0.2" + es-define-property: "npm:^1.0.1" + get-intrinsic: "npm:^1.3.0" set-function-length: "npm:^1.2.2" - checksum: 10c0/a13819be0681d915144467741b69875ae5f4eba8961eb0bf322aab63ec87f8250eb6d6b0dcbb2e1349876412a56129ca338592b3829ef4343527f5f18a0752d4 + checksum: 10c0/a6621f6da1444481919ce3b4983dff725691e0754d3507ae483ce56e54985f2da7d6f1df512c56dbf28660745cf1ca52553f1fc9aef5557f3ce353ef14fab714 languageName: node linkType: hard @@ -1983,12 +1952,12 @@ __metadata: linkType: hard "cors@npm:^2.8.5": - version: 2.8.5 - resolution: "cors@npm:2.8.5" + version: 2.8.6 + resolution: "cors@npm:2.8.6" dependencies: object-assign: "npm:^4" vary: "npm:^1" - checksum: 10c0/373702b7999409922da80de4a61938aabba6929aea5b6fd9096fefb9e8342f626c0ebd7507b0e8b0b311380744cc985f27edebc0a26e0ddb784b54e1085de761 + checksum: 10c0/ab2bc57b8af8ef8476682a59647f7c55c1a7d406b559ac06119aa1c5f70b96d35036864d197b24cf86e228e4547231088f1f94ca05061dbb14d89cc0bc9d4cab languageName: node linkType: hard @@ -2048,24 +2017,24 @@ __metadata: languageName: node linkType: hard -"csv-generate@npm:^4.5.0": - version: 4.5.0 - resolution: "csv-generate@npm:4.5.0" - checksum: 10c0/81ccb33ff055e163e70694fb67f7bba0ac5431285f5b0a9cff1df2730982c901611f003192ede54dfbd6f50b4a747c94de852d120135a472e532d13014b7d141 +"csv-generate@npm:^4.5.1": + version: 4.5.1 + resolution: "csv-generate@npm:4.5.1" + checksum: 10c0/2598679fdaf211d928e13321d32a349d9c60798bf7191d00e73c32a03a790f41e5744076f730ef5ca9896a8f24b2c5f5ee1c91c5a6e396d2300499d4bdfbeb71 languageName: node linkType: hard -"csv-parse@npm:^6.1.0": - version: 6.1.0 - resolution: "csv-parse@npm:6.1.0" - checksum: 10c0/098c69e5b3b50d4bf65401dc3b2f1bd66f272fe985be99d7cb9f14ad33a7218f0f5695a03a82720cf47141d242bf44b4836ff32900751bef087057bc6e6715a2 +"csv-parse@npm:^6.2.1": + version: 6.2.1 + resolution: "csv-parse@npm:6.2.1" + checksum: 10c0/8b6f14b244ca62476d4217aac721131ba0ada3e4ed7614e43ebc99203807564dcb054144d1de4ef22ee8b0c63b431640f75d46a0e1e0f72853a954b279ba1c61 languageName: node linkType: hard -"csv-stringify@npm:^6.6.0": - version: 6.6.0 - resolution: "csv-stringify@npm:6.6.0" - checksum: 10c0/2e5b14ff1e434aba7b8cae74faa0329c1d967654820f2ae3f358a660b5887ab623224ed8eb7f3ab6d0f7342663c965ca079ca420b6046210709f72e8aec87d94 +"csv-stringify@npm:^6.7.0": + version: 6.7.0 + resolution: "csv-stringify@npm:6.7.0" + checksum: 10c0/2f1272e0462c31935650b42f34cb5dafbbc9a3b479074283ec4ed6491756c791d2d6230226c530198d85002d4d3f3b69da14b1f424ab93ad3263124ea25e5ea3 languageName: node linkType: hard @@ -2082,14 +2051,14 @@ __metadata: linkType: hard "csv@npm:^6.4.1": - version: 6.4.1 - resolution: "csv@npm:6.4.1" + version: 6.5.1 + resolution: "csv@npm:6.5.1" dependencies: - csv-generate: "npm:^4.5.0" - csv-parse: "npm:^6.1.0" - csv-stringify: "npm:^6.6.0" - stream-transform: "npm:^3.4.0" - checksum: 10c0/d447df1edcfe9cfe8e7ac42d8934cadcd1c78bac1e754fac9905c194c40436f24a5e82897f8c52a8293db7724a843ab5025e53d165b785953118aedd5935757b + csv-generate: "npm:^4.5.1" + csv-parse: "npm:^6.2.1" + csv-stringify: "npm:^6.7.0" + stream-transform: "npm:^3.4.1" + checksum: 10c0/95444da3df818d0c6888c57a5c1a8ff49a616939e6e8c7bba7cb4a9f6634e92aa5a2e4121cf8d225bbc418a12fe09b45f1db0cfae89b644f998b5ea73f29a064 languageName: node linkType: hard @@ -2168,7 +2137,16 @@ __metadata: languageName: node linkType: hard -"debug@npm:4, debug@npm:^4, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4, debug@npm:^4.3.5, debug@npm:^4.3.7": +"debug@npm:^3.1.0, debug@npm:^3.2.7": + version: 3.2.7 + resolution: "debug@npm:3.2.7" + dependencies: + ms: "npm:^2.1.1" + checksum: 10c0/37d96ae42cbc71c14844d2ae3ba55adf462ec89fd3a999459dec3833944cd999af6007ff29c780f1c61153bcaaf2c842d1e4ce1ec621e4fc4923244942e4a02a + languageName: node + linkType: hard + +"debug@npm:^4, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4, debug@npm:^4.3.5, debug@npm:^4.3.7": version: 4.4.3 resolution: "debug@npm:4.4.3" dependencies: @@ -2180,15 +2158,6 @@ __metadata: languageName: node linkType: hard -"debug@npm:^3.1.0, debug@npm:^3.2.7": - version: 3.2.7 - resolution: "debug@npm:3.2.7" - dependencies: - ms: "npm:^2.1.1" - checksum: 10c0/37d96ae42cbc71c14844d2ae3ba55adf462ec89fd3a999459dec3833944cd999af6007ff29c780f1c61153bcaaf2c842d1e4ce1ec621e4fc4923244942e4a02a - languageName: node - linkType: hard - "decamelize@npm:^1.0.0, decamelize@npm:^1.1.1": version: 1.2.0 resolution: "decamelize@npm:1.2.0" @@ -2466,15 +2435,6 @@ __metadata: languageName: node linkType: hard -"encoding@npm:^0.1.13": - version: 0.1.13 - resolution: "encoding@npm:0.1.13" - dependencies: - iconv-lite: "npm:^0.6.2" - checksum: 10c0/36d938712ff00fe1f4bac88b43bcffb5930c1efa57bbcdca9d67e1d9d6c57cfb1200fb01efe0f3109b2ce99b231f90779532814a81370a1bd3274a0f58585039 - languageName: node - linkType: hard - "end-of-stream@npm:^1.0.0, end-of-stream@npm:^1.1.0, end-of-stream@npm:^1.4.4": version: 1.4.5 resolution: "end-of-stream@npm:1.4.5" @@ -2491,13 +2451,6 @@ __metadata: languageName: node linkType: hard -"err-code@npm:^2.0.2": - version: 2.0.3 - resolution: "err-code@npm:2.0.3" - checksum: 10c0/b642f7b4dd4a376e954947550a3065a9ece6733ab8e51ad80db727aaae0817c2e99b02a97a3d6cecc648a97848305e728289cf312d09af395403a90c9d4d8a66 - languageName: node - linkType: hard - "error-ex@npm:^1.2.0": version: 1.3.4 resolution: "error-ex@npm:1.3.4" @@ -2508,8 +2461,8 @@ __metadata: linkType: hard "es-abstract@npm:^1.23.2, es-abstract@npm:^1.23.5, es-abstract@npm:^1.23.9, es-abstract@npm:^1.24.0": - version: 1.24.1 - resolution: "es-abstract@npm:1.24.1" + version: 1.24.2 + resolution: "es-abstract@npm:1.24.2" dependencies: array-buffer-byte-length: "npm:^1.0.2" arraybuffer.prototype.slice: "npm:^1.0.4" @@ -2565,7 +2518,7 @@ __metadata: typed-array-length: "npm:^1.0.7" unbox-primitive: "npm:^1.1.0" which-typed-array: "npm:^1.1.19" - checksum: 10c0/fca062ef8b5daacf743732167d319a212d45cb655b0bb540821d38d715416ae15b04b84fc86da9e2c89135aa7b337337b6c867f84dcde698d75d55688d5d765c + checksum: 10c0/67a5bf21ef5c7d775e6f6131a836323900b4d87194cf544394ac68fe31c57fa53828b978af4a4f551ef307f83a2f910a16b6b982760ad3ddc3dc471f98d5fd1b languageName: node linkType: hard @@ -2720,13 +2673,13 @@ __metadata: linkType: hard "eslint-import-resolver-node@npm:^0.3.9": - version: 0.3.9 - resolution: "eslint-import-resolver-node@npm:0.3.9" + version: 0.3.10 + resolution: "eslint-import-resolver-node@npm:0.3.10" dependencies: debug: "npm:^3.2.7" - is-core-module: "npm:^2.13.0" - resolve: "npm:^1.22.4" - checksum: 10c0/0ea8a24a72328a51fd95aa8f660dcca74c1429806737cf10261ab90cfcaaf62fd1eff664b76a44270868e0a932711a81b250053942595bcd00a93b1c1575dd61 + is-core-module: "npm:^2.16.1" + resolve: "npm:^2.0.0-next.6" + checksum: 10c0/2e05bdb148fe10a25b9a6fec3c4986a2e09e98bb99208491df82a9df7725f7bb312482d585404c440d42e58ab60debe7a48d9c992191851385b18d33a146e3c3 languageName: node linkType: hard @@ -2856,22 +2809,22 @@ __metadata: linkType: hard "eslint@npm:^9.39.2": - version: 9.39.2 - resolution: "eslint@npm:9.39.2" + version: 9.39.4 + resolution: "eslint@npm:9.39.4" dependencies: "@eslint-community/eslint-utils": "npm:^4.8.0" "@eslint-community/regexpp": "npm:^4.12.1" - "@eslint/config-array": "npm:^0.21.1" + "@eslint/config-array": "npm:^0.21.2" "@eslint/config-helpers": "npm:^0.4.2" "@eslint/core": "npm:^0.17.0" - "@eslint/eslintrc": "npm:^3.3.1" - "@eslint/js": "npm:9.39.2" + "@eslint/eslintrc": "npm:^3.3.5" + "@eslint/js": "npm:9.39.4" "@eslint/plugin-kit": "npm:^0.4.1" "@humanfs/node": "npm:^0.16.6" "@humanwhocodes/module-importer": "npm:^1.0.1" "@humanwhocodes/retry": "npm:^0.4.2" "@types/estree": "npm:^1.0.6" - ajv: "npm:^6.12.4" + ajv: "npm:^6.14.0" chalk: "npm:^4.0.0" cross-spawn: "npm:^7.0.6" debug: "npm:^4.3.2" @@ -2890,7 +2843,7 @@ __metadata: is-glob: "npm:^4.0.0" json-stable-stringify-without-jsonify: "npm:^1.0.1" lodash.merge: "npm:^4.6.2" - minimatch: "npm:^3.1.2" + minimatch: "npm:^3.1.5" natural-compare: "npm:^1.4.0" optionator: "npm:^0.9.3" peerDependencies: @@ -2900,7 +2853,7 @@ __metadata: optional: true bin: eslint: bin/eslint.js - checksum: 10c0/bb88ca8fd16bb7e1ac3e13804c54d41c583214460c0faa7b3e7c574e69c5600c7122295500fb4b0c06067831111db740931e98da1340329527658e1cf80073d3 + checksum: 10c0/1955067c2d991f0c84f4c4abfafe31bb47fa3b717a7fd3e43fe1e511c6f859d7700cbca969f85661dc4c130f7aeced5e5444884314198a54428f5e5141db9337 languageName: node linkType: hard @@ -3234,9 +3187,9 @@ __metadata: linkType: hard "fast-uri@npm:^3.0.1": - version: 3.1.0 - resolution: "fast-uri@npm:3.1.0" - checksum: 10c0/44364adca566f70f40d1e9b772c923138d47efeac2ae9732a872baafd77061f26b097ba2f68f0892885ad177becd065520412b8ffeec34b16c99433c5b9e2de7 + version: 3.1.1 + resolution: "fast-uri@npm:3.1.1" + checksum: 10c0/fa30e1cbc7de09be9f83a9101035910bc280c7863934e932f66480d872bcf42413f4d1f201c75432b4faa4db3377aa44cb08b1c0172574473afc60b0c0d497b0 languageName: node linkType: hard @@ -3285,11 +3238,11 @@ __metadata: linkType: hard "filelist@npm:^1.0.4": - version: 1.0.4 - resolution: "filelist@npm:1.0.4" + version: 1.0.6 + resolution: "filelist@npm:1.0.6" dependencies: minimatch: "npm:^5.0.1" - checksum: 10c0/426b1de3944a3d153b053f1c0ebfd02dccd0308a4f9e832ad220707a6d1f1b3c9784d6cadf6b2f68f09a57565f63ebc7bcdc913ccf8012d834f472c46e596f41 + checksum: 10c0/6ee725bec3e1936d680a45f14439b224d9f7c71658c145addcf551dd82f03d608522eb6b191aa086b392bc3e52ed4ce0ed8d78e24b203e6c5e867560a05d1121 languageName: node linkType: hard @@ -3445,9 +3398,9 @@ __metadata: linkType: hard "flatted@npm:^3.2.9": - version: 3.3.3 - resolution: "flatted@npm:3.3.3" - checksum: 10c0/e957a1c6b0254aa15b8cce8533e24165abd98fadc98575db082b786b5da1b7d72062b81bfdcd1da2f4d46b6ed93bec2434e62333e9b4261d79ef2e75a10dd538 + version: 3.4.2 + resolution: "flatted@npm:3.4.2" + checksum: 10c0/a65b67aae7172d6cdf63691be7de6c5cd5adbdfdfe2e9da1a09b617c9512ed794037741ee53d93114276bff3f93cd3b0d97d54f9b316e1e4885dde6e9ffdf7ed languageName: node linkType: hard @@ -3461,13 +3414,13 @@ __metadata: languageName: node linkType: hard -"follow-redirects@npm:^1.14.0, follow-redirects@npm:^1.15.6": - version: 1.15.11 - resolution: "follow-redirects@npm:1.15.11" +"follow-redirects@npm:^1.14.0, follow-redirects@npm:^1.16.0": + version: 1.16.0 + resolution: "follow-redirects@npm:1.16.0" peerDependenciesMeta: debug: optional: true - checksum: 10c0/d301f430542520a54058d4aeeb453233c564aaccac835d29d15e050beb33f339ad67d9bddbce01739c5dc46a6716dbe3d9d0d5134b1ca203effa11a7ef092343 + checksum: 10c0/a1e2900163e6f1b4d1ed5c221b607f41decbab65534c63fe7e287e40a5d552a6496e7d9d7d976fa4ba77b4c51c11e5e9f683f10b43011ea11e442ff128d0e181 languageName: node linkType: hard @@ -3527,7 +3480,7 @@ __metadata: languageName: node linkType: hard -"form-data@npm:^4.0.0, form-data@npm:^4.0.4, form-data@npm:^4.0.5": +"form-data@npm:^4.0.0, form-data@npm:^4.0.5": version: 4.0.5 resolution: "form-data@npm:4.0.5" dependencies: @@ -3637,15 +3590,6 @@ __metadata: languageName: node linkType: hard -"fs-minipass@npm:^3.0.0": - version: 3.0.3 - resolution: "fs-minipass@npm:3.0.3" - dependencies: - minipass: "npm:^7.0.3" - checksum: 10c0/63e80da2ff9b621e2cb1596abcb9207f1cf82b968b116ccd7b959e3323144cce7fb141462200971c38bbf2ecca51695069db45265705bed09a7cd93ae5b89f94 - languageName: node - linkType: hard - "fs-mkdirp-stream@npm:^1.0.0": version: 1.0.0 resolution: "fs-mkdirp-stream@npm:1.0.0" @@ -3770,20 +3714,23 @@ __metadata: linkType: hard "get-intrinsic@npm:^1.2.4, get-intrinsic@npm:^1.2.5, get-intrinsic@npm:^1.2.6, get-intrinsic@npm:^1.2.7, get-intrinsic@npm:^1.3.0": - version: 1.3.0 - resolution: "get-intrinsic@npm:1.3.0" + version: 1.3.1 + resolution: "get-intrinsic@npm:1.3.1" dependencies: + async-function: "npm:^1.0.0" + async-generator-function: "npm:^1.0.0" call-bind-apply-helpers: "npm:^1.0.2" es-define-property: "npm:^1.0.1" es-errors: "npm:^1.3.0" es-object-atoms: "npm:^1.1.1" function-bind: "npm:^1.1.2" + generator-function: "npm:^2.0.0" get-proto: "npm:^1.0.1" gopd: "npm:^1.2.0" has-symbols: "npm:^1.1.0" hasown: "npm:^2.0.2" math-intrinsics: "npm:^1.1.0" - checksum: 10c0/52c81808af9a8130f581e6a6a83e1ba4a9f703359e7a438d1369a5267a25412322f03dcbd7c549edaef0b6214a0630a28511d7df0130c93cfd380f4fa0b5b66a + checksum: 10c0/9f4ab0cf7efe0fd2c8185f52e6f637e708f3a112610c88869f8f041bb9ecc2ce44bf285dfdbdc6f4f7c277a5b88d8e94a432374d97cca22f3de7fc63795deb5d languageName: node linkType: hard @@ -3934,17 +3881,6 @@ __metadata: languageName: node linkType: hard -"glob@npm:^13.0.0": - version: 13.0.0 - resolution: "glob@npm:13.0.0" - dependencies: - minimatch: "npm:^10.1.1" - minipass: "npm:^7.1.2" - path-scurry: "npm:^2.0.0" - checksum: 10c0/8e2f5821f3f7c312dd102e23a15b80c79e0837a9872784293ba2e15ec73b3f3749a49a42a31bfcb4e52c84820a474e92331c2eebf18819d20308f5c33876630a - languageName: node - linkType: hard - "glob@npm:^7.0.5, glob@npm:^7.1.1": version: 7.2.3 resolution: "glob@npm:7.2.3" @@ -4198,8 +4134,8 @@ __metadata: linkType: hard "handlebars@npm:^4.1.2": - version: 4.7.8 - resolution: "handlebars@npm:4.7.8" + version: 4.7.9 + resolution: "handlebars@npm:4.7.9" dependencies: minimist: "npm:^1.2.5" neo-async: "npm:^2.6.2" @@ -4211,7 +4147,7 @@ __metadata: optional: true bin: handlebars: bin/handlebars - checksum: 10c0/7aff423ea38a14bb379316f3857fe0df3c5d66119270944247f155ba1f08e07a92b340c58edaa00cfe985c21508870ee5183e0634dcb53dd405f35c93ef7f10d + checksum: 10c0/22f8105a7e68e81aff2662bb434edf05f757d21d850731d71cec886d69c10cd33d3c43e34b2892968ec62de8241611851d3d0674c8ef324ea3e01dc66262faa9 languageName: node linkType: hard @@ -4327,11 +4263,11 @@ __metadata: linkType: hard "hasown@npm:^2.0.0, hasown@npm:^2.0.2": - version: 2.0.2 - resolution: "hasown@npm:2.0.2" + version: 2.0.3 + resolution: "hasown@npm:2.0.3" dependencies: function-bind: "npm:^1.1.2" - checksum: 10c0/3769d434703b8ac66b209a4cca0737519925bbdb61dd887f93a16372b14694c63ff4e797686d87c90f08168e81082248b9b028bad60d4da9e0d1148766f56eb9 + checksum: 10c0/f5eb28c3fd0d3e4facd821c1eeee3836c37b70ab0b0fc532e8a39976e18fef43652415dadc52f8c7a5ff6d5ac93b7bef128789aa6f90f4e9b9a9083dce74ab38 languageName: node linkType: hard @@ -4367,13 +4303,6 @@ __metadata: languageName: node linkType: hard -"http-cache-semantics@npm:^4.1.1": - version: 4.2.0 - resolution: "http-cache-semantics@npm:4.2.0" - checksum: 10c0/45b66a945cf13ec2d1f29432277201313babf4a01d9e52f44b31ca923434083afeca03f18417f599c9ab3d0e7b618ceb21257542338b57c54b710463b4a53e37 - languageName: node - linkType: hard - "http-errors@npm:~2.0.0, http-errors@npm:~2.0.1": version: 2.0.1 resolution: "http-errors@npm:2.0.1" @@ -4387,16 +4316,6 @@ __metadata: languageName: node linkType: hard -"http-proxy-agent@npm:^7.0.0": - version: 7.0.2 - resolution: "http-proxy-agent@npm:7.0.2" - dependencies: - agent-base: "npm:^7.1.0" - debug: "npm:^4.3.4" - checksum: 10c0/4207b06a4580fb85dd6dff521f0abf6db517489e70863dca1a0291daa7f2d3d2d6015a57bd702af068ea5cf9f1f6ff72314f5f5b4228d299c0904135d2aef921 - languageName: node - linkType: hard - "http-signature@npm:~1.2.0": version: 1.2.0 resolution: "http-signature@npm:1.2.0" @@ -4408,16 +4327,6 @@ __metadata: languageName: node linkType: hard -"https-proxy-agent@npm:^7.0.1": - version: 7.0.6 - resolution: "https-proxy-agent@npm:7.0.6" - dependencies: - agent-base: "npm:^7.1.2" - debug: "npm:4" - checksum: 10c0/f729219bc735edb621fa30e6e84e60ee5d00802b8247aac0d7b79b0bd6d4b3294737a337b93b86a0bd9e68099d031858a39260c976dc14cdbba238ba1f8779ac - languageName: node - linkType: hard - "human-signals@npm:^5.0.0": version: 5.0.0 resolution: "human-signals@npm:5.0.0" @@ -4425,7 +4334,7 @@ __metadata: languageName: node linkType: hard -"iconv-lite@npm:^0.6.2, iconv-lite@npm:^0.6.3": +"iconv-lite@npm:^0.6.3": version: 0.6.3 resolution: "iconv-lite@npm:0.6.3" dependencies: @@ -4554,13 +4463,6 @@ __metadata: languageName: node linkType: hard -"ip-address@npm:^10.0.1": - version: 10.1.0 - resolution: "ip-address@npm:10.1.0" - checksum: 10c0/0103516cfa93f6433b3bd7333fa876eb21263912329bfa47010af5e16934eeeff86f3d2ae700a3744a137839ddfad62b900c7a445607884a49b5d1e32a3d7566 - languageName: node - linkType: hard - "ipaddr.js@npm:1.9.1": version: 1.9.1 resolution: "ipaddr.js@npm:1.9.1" @@ -4669,7 +4571,7 @@ __metadata: languageName: node linkType: hard -"is-core-module@npm:^2.13.0, is-core-module@npm:^2.16.1": +"is-core-module@npm:^2.16.1": version: 2.16.1 resolution: "is-core-module@npm:2.16.1" dependencies: @@ -5077,10 +4979,10 @@ __metadata: languageName: node linkType: hard -"isexe@npm:^3.1.1": - version: 3.1.1 - resolution: "isexe@npm:3.1.1" - checksum: 10c0/9ec257654093443eb0a528a9c8cbba9c0ca7616ccb40abd6dde7202734d96bb86e4ac0d764f0f8cd965856aacbff2f4ce23e730dc19dfb41e3b0d865ca6fdcc7 +"isexe@npm:^4.0.0": + version: 4.0.0 + resolution: "isexe@npm:4.0.0" + checksum: 10c0/5884815115bceac452877659a9c7726382531592f43dc29e5d48b7c4100661aed54018cb90bd36cb2eaeba521092570769167acbb95c18d39afdccbcca06c5ce languageName: node linkType: hard @@ -5315,15 +5217,15 @@ __metadata: linkType: hard "jsonfile@npm:^6.0.1": - version: 6.2.0 - resolution: "jsonfile@npm:6.2.0" + version: 6.2.1 + resolution: "jsonfile@npm:6.2.1" dependencies: graceful-fs: "npm:^4.1.6" universalify: "npm:^2.0.0" dependenciesMeta: graceful-fs: optional: true - checksum: 10c0/7f4f43b08d1869ded8a6822213d13ae3b99d651151d77efd1557ced0889c466296a7d9684e397bd126acf5eb2cfcb605808c3e681d0fdccd2fe5a04b47e76c0d + checksum: 10c0/e1abf000ecee9942d4d028a8e02dc752617face227d72afd1cfb2187e2433079e625bf82b807a313689db71b6472c6b2b389a2340d2798737b1199a39631c28a languageName: node linkType: hard @@ -5335,8 +5237,8 @@ __metadata: linkType: hard "jsonpath-plus@npm:^10.3.0": - version: 10.3.0 - resolution: "jsonpath-plus@npm:10.3.0" + version: 10.4.0 + resolution: "jsonpath-plus@npm:10.4.0" dependencies: "@jsep-plugin/assignment": "npm:^1.3.0" "@jsep-plugin/regex": "npm:^1.0.4" @@ -5344,7 +5246,7 @@ __metadata: bin: jsonpath: bin/jsonpath-cli.js jsonpath-plus: bin/jsonpath-cli.js - checksum: 10c0/f5ff53078ecab98e8afd1dcdb4488e528653fa5a03a32d671f52db1ae9c3236e6e072d75e1949a80929fd21b07603924a586f829b40ad35993fa0247fa4f7506 + checksum: 10c0/500ace17c7b8d084f9e1284e96761722600909b8ddc1f3a5b18f9152ad9e1d63a61e3d713abd6d7141d4b61e1f632f1eb67b57be6a220b17b215b95ba050af07 languageName: node linkType: hard @@ -5589,9 +5491,9 @@ __metadata: linkType: hard "lodash@npm:^4.17.10, lodash@npm:^4.17.15": - version: 4.17.21 - resolution: "lodash@npm:4.17.21" - checksum: 10c0/d8cbea072bb08655bb4c989da418994b073a608dffa608b09ac04b43a791b12aeae7cd7ad919aa4c925f33b48490b5cfe6c1f71d827956071dae2e7bb3a6b74c + version: 4.18.1 + resolution: "lodash@npm:4.18.1" + checksum: 10c0/757228fc68805c59789e82185135cf85f05d0b2d3d54631d680ca79ec21944ec8314d4533639a14b8bcfbd97a517e78960933041a5af17ecb693ec6eecb99a27 languageName: node linkType: hard @@ -5630,13 +5532,6 @@ __metadata: languageName: node linkType: hard -"lru-cache@npm:^11.0.0, lru-cache@npm:^11.1.0, lru-cache@npm:^11.2.1": - version: 11.2.5 - resolution: "lru-cache@npm:11.2.5" - checksum: 10c0/cc98958d25dddf1c8a8cbdc49588bd3b24450e8dfa78f32168fd188a20d4a0331c7406d0f3250c86a46619ee288056fd7a1195e8df56dc8a9592397f4fbd8e1d - languageName: node - linkType: hard - "lru-cache@npm:^4.0.1": version: 4.1.5 resolution: "lru-cache@npm:4.1.5" @@ -5647,25 +5542,6 @@ __metadata: languageName: node linkType: hard -"make-fetch-happen@npm:^15.0.0": - version: 15.0.3 - resolution: "make-fetch-happen@npm:15.0.3" - dependencies: - "@npmcli/agent": "npm:^4.0.0" - cacache: "npm:^20.0.1" - http-cache-semantics: "npm:^4.1.1" - minipass: "npm:^7.0.2" - minipass-fetch: "npm:^5.0.0" - minipass-flush: "npm:^1.0.5" - minipass-pipeline: "npm:^1.2.4" - negotiator: "npm:^1.0.0" - proc-log: "npm:^6.0.0" - promise-retry: "npm:^2.0.1" - ssri: "npm:^13.0.0" - checksum: 10c0/525f74915660be60b616bcbd267c4a5b59481b073ba125e45c9c3a041bb1a47a2bd0ae79d028eb6f5f95bf9851a4158423f5068539c3093621abb64027e8e461 - languageName: node - linkType: hard - "make-iterator@npm:^1.0.0": version: 1.0.1 resolution: "make-iterator@npm:1.0.1" @@ -5817,39 +5693,39 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:^10.1.1": - version: 10.1.1 - resolution: "minimatch@npm:10.1.1" +"minimatch@npm:^10.2.1": + version: 10.2.5 + resolution: "minimatch@npm:10.2.5" dependencies: - "@isaacs/brace-expansion": "npm:^5.0.0" - checksum: 10c0/c85d44821c71973d636091fddbfbffe62370f5ee3caf0241c5b60c18cd289e916200acb2361b7e987558cd06896d153e25d505db9fc1e43e6b4b6752e2702902 + brace-expansion: "npm:^5.0.5" + checksum: 10c0/6bb058bd6324104b9ec2f763476a35386d05079c1f5fe4fbf1f324a25237cd4534d6813ecd71f48208f4e635c1221899bef94c3c89f7df55698fe373aaae20fd languageName: node linkType: hard -"minimatch@npm:^3.0.4, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": - version: 3.1.2 - resolution: "minimatch@npm:3.1.2" +"minimatch@npm:^3.0.4, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2, minimatch@npm:^3.1.5": + version: 3.1.5 + resolution: "minimatch@npm:3.1.5" dependencies: brace-expansion: "npm:^1.1.7" - checksum: 10c0/0262810a8fc2e72cca45d6fd86bd349eee435eb95ac6aa45c9ea2180e7ee875ef44c32b55b5973ceabe95ea12682f6e3725cbb63d7a2d1da3ae1163c8b210311 + checksum: 10c0/2ecbdc0d33f07bddb0315a8b5afbcb761307a8778b48f0b312418ccbced99f104a2d17d8aca7573433c70e8ccd1c56823a441897a45e384ea76ef401a26ace70 languageName: node linkType: hard "minimatch@npm:^5.0.1, minimatch@npm:^5.1.6": - version: 5.1.6 - resolution: "minimatch@npm:5.1.6" + version: 5.1.9 + resolution: "minimatch@npm:5.1.9" dependencies: brace-expansion: "npm:^2.0.1" - checksum: 10c0/3defdfd230914f22a8da203747c42ee3c405c39d4d37ffda284dac5e45b7e1f6c49aa8be606509002898e73091ff2a3bbfc59c2c6c71d4660609f63aa92f98e3 + checksum: 10c0/4202718683815a7288b13e470160a4f9560cf392adef4f453927505817e01ef6b3476ecde13cfcaed17e7326dd3b69ad44eb2daeb19a217c5500f9277893f1d6 languageName: node linkType: hard "minimatch@npm:^9.0.4, minimatch@npm:^9.0.5": - version: 9.0.5 - resolution: "minimatch@npm:9.0.5" + version: 9.0.9 + resolution: "minimatch@npm:9.0.9" dependencies: - brace-expansion: "npm:^2.0.1" - checksum: 10c0/de96cf5e35bdf0eab3e2c853522f98ffbe9a36c37797778d2665231ec1f20a9447a7e567cb640901f89e4daaa95ae5d70c65a9e8aa2bb0019b6facbc3c0575ed + brace-expansion: "npm:^2.0.2" + checksum: 10c0/0b6a58530dbb00361745aa6c8cffaba4c90f551afe7c734830bd95fd88ebf469dd7355a027824ea1d09e37181cfeb0a797fb17df60c15ac174303ac110eb7e86 languageName: node linkType: hard @@ -5860,74 +5736,14 @@ __metadata: languageName: node linkType: hard -"minipass-collect@npm:^2.0.1": - version: 2.0.1 - resolution: "minipass-collect@npm:2.0.1" - dependencies: - minipass: "npm:^7.0.3" - checksum: 10c0/5167e73f62bb74cc5019594709c77e6a742051a647fe9499abf03c71dca75515b7959d67a764bdc4f8b361cf897fbf25e2d9869ee039203ed45240f48b9aa06e - languageName: node - linkType: hard - -"minipass-fetch@npm:^5.0.0": - version: 5.0.0 - resolution: "minipass-fetch@npm:5.0.0" - dependencies: - encoding: "npm:^0.1.13" - minipass: "npm:^7.0.3" - minipass-sized: "npm:^1.0.3" - minizlib: "npm:^3.0.1" - dependenciesMeta: - encoding: - optional: true - checksum: 10c0/9443aab5feab190972f84b64116e54e58dd87a58e62399cae0a4a7461b80568281039b7c3a38ba96453431ebc799d1e26999e548540156216729a4967cd5ef06 - languageName: node - linkType: hard - -"minipass-flush@npm:^1.0.5": - version: 1.0.5 - resolution: "minipass-flush@npm:1.0.5" - dependencies: - minipass: "npm:^3.0.0" - checksum: 10c0/2a51b63feb799d2bb34669205eee7c0eaf9dce01883261a5b77410c9408aa447e478efd191b4de6fc1101e796ff5892f8443ef20d9544385819093dbb32d36bd - languageName: node - linkType: hard - -"minipass-pipeline@npm:^1.2.4": - version: 1.2.4 - resolution: "minipass-pipeline@npm:1.2.4" - dependencies: - minipass: "npm:^3.0.0" - checksum: 10c0/cbda57cea20b140b797505dc2cac71581a70b3247b84480c1fed5ca5ba46c25ecc25f68bfc9e6dcb1a6e9017dab5c7ada5eab73ad4f0a49d84e35093e0c643f2 - languageName: node - linkType: hard - -"minipass-sized@npm:^1.0.3": - version: 1.0.3 - resolution: "minipass-sized@npm:1.0.3" - dependencies: - minipass: "npm:^3.0.0" - checksum: 10c0/298f124753efdc745cfe0f2bdfdd81ba25b9f4e753ca4a2066eb17c821f25d48acea607dfc997633ee5bf7b6dfffb4eee4f2051eb168663f0b99fad2fa4829cb - languageName: node - linkType: hard - -"minipass@npm:^3.0.0": - version: 3.3.6 - resolution: "minipass@npm:3.3.6" - dependencies: - yallist: "npm:^4.0.0" - checksum: 10c0/a114746943afa1dbbca8249e706d1d38b85ed1298b530f5808ce51f8e9e941962e2a5ad2e00eae7dd21d8a4aae6586a66d4216d1a259385e9d0358f0c1eba16c +"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.4, minipass@npm:^7.1.2": + version: 7.1.3 + resolution: "minipass@npm:7.1.3" + checksum: 10c0/539da88daca16533211ea5a9ee98dc62ff5742f531f54640dd34429e621955e91cc280a91a776026264b7f9f6735947629f920944e9c1558369e8bf22eb33fbb languageName: node linkType: hard -"minipass@npm:^5.0.0 || ^6.0.2 || ^7.0.0, minipass@npm:^7.0.2, minipass@npm:^7.0.3, minipass@npm:^7.0.4, minipass@npm:^7.1.2": - version: 7.1.2 - resolution: "minipass@npm:7.1.2" - checksum: 10c0/b0fd20bb9fb56e5fa9a8bfac539e8915ae07430a619e4b86ff71f5fc757ef3924b23b2c4230393af1eda647ed3d75739e4e0acb250a6b1eb277cf7f8fe449557 - languageName: node - linkType: hard - -"minizlib@npm:^3.0.1, minizlib@npm:^3.1.0": +"minizlib@npm:^3.1.0": version: 3.1.0 resolution: "minizlib@npm:3.1.0" dependencies: @@ -6110,11 +5926,11 @@ __metadata: linkType: hard "nan@npm:^2.12.1": - version: 2.25.0 - resolution: "nan@npm:2.25.0" + version: 2.26.2 + resolution: "nan@npm:2.26.2" dependencies: node-gyp: "npm:latest" - checksum: 10c0/add28b255a880f705f937b6276550ebc09274e8ea9d0e8f598f286c817aedfba22223844297840e597a478d7264537294f8c1eda0eb33a228b7aee57ecf52d45 + checksum: 10c0/ff204c964729279cf3abb8b170c77753ed36092e2235f11bfb0204dfd3e8cc2d5a3bcfdfd3b677f06a0743d7f835d873dce59f23a2dbf6fb671d9351cc655d73 languageName: node linkType: hard @@ -6158,13 +5974,6 @@ __metadata: languageName: node linkType: hard -"negotiator@npm:^1.0.0": - version: 1.0.0 - resolution: "negotiator@npm:1.0.0" - checksum: 10c0/4c559dd52669ea48e1914f9d634227c561221dd54734070791f999c52ed0ff36e437b2e07d5c1f6e32909fc625fe46491c16e4a8f0572567d4dd15c3a4fda04b - languageName: node - linkType: hard - "negotiator@npm:~0.6.4": version: 0.6.4 resolution: "negotiator@npm:0.6.4" @@ -6186,23 +5995,35 @@ __metadata: languageName: node linkType: hard +"node-exports-info@npm:^1.6.0": + version: 1.6.0 + resolution: "node-exports-info@npm:1.6.0" + dependencies: + array.prototype.flatmap: "npm:^1.3.3" + es-errors: "npm:^1.3.0" + object.entries: "npm:^1.1.9" + semver: "npm:^6.3.1" + checksum: 10c0/3613f21c60b047e66f168d3499a6be0060d89fb01ddceaa7032c2fb318aff12e4b9b111449c1a9aeb3b848bfdc1d4b6bc8fab327af692319597d21a1e7063692 + languageName: node + linkType: hard + "node-gyp@npm:latest": - version: 12.2.0 - resolution: "node-gyp@npm:12.2.0" + version: 12.3.0 + resolution: "node-gyp@npm:12.3.0" dependencies: env-paths: "npm:^2.2.0" exponential-backoff: "npm:^3.1.1" graceful-fs: "npm:^4.2.6" - make-fetch-happen: "npm:^15.0.0" nopt: "npm:^9.0.0" proc-log: "npm:^6.0.0" semver: "npm:^7.3.5" tar: "npm:^7.5.4" tinyglobby: "npm:^0.2.12" + undici: "npm:^6.25.0" which: "npm:^6.0.0" bin: node-gyp: bin/node-gyp.js - checksum: 10c0/3ed046746a5a7d90950cd8b0547332b06598443f31fe213ef4332a7174c7b7d259e1704835feda79b87d3f02e59d7791842aac60642ede4396ab25fdf0f8f759 + checksum: 10c0/9d9032b405cbe42f72a105259d9eb679376470c102df4a2dbaa51e07d59bf741dcffb85897087ea9d8318b9cabb824a8978af51508ae142f0239ae1e6a3c2329 languageName: node linkType: hard @@ -6241,13 +6062,13 @@ __metadata: linkType: hard "nodemon@npm:^3.1.4": - version: 3.1.11 - resolution: "nodemon@npm:3.1.11" + version: 3.1.14 + resolution: "nodemon@npm:3.1.14" dependencies: chokidar: "npm:^3.5.2" debug: "npm:^4" ignore-by-default: "npm:^1.0.1" - minimatch: "npm:^3.1.2" + minimatch: "npm:^10.2.1" pstree.remy: "npm:^1.1.8" semver: "npm:^7.5.3" simple-update-notifier: "npm:^2.0.0" @@ -6256,7 +6077,7 @@ __metadata: undefsafe: "npm:^2.0.5" bin: nodemon: bin/nodemon.js - checksum: 10c0/f3c17897146f680eaf93f5e1f53b1fd4acbd61e4f7526ec6cbcc993d1c14cee8c722c41b30aa8b101447f672d38e6d7b17c97e77540df191d724826bb16ce474 + checksum: 10c0/074f2056051a148ad11cda0d6c3f905bdef93a878792385f16e1dff0c63dcf07f23ebe1ab3763dca7314d0266e12129f066070545d817a205ee050a22eff50b0 languageName: node linkType: hard @@ -6429,6 +6250,18 @@ __metadata: languageName: node linkType: hard +"object.entries@npm:^1.1.9": + version: 1.1.9 + resolution: "object.entries@npm:1.1.9" + dependencies: + call-bind: "npm:^1.0.8" + call-bound: "npm:^1.0.4" + define-properties: "npm:^1.2.1" + es-object-atoms: "npm:^1.1.1" + checksum: 10c0/d4b8c1e586650407da03370845f029aa14076caca4e4d4afadbc69cfb5b78035fd3ee7be417141abdb0258fa142e59b11923b4c44d8b1255b28f5ffcc50da7db + languageName: node + linkType: hard + "object.fromentries@npm:^2.0.8": version: 2.0.8 resolution: "object.fromentries@npm:2.0.8" @@ -6685,13 +6518,6 @@ __metadata: languageName: node linkType: hard -"p-map@npm:^7.0.2": - version: 7.0.4 - resolution: "p-map@npm:7.0.4" - checksum: 10c0/a5030935d3cb2919d7e89454d1ce82141e6f9955413658b8c9403cfe379283770ed3048146b44cde168aa9e8c716505f196d5689db0ae3ce9a71521a2fef3abd - languageName: node - linkType: hard - "package-json-from-dist@npm:^1.0.0": version: 1.0.1 resolution: "package-json-from-dist@npm:1.0.1" @@ -6853,16 +6679,6 @@ __metadata: languageName: node linkType: hard -"path-scurry@npm:^2.0.0": - version: 2.0.1 - resolution: "path-scurry@npm:2.0.1" - dependencies: - lru-cache: "npm:^11.0.0" - minipass: "npm:^7.1.2" - checksum: 10c0/2a16ed0e81fbc43513e245aa5763354e25e787dab0d539581a6c3f0f967461a159ed6236b2559de23aa5b88e7dc32b469b6c47568833dd142a4b24b4f5cd2620 - languageName: node - linkType: hard - "path-to-regexp@npm:^1.7.0": version: 1.9.0 resolution: "path-to-regexp@npm:1.9.0" @@ -6873,9 +6689,9 @@ __metadata: linkType: hard "path-to-regexp@npm:~0.1.12": - version: 0.1.12 - resolution: "path-to-regexp@npm:0.1.12" - checksum: 10c0/1c6ff10ca169b773f3bba943bbc6a07182e332464704572962d277b900aeee81ac6aa5d060ff9e01149636c30b1f63af6e69dd7786ba6e0ddb39d4dee1f0645b + version: 0.1.13 + resolution: "path-to-regexp@npm:0.1.13" + checksum: 10c0/1cae3921739c154a8926e136185a10c916f79a249b9072a5001b266d96e193860ca03867e8e8cc808b786862d750f427ed93686bc259355442c3407a62deab1a languageName: node linkType: hard @@ -6905,9 +6721,9 @@ __metadata: linkType: hard "pg-connection-string@npm:^2.9.1": - version: 2.10.1 - resolution: "pg-connection-string@npm:2.10.1" - checksum: 10c0/f218a72b59c661022caca9a7f2116655632b1d7e7d6dc9a8ee9f238744e0927e0d6f44e12f50d9767c6d9cd47d9b3766aa054b77504b15c6bf503400530e053e + version: 2.12.0 + resolution: "pg-connection-string@npm:2.12.0" + checksum: 10c0/3a26c62884a9f0464718f652bd5d6bce276ebda830c0fef4de4f88ae73c2507d70cae1d45c2f5b49bebd76187fb4c94f889d07c53fca6acd06b2eecbebcdc336 languageName: node linkType: hard @@ -6926,11 +6742,11 @@ __metadata: linkType: hard "pg-pool@npm:^3.10.1": - version: 3.11.0 - resolution: "pg-pool@npm:3.11.0" + version: 3.13.0 + resolution: "pg-pool@npm:3.13.0" peerDependencies: pg: ">=8.0" - checksum: 10c0/4b104b48a47257a0edad0c62e5ea1908b72cb79386270264b452e69895e9e4c589d00cdbf6e46d4e9c05bc7e7d191656b66814b5282d65f33b12648a21df3c7f + checksum: 10c0/2756f79cda14e3834356f2ca035deab806bca2172a38a488b62ada54bd3e65d33f583661bbe96da0c0e75e6bc59807ada733c37efca6e24ae2893429936a1549 languageName: node linkType: hard @@ -6949,9 +6765,9 @@ __metadata: linkType: hard "pg-protocol@npm:^1.10.3": - version: 1.11.0 - resolution: "pg-protocol@npm:1.11.0" - checksum: 10c0/93e83581781418c9173eba4e4545f73392cfe66b78dd1d3624d7339fbd37e7f4abebaf2615e68e0701a9bf0edf5b81a4ad533836f388f775fe25fa24a691c464 + version: 1.13.0 + resolution: "pg-protocol@npm:1.13.0" + checksum: 10c0/a4e851e6bb8ff404ca19d561cf49b6b0caf45163bd3f289889edaf6c4e9fb25b08fb57f50d37a8cc86007efcf2cbb3dd2372c97a353a546f45eb49ddebc84fa9 languageName: node linkType: hard @@ -7007,16 +6823,16 @@ __metadata: linkType: hard "picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.3.1": - version: 2.3.1 - resolution: "picomatch@npm:2.3.1" - checksum: 10c0/26c02b8d06f03206fc2ab8d16f19960f2ff9e81a658f831ecb656d8f17d9edc799e8364b1f4a7873e89d9702dff96204be0fa26fe4181f6843f040f819dac4be + version: 2.3.2 + resolution: "picomatch@npm:2.3.2" + checksum: 10c0/a554d1709e59be97d1acb9eaedbbc700a5c03dbd4579807baed95100b00420bc729335440ef15004ae2378984e2487a7c1cebd743cfdb72b6fa9ab69223c0d61 languageName: node linkType: hard -"picomatch@npm:^4.0.3": - version: 4.0.3 - resolution: "picomatch@npm:4.0.3" - checksum: 10c0/9582c951e95eebee5434f59e426cddd228a7b97a0161a375aed4be244bd3fe8e3a31b846808ea14ef2c8a2527a6eeab7b3946a67d5979e81694654f939473ae2 +"picomatch@npm:^4.0.4": + version: 4.0.4 + resolution: "picomatch@npm:4.0.4" + checksum: 10c0/e2c6023372cc7b5764719a5ffb9da0f8e781212fa7ca4bd0562db929df8e117460f00dff3cb7509dacfc06b86de924b247f504d0ce1806a37fac4633081466b0 languageName: node linkType: hard @@ -7133,16 +6949,6 @@ __metadata: languageName: node linkType: hard -"promise-retry@npm:^2.0.1": - version: 2.0.1 - resolution: "promise-retry@npm:2.0.1" - dependencies: - err-code: "npm:^2.0.2" - retry: "npm:^0.12.0" - checksum: 10c0/9c7045a1a2928094b5b9b15336dcd2a7b1c052f674550df63cc3f36cd44028e5080448175b6f6ca32b642de81150f5e7b1a98b728f15cb069f2dd60ac2616b96 - languageName: node - linkType: hard - "promise@npm:^6.0.1": version: 6.1.0 resolution: "promise@npm:6.1.0" @@ -7182,10 +6988,10 @@ __metadata: languageName: node linkType: hard -"proxy-from-env@npm:^1.1.0": - version: 1.1.0 - resolution: "proxy-from-env@npm:1.1.0" - checksum: 10c0/fe7dd8b1bdbbbea18d1459107729c3e4a2243ca870d26d34c2c1bcd3e4425b7bcc5112362df2d93cc7fb9746f6142b5e272fd1cc5c86ddf8580175186f6ad42b +"proxy-from-env@npm:^2.1.0": + version: 2.1.0 + resolution: "proxy-from-env@npm:2.1.0" + checksum: 10c0/ed01729fd4d094eab619cd7e17ce3698b3413b31eb102c4904f9875e677cd207392795d5b4adee9cec359dfd31c44d5ad7595a3a3ad51c40250e141512281c58 languageName: node linkType: hard @@ -7247,19 +7053,28 @@ __metadata: languageName: node linkType: hard -"qs@npm:^6.10.3, qs@npm:^6.11.0, qs@npm:^6.14.1, qs@npm:~6.14.0": - version: 6.14.1 - resolution: "qs@npm:6.14.1" +"qs@npm:^6.10.3, qs@npm:^6.11.0, qs@npm:^6.14.1, qs@npm:~6.15.1": + version: 6.15.1 + resolution: "qs@npm:6.15.1" dependencies: side-channel: "npm:^1.1.0" - checksum: 10c0/0e3b22dc451f48ce5940cbbc7c7d9068d895074f8c969c0801ac15c1313d1859c4d738e46dc4da2f498f41a9ffd8c201bd9fb12df67799b827db94cc373d2613 + checksum: 10c0/19ee504f0ebff72598503e38cd6d9bd7b52a8ab62ae18b1e6bee3d4db58469bd65871ef1893a881bafb0f80ef2f9ab586e1f255cf25cc8d816c0f5a704721d97 + languageName: node + linkType: hard + +"qs@npm:~6.14.0": + version: 6.14.2 + resolution: "qs@npm:6.14.2" + dependencies: + side-channel: "npm:^1.1.0" + checksum: 10c0/646110124476fc9acf3c80994c8c3a0600cbad06a4ede1c9e93341006e8426d64e85e048baf8f0c4995f0f1bf0f37d1f3acc5ec1455850b81978792969a60ef6 languageName: node linkType: hard "qs@npm:~6.5.2": - version: 6.5.3 - resolution: "qs@npm:6.5.3" - checksum: 10c0/6631d4f2fa9d315e480662646745a4aa3a708817fbffe2cbdacec8ab9be130f92740c66191770fe9b704bc5fa9c1cc1f6596f55ad132fef7bd3ad1582f199eb0 + version: 6.5.5 + resolution: "qs@npm:6.5.5" + checksum: 10c0/6a5728b92378776d194c19d2bcf8e8847fa96ecfa6eb64f64e7ac73a394043cacaf257be014fa1a86201077a1e0c5ef5760ee0e0d6b6a4fe9f5ae8afcf5b9254 languageName: node linkType: hard @@ -7623,29 +7438,63 @@ __metadata: languageName: node linkType: hard -"resolve@npm:^1.1.6, resolve@npm:^1.1.7, resolve@npm:^1.10.0, resolve@npm:^1.20.0, resolve@npm:^1.22.4, resolve@npm:^1.4.0, resolve@npm:^1.8.1": - version: 1.22.11 - resolution: "resolve@npm:1.22.11" +"resolve@npm:^1.1.6, resolve@npm:^1.1.7, resolve@npm:^1.10.0, resolve@npm:^1.20.0, resolve@npm:^1.4.0, resolve@npm:^1.8.1": + version: 1.22.12 + resolution: "resolve@npm:1.22.12" + dependencies: + es-errors: "npm:^1.3.0" + is-core-module: "npm:^2.16.1" + path-parse: "npm:^1.0.7" + supports-preserve-symlinks-flag: "npm:^1.0.0" + bin: + resolve: bin/resolve + checksum: 10c0/b16dc9b537c02e8c3388f7d3dcff9741d3071625f9a97ac1c885f2b0ca51e78df22328fb6d6ef214dd9101fb7cfc19aa2836fe3410402a94f3f7b8639c7149bf + languageName: node + linkType: hard + +"resolve@npm:^2.0.0-next.6": + version: 2.0.0-next.6 + resolution: "resolve@npm:2.0.0-next.6" + dependencies: + es-errors: "npm:^1.3.0" + is-core-module: "npm:^2.16.1" + node-exports-info: "npm:^1.6.0" + object-keys: "npm:^1.1.1" + path-parse: "npm:^1.0.7" + supports-preserve-symlinks-flag: "npm:^1.0.0" + bin: + resolve: bin/resolve + checksum: 10c0/4e44cb84aa9a3c7c82d4a98e8111879671150496160a53ca6cdbed6101bf239f19105f8b8b84e40c0b76d46b0d9626813510b19a80e01f4ae18692e9d0b47749 + languageName: node + linkType: hard + +"resolve@patch:resolve@npm%3A^1.1.6#optional!builtin, resolve@patch:resolve@npm%3A^1.1.7#optional!builtin, resolve@patch:resolve@npm%3A^1.10.0#optional!builtin, resolve@patch:resolve@npm%3A^1.20.0#optional!builtin, resolve@patch:resolve@npm%3A^1.4.0#optional!builtin, resolve@patch:resolve@npm%3A^1.8.1#optional!builtin": + version: 1.22.12 + resolution: "resolve@patch:resolve@npm%3A1.22.12#optional!builtin::version=1.22.12&hash=c3c19d" dependencies: + es-errors: "npm:^1.3.0" is-core-module: "npm:^2.16.1" path-parse: "npm:^1.0.7" supports-preserve-symlinks-flag: "npm:^1.0.0" bin: resolve: bin/resolve - checksum: 10c0/f657191507530f2cbecb5815b1ee99b20741ea6ee02a59c57028e9ec4c2c8d7681afcc35febbd554ac0ded459db6f2d8153382c53a2f266cee2575e512674409 + checksum: 10c0/fc6519984ae1f894d877c0060ba8b1f5ba3bc0e85a02f74e141929c118c23d74d9735619a9cc2965397387e514884245c65d72a40731dcb6cfc84c7bcdc8321e languageName: node linkType: hard -"resolve@patch:resolve@npm%3A^1.1.6#optional!builtin, resolve@patch:resolve@npm%3A^1.1.7#optional!builtin, resolve@patch:resolve@npm%3A^1.10.0#optional!builtin, resolve@patch:resolve@npm%3A^1.20.0#optional!builtin, resolve@patch:resolve@npm%3A^1.22.4#optional!builtin, resolve@patch:resolve@npm%3A^1.4.0#optional!builtin, resolve@patch:resolve@npm%3A^1.8.1#optional!builtin": - version: 1.22.11 - resolution: "resolve@patch:resolve@npm%3A1.22.11#optional!builtin::version=1.22.11&hash=c3c19d" +"resolve@patch:resolve@npm%3A^2.0.0-next.6#optional!builtin": + version: 2.0.0-next.6 + resolution: "resolve@patch:resolve@npm%3A2.0.0-next.6#optional!builtin::version=2.0.0-next.6&hash=c3c19d" dependencies: + es-errors: "npm:^1.3.0" is-core-module: "npm:^2.16.1" + node-exports-info: "npm:^1.6.0" + object-keys: "npm:^1.1.1" path-parse: "npm:^1.0.7" supports-preserve-symlinks-flag: "npm:^1.0.0" bin: resolve: bin/resolve - checksum: 10c0/ee5b182f2e37cb1165465e58c6abc797fec0a80b5ba3231607beb4677db0c9291ac010c47cf092b6daa2b7f518d69a0e21888e7e2b633f68d501a874212a8c63 + checksum: 10c0/dca533e38820b0d8d636f269824cef3b7435802ab7401211c6f10af03be0e2f7e216047234e1623046c0a6791577079767e0c04f0d36e42c7f567b1bff7b0742 languageName: node linkType: hard @@ -7656,13 +7505,6 @@ __metadata: languageName: node linkType: hard -"retry@npm:^0.12.0": - version: 0.12.0 - resolution: "retry@npm:0.12.0" - checksum: 10c0/59933e8501727ba13ad73ef4a04d5280b3717fd650408460c987392efe9d7be2040778ed8ebe933c5cbd63da3dcc37919c141ef8af0a54a6e4fca5a2af177bfe - languageName: node - linkType: hard - "reusify@npm:^1.0.4": version: 1.1.0 resolution: "reusify@npm:1.1.0" @@ -7687,15 +7529,15 @@ __metadata: linkType: hard "safe-array-concat@npm:^1.1.3": - version: 1.1.3 - resolution: "safe-array-concat@npm:1.1.3" + version: 1.1.4 + resolution: "safe-array-concat@npm:1.1.4" dependencies: - call-bind: "npm:^1.0.8" - call-bound: "npm:^1.0.2" - get-intrinsic: "npm:^1.2.6" + call-bind: "npm:^1.0.9" + call-bound: "npm:^1.0.4" + get-intrinsic: "npm:^1.3.0" has-symbols: "npm:^1.1.0" isarray: "npm:^2.0.5" - checksum: 10c0/43c86ffdddc461fb17ff8a17c5324f392f4868f3c7dd2c6a5d9f5971713bc5fd755667212c80eab9567595f9a7509cc2f83e590ddaebd1bd19b780f9c79f9a8d + checksum: 10c0/95fb4904ab1d9360a666fe5ba6d88f1c4a3a39682739e4512cff809fc6b5722a94bd95189211015bfb45859a7ffbc3340ea303ae22721c91c59e8946d310975a languageName: node linkType: hard @@ -7794,11 +7636,11 @@ __metadata: linkType: hard "semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.5.3": - version: 7.7.3 - resolution: "semver@npm:7.7.3" + version: 7.7.4 + resolution: "semver@npm:7.7.4" bin: semver: bin/semver.js - checksum: 10c0/4afe5c986567db82f44c8c6faef8fe9df2a9b1d98098fc1721f57c696c4c21cebd572f297fc21002f81889492345b8470473bc6f4aff5fb032a6ea59ea2bc45e + checksum: 10c0/5215ad0234e2845d4ea5bb9d836d42b03499546ddafb12075566899fc617f68794bb6f146076b6881d755de17d6c6cc73372555879ec7dce2c2feee947866ad2 languageName: node linkType: hard @@ -7949,12 +7791,12 @@ __metadata: linkType: hard "side-channel-list@npm:^1.0.0": - version: 1.0.0 - resolution: "side-channel-list@npm:1.0.0" + version: 1.0.1 + resolution: "side-channel-list@npm:1.0.1" dependencies: es-errors: "npm:^1.3.0" - object-inspect: "npm:^1.13.3" - checksum: 10c0/644f4ac893456c9490ff388bf78aea9d333d5e5bfc64cfb84be8f04bf31ddc111a8d4b83b85d7e7e8a7b845bc185a9ad02c052d20e086983cf59f0be517d9b3d + object-inspect: "npm:^1.13.4" + checksum: 10c0/d346c787fd2f9f1c2fdea14f00e8250118db0e7596d85a6cb9faa75f105d31a73a8f7a341c93d7df2a2429098c3d37a77bd3be9e88c37094b8c01807bc77c7a2 languageName: node linkType: hard @@ -8028,13 +7870,6 @@ __metadata: languageName: node linkType: hard -"smart-buffer@npm:^4.2.0": - version: 4.2.0 - resolution: "smart-buffer@npm:4.2.0" - checksum: 10c0/a16775323e1404dd43fabafe7460be13a471e021637bc7889468eb45ce6a6b207261f454e4e530a19500cc962c4cc5348583520843b363f4193cee5c00e1e539 - languageName: node - linkType: hard - "snapdragon-node@npm:^2.0.1": version: 2.1.1 resolution: "snapdragon-node@npm:2.1.1" @@ -8071,27 +7906,6 @@ __metadata: languageName: node linkType: hard -"socks-proxy-agent@npm:^8.0.3": - version: 8.0.5 - resolution: "socks-proxy-agent@npm:8.0.5" - dependencies: - agent-base: "npm:^7.1.2" - debug: "npm:^4.3.4" - socks: "npm:^2.8.3" - checksum: 10c0/5d2c6cecba6821389aabf18728325730504bf9bb1d9e342e7987a5d13badd7a98838cc9a55b8ed3cb866ad37cc23e1086f09c4d72d93105ce9dfe76330e9d2a6 - languageName: node - linkType: hard - -"socks@npm:^2.8.3": - version: 2.8.7 - resolution: "socks@npm:2.8.7" - dependencies: - ip-address: "npm:^10.0.1" - smart-buffer: "npm:^4.2.0" - checksum: 10c0/2805a43a1c4bcf9ebf6e018268d87b32b32b06fbbc1f9282573583acc155860dc361500f89c73bfbb157caa1b4ac78059eac0ef15d1811eb0ca75e0bdadbc9d2 - languageName: node - linkType: hard - "source-map-resolve@npm:^0.5.0": version: 0.5.3 resolution: "source-map-resolve@npm:0.5.3" @@ -8196,9 +8010,9 @@ __metadata: linkType: hard "spdx-license-ids@npm:^3.0.0": - version: 3.0.22 - resolution: "spdx-license-ids@npm:3.0.22" - checksum: 10c0/4a85e44c2ccfc06eebe63239193f526508ebec1abc7cf7bca8ee43923755636234395447c2c87f40fb672cf580a9c8e684513a676bfb2da3d38a4983684bbb38 + version: 3.0.23 + resolution: "spdx-license-ids@npm:3.0.23" + checksum: 10c0/8495620f6f2a237749cce922ea2d593a66f7885c301b1a0f5542183e7041182f27f616a8f13345cefdea0c9b3e0899328e0aa8cec100cf4f3fac4bb3bd975515 languageName: node linkType: hard @@ -8253,15 +8067,6 @@ __metadata: languageName: node linkType: hard -"ssri@npm:^13.0.0": - version: 13.0.0 - resolution: "ssri@npm:13.0.0" - dependencies: - minipass: "npm:^7.0.3" - checksum: 10c0/405f3a531cd98b013cecb355d63555dca42fd12c7bc6671738aaa9a82882ff41cdf0ef9a2b734ca4f9a760338f114c29d01d9238a65db3ccac27929bd6e6d4b2 - languageName: node - linkType: hard - "stack-trace@npm:0.0.10": version: 0.0.10 resolution: "stack-trace@npm:0.0.10" @@ -8319,21 +8124,21 @@ __metadata: languageName: node linkType: hard -"stream-transform@npm:^3.4.0": - version: 3.4.0 - resolution: "stream-transform@npm:3.4.0" - checksum: 10c0/7fbcc76d8c59c03b30720e216fa558cf3b0120e3abd9cfbe7c4679eb9f024f043fa808ce179d398a8aaa21a68740c73a32d20b5ad11abb5b98d84a63c844d44d +"stream-transform@npm:^3.4.1": + version: 3.4.1 + resolution: "stream-transform@npm:3.4.1" + checksum: 10c0/f8cce06c7498f5cd40eca71f7e11a5f9cdc14749bf07d6692a928d5d32b36d16a855ad78bd9ea6e91a15bd1eeff23b264959f9fd5912a15454f034652dcb6afe languageName: node linkType: hard "streamx@npm:^2.12.0, streamx@npm:^2.12.5, streamx@npm:^2.13.2, streamx@npm:^2.14.0": - version: 2.23.0 - resolution: "streamx@npm:2.23.0" + version: 2.25.0 + resolution: "streamx@npm:2.25.0" dependencies: events-universal: "npm:^1.0.0" fast-fifo: "npm:^1.3.2" text-decoder: "npm:^1.1.0" - checksum: 10c0/15708ce37818d588632fe1104e8febde573e33e8c0868bf583fce0703f3faf8d2a063c278e30df2270206811b69997f64eb78792099933a1fe757e786fbcbd44 + checksum: 10c0/1ecc4b722050e9088b99cde59d035e846ac97cedc3ef14a00b196d9c0b6f47d9fd18df454a19f56f0f586ab4f23fb7229069b9e8eaf22072a21bd9c909d4e0ea languageName: node linkType: hard @@ -8459,11 +8264,11 @@ __metadata: linkType: hard "strip-ansi@npm:^7.0.1": - version: 7.1.2 - resolution: "strip-ansi@npm:7.1.2" + version: 7.2.0 + resolution: "strip-ansi@npm:7.2.0" dependencies: - ansi-regex: "npm:^6.0.1" - checksum: 10c0/0d6d7a023de33368fd042aab0bf48f4f4077abdfd60e5393e73c7c411e85e1b3a83507c11af2e656188511475776215df9ca589b4da2295c9455cc399ce1858b + ansi-regex: "npm:^6.2.2" + checksum: 10c0/544d13b7582f8254811ea97db202f519e189e59d35740c46095897e254e4f1aa9fe1524a83ad6bc5ad67d4dd6c0281d2e0219ed62b880a6238a16a17d375f221 languageName: node linkType: hard @@ -8622,11 +8427,11 @@ __metadata: linkType: hard "swagger-ui-dist@npm:>=4.11.0": - version: 5.31.0 - resolution: "swagger-ui-dist@npm:5.31.0" + version: 5.32.5 + resolution: "swagger-ui-dist@npm:5.32.5" dependencies: "@scarf/scarf": "npm:=1.4.0" - checksum: 10c0/9f06121207f078a90fe252cced6a33863910506f2beac0aa87a18e660c97f9ce544c0c4f406d003eb61a8591b5224040123bfa8407df9c885f2f7f85ba56e50c + checksum: 10c0/a10ea9900ab2a1241fffc820395a7f197dcf44a27dd2f07926c32837c8e4bf7aa4cf2f23403e978075e0343e404e2d7d9173eefdd4dfe6081a04ced0b43ba83c languageName: node linkType: hard @@ -8662,15 +8467,15 @@ __metadata: linkType: hard "tar@npm:^7.5.4": - version: 7.5.6 - resolution: "tar@npm:7.5.6" + version: 7.5.13 + resolution: "tar@npm:7.5.13" dependencies: "@isaacs/fs-minipass": "npm:^4.0.0" chownr: "npm:^3.0.0" minipass: "npm:^7.1.2" minizlib: "npm:^3.1.0" yallist: "npm:^5.0.0" - checksum: 10c0/08af3807035957650ad5f2a300c49ca4fe0566ac0ea5a23741a5b5103c6da42891a9eeaed39bc1fbcf21c5cac4dc846828a004727fb08b9d946322d3144d1fd2 + checksum: 10c0/5c65b8084799bde7a791593a1c1a45d3d6ee98182e3700b24c247b7b8f8654df4191642abbdb07ff25043d45dcff35620827c3997b88ae6c12040f64bed5076b languageName: node linkType: hard @@ -8722,11 +8527,11 @@ __metadata: linkType: hard "text-decoder@npm:^1.1.0": - version: 1.2.3 - resolution: "text-decoder@npm:1.2.3" + version: 1.2.7 + resolution: "text-decoder@npm:1.2.7" dependencies: b4a: "npm:^1.6.4" - checksum: 10c0/569d776b9250158681c83656ef2c3e0a5d5c660c27ca69f87eedef921749a4fbf02095e5f9a0f862a25cf35258379b06e31dee9c125c9f72e273b7ca1a6d1977 + checksum: 10c0/929938ed154fbadb660a7f3d1aca30b7e53649a731af7583168fcfba0c158046325d35d945926e2a512bb62d1a49a7818151c987ea38b48853f01e1615722fc5 languageName: node linkType: hard @@ -8775,12 +8580,12 @@ __metadata: linkType: hard "tinyglobby@npm:^0.2.12": - version: 0.2.15 - resolution: "tinyglobby@npm:0.2.15" + version: 0.2.16 + resolution: "tinyglobby@npm:0.2.16" dependencies: fdir: "npm:^6.5.0" - picomatch: "npm:^4.0.3" - checksum: 10c0/869c31490d0d88eedb8305d178d4c75e7463e820df5a9b9d388291daf93e8b1eb5de1dad1c1e139767e4269fe75f3b10d5009b2cc14db96ff98986920a186844 + picomatch: "npm:^4.0.4" + checksum: 10c0/f2e09fd93dd95c41e522113b686ff6f7c13020962f8698a864a257f3d7737599afc47722b7ab726e12f8a813f779906187911ff8ee6701ede65072671a7e934b languageName: node linkType: hard @@ -9159,10 +8964,17 @@ __metadata: languageName: node linkType: hard -"undici-types@npm:~7.16.0": - version: 7.16.0 - resolution: "undici-types@npm:7.16.0" - checksum: 10c0/3033e2f2b5c9f1504bdc5934646cb54e37ecaca0f9249c983f7b1fc2e87c6d18399ebb05dc7fd5419e02b2e915f734d872a65da2e3eeed1813951c427d33cc9a +"undici-types@npm:~7.19.0": + version: 7.19.2 + resolution: "undici-types@npm:7.19.2" + checksum: 10c0/7159f10546f9f6c47d36776bb1bbf8671e87c1e587a6fee84ae1f111ae8de4f914efa8ca0dfcd224f4f4a9dfc3f6028f627ccb5ddaccf82d7fd54671b89fac3e + languageName: node + linkType: hard + +"undici@npm:^6.25.0": + version: 6.25.0 + resolution: "undici@npm:6.25.0" + checksum: 10c0/2597cc6689bdb02c210c557b1f85febbfda65becae6e6fc1061508e2f33734d25207f81cd8af56ada9956329eb3a7bd7431e87dcfeceba20ee87059b57dcf985 languageName: node linkType: hard @@ -9178,24 +8990,6 @@ __metadata: languageName: node linkType: hard -"unique-filename@npm:^5.0.0": - version: 5.0.0 - resolution: "unique-filename@npm:5.0.0" - dependencies: - unique-slug: "npm:^6.0.0" - checksum: 10c0/afb897e9cf4c2fb622ea716f7c2bb462001928fc5f437972213afdf1cc32101a230c0f1e9d96fc91ee5185eca0f2feb34127145874975f347be52eb91d6ccc2c - languageName: node - linkType: hard - -"unique-slug@npm:^6.0.0": - version: 6.0.0 - resolution: "unique-slug@npm:6.0.0" - dependencies: - imurmurhash: "npm:^0.1.4" - checksum: 10c0/da7ade4cb04eb33ad0499861f82fe95ce9c7c878b7139dc54d140ecfb6a6541c18a5c8dac16188b8b379fe62c0c1f1b710814baac910cde5f4fec06212126c6a - languageName: node - linkType: hard - "unique-stream@npm:^2.0.2": version: 2.4.0 resolution: "unique-stream@npm:2.4.0" @@ -9578,13 +9372,13 @@ __metadata: linkType: hard "which@npm:^6.0.0": - version: 6.0.0 - resolution: "which@npm:6.0.0" + version: 6.0.1 + resolution: "which@npm:6.0.1" dependencies: - isexe: "npm:^3.1.1" + isexe: "npm:^4.0.0" bin: node-which: bin/which.js - checksum: 10c0/fe9d6463fe44a76232bb6e3b3181922c87510a5b250a98f1e43a69c99c079b3f42ddeca7e03d3e5f2241bf2d334f5a7657cfa868b97c109f3870625842f4cc15 + checksum: 10c0/7e710e54ea36d2d6183bee2f9caa27a3b47b9baf8dee55a199b736fcf85eab3b9df7556fca3d02b50af7f3dfba5ea3a45644189836df06267df457e354da66d5 languageName: node linkType: hard @@ -9721,13 +9515,6 @@ __metadata: languageName: node linkType: hard -"yallist@npm:^4.0.0": - version: 4.0.0 - resolution: "yallist@npm:4.0.0" - checksum: 10c0/2286b5e8dbfe22204ab66e2ef5cc9bbb1e55dfc873bbe0d568aa943eb255d131890dfd5bf243637273d31119b870f49c18fcde2c6ffbb7a7a092b870dc90625a - languageName: node - linkType: hard - "yallist@npm:^5.0.0": version: 5.0.0 resolution: "yallist@npm:5.0.0"