diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 762de87a..a47363c6 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -4,7 +4,15 @@ on: workflow_run: workflows: ["Deploy Neotoma API"] types: [completed] - branches: [develop] + branches: [develop, production] + # The `checks` job runs on every pull request into develop or production (so + # develop -> production too) and on every push to those branches. The `test` + # job does not: it tests a deployed server, and neither a pull request nor a + # push that has not been deployed yet is running anywhere. + pull_request: + branches: [develop, production] + push: + branches: [develop, production] workflow_dispatch: jobs: @@ -13,31 +21,44 @@ jobs: if: ${{ github.event_name == 'workflow_dispatch' || github.event.workflow_run.conclusion == 'success' }} timeout-minutes: 25 + # Test only the server that was just deployed: a push to `production` tests + # production, anything else (a push to `develop`, or a manual run started + # from another branch) tests dev. After a deploy the branch is the one that + # triggered the Deploy run; for a manual run it is the branch it started on. strategy: fail-fast: false matrix: - include: - - name: dev - flag: '-d' - host: https://api-dev.neotomadb.org - - name: production - flag: '-p' - host: https://api.neotomadb.org + include: ${{ fromJSON((github.event.workflow_run.head_branch || github.ref_name) == 'production' && '[{"name":"production","flag":"-p","host":"https://api.neotomadb.org"}]' || '[{"name":"dev","flag":"-d","host":"https://api-dev.neotomadb.org"}]') }} - name: test (${{ matrix.name }}) + # A fixed name: when this job is skipped (push and pull_request runs) GitHub + # never expands the matrix, so a name that used matrix.name showed up as the + # raw "${{ matrix.name }}" text. The target (dev or production) is in the + # step names and the test-report artifact name instead. + name: Test deployed server steps: - name: Checkout code uses: actions/checkout@v5 + with: + # A workflow_run job checks out the default branch unless told + # otherwise. Check out the commit that was deployed so its own tests + # and openapi.yaml are what runs. + ref: ${{ github.event.workflow_run.head_sha || github.sha }} + + # package.json pins "packageManager": "yarn@4.12.0". The runner's global + # Yarn is 1.22.x, which refuses such a project, so Corepack has to be on + # before setup-node runs `yarn` for its cache. + - name: Enable Corepack + run: corepack enable - name: Setup Node.js uses: actions/setup-node@v4 with: - node-version: '20' + node-version: '22' # keep in step with FROM node:22-alpine in the Dockerfile cache: 'yarn' - name: Install dependencies - run: yarn install --frozen-lockfile + run: yarn install --immutable # genoatt.sh and runmochabatch.sh invoke `oatts` and `mocha` bare. Those resolve # under `yarn run` but not under `run: bash …`, so put the bin dir on PATH. @@ -73,3 +94,67 @@ jobs: with: name: test-report-${{ matrix.name }} path: public/tests.html + + # Checks that need no database, so they test the pushed or proposed code on + # the runner. The mocha suite needs a live API and database, so it only runs + # after a deploy (the `test` job above). + checks: + name: Checks (syntax, OpenAPI spec, startup) + if: ${{ github.event_name == 'pull_request' || github.event_name == 'push' }} + runs-on: ubuntu-latest + timeout-minutes: 10 + permissions: + contents: read + concurrency: + # A newer push to a pull request replaces that pull request's older run. + # Every push to develop/production gets its own group (the run id), so + # nothing is cancelled and every commit has a result. + group: checks-${{ github.event_name == 'pull_request' && github.ref || github.run_id }} + cancel-in-progress: ${{ github.event_name == 'pull_request' }} + + steps: + - name: Checkout code + uses: actions/checkout@v5 + + - name: Enable Corepack + run: corepack enable + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '22' # keep in step with FROM node:22-alpine in the Dockerfile + cache: 'yarn' + + - name: Install dependencies + run: yarn install --immutable + + - name: Check JavaScript syntax + run: find app.js database src v1.5 v2.0 openapi/scripts -name '*.js' -print0 | xargs -0 -n1 node --check + + - name: Build the OpenAPI spec and check openapi.yaml is up to date + run: | + yarn build:openapi + if ! git diff --exit-code -- openapi.yaml; then + echo "::error file=openapi.yaml::openapi.yaml is out of date. Run 'yarn build:openapi' and commit the result." + exit 1 + fi + + - name: Start the API without a database and check /healthcheck + env: + APIPORT: '3999' + NODE_ENV: development + run: | + node app.js > app.log 2>&1 & + pid=$! + for i in $(seq 1 30); do + if curl -sf http://127.0.0.1:3999/healthcheck/ > /dev/null; then + echo "healthcheck answered after ${i}s" + kill "$pid" + exit 0 + fi + sleep 1 + done + echo "::error::The API did not answer /healthcheck/ within 30 s" + cat app.log + kill "$pid" 2>/dev/null || true + exit 1 diff --git a/.gitignore b/.gitignore index 74c73507..0c6abda3 100755 --- a/.gitignore +++ b/.gitignore @@ -113,5 +113,7 @@ build_deploy.sh output.txt +docs/ +test/unit/ .yarn/ tasks/ \ No newline at end of file diff --git a/app.js b/app.js index 7b417b65..09c663fe 100755 --- a/app.js +++ b/app.js @@ -222,4 +222,16 @@ app.listen(apiPort, () => { console.log(`Neotoma API listening on port ${apiPort} (NODE_ENV=${process.env.NODE_ENV})`); }); +// Log the reason before the process dies. Node exits on these, and under +// `node app.js` (no nodemon) App Runner then restarts the container promptly. +// Message and stack only: error objects from pg can carry query parameters. +process.on('unhandledRejection', (reason) => { + console.error('unhandledRejection:', reason && reason.stack ? reason.stack : String(reason)); + process.exit(1); +}); +process.on('uncaughtException', (err) => { + console.error('uncaughtException:', err && err.stack ? err.stack : String(err)); + process.exit(1); +}); + module.exports = app; diff --git a/openapi/scripts/build-openapi.js b/openapi/scripts/build-openapi.js index 2e2f7556..61ec2e73 100644 --- a/openapi/scripts/build-openapi.js +++ b/openapi/scripts/build-openapi.js @@ -40,6 +40,11 @@ function buildOpenAPI() { function findYamlElements(dir) { // self note: you can `push()` to a const array. const yamlElements = []; + // Git does not keep empty folders, so a section with no files yet (for + // example components/responses) is absent from a fresh checkout. + if (!fs.existsSync(dir)) { + return yamlElements; + } const items = fs.readdirSync(dir); items.forEach((item) => { const fullPath = path.join(dir, item); diff --git a/package.json b/package.json index a6ae6291..e8f1e7f8 100644 --- a/package.json +++ b/package.json @@ -11,9 +11,10 @@ "license": "MIT", "private": true, "scripts": { - "start": "NODE_ENV=production nodemon --legacy-watch app.js", + "start": "NODE_ENV=production nodemon --legacy-watch --exitcrash app.js", "dev": "NODE_ENV=development nodemon --legacy-watch app.js", "test": "APIPATH=${APIPATH:-http://localhost:3001/} node ./node_modules/mocha/bin/mocha --config=test/.mocharc.yml --reporter-options reportDir=public,reportFilename=tests", + "test:unit": "node ./node_modules/mocha/bin/mocha --no-config --recursive --reporter spec --timeout 10000 test/unit", "build:openapi": "(cd ./openapi && node ./scripts/build-openapi.js)", "validate:openapi": "yarn build:openapi && bash genoatt.sh && sleep 4 && bash runmochabatch.sh" }, diff --git a/public/tests.html b/public/tests.html index a82a3864..64e0f0f8 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 dbba9042..56c27862 100644 --- a/public/tests.json +++ b/public/tests.json @@ -1,16 +1,16 @@ { "stats": { - "suites": 167, - "tests": 151, - "passes": 146, + "suites": 168, + "tests": 153, + "passes": 14, "pending": 1, - "failures": 4, - "start": "2026-08-10T18:01:48.866Z", - "end": "2026-08-10T18:05:56.647Z", - "duration": 247781, - "testsRegistered": 151, - "passPercent": 97.33333333333334, - "pendingPercent": 0.6622516556291391, + "failures": 138, + "start": "2026-08-11T01:05:53.797Z", + "end": "2026-08-11T01:05:53.949Z", + "duration": 152, + "testsRegistered": 153, + "passPercent": 9.210526315789473, + "pendingPercent": 0.6535947712418301, "other": 0, "hasOther": false, "skipped": 0, @@ -18,7 +18,7 @@ }, "results": [ { - "uuid": "b5e66e37-d92f-4155-a83f-b6de72394e34", + "uuid": "ed211bda-e243-40b9-8665-393319e9e2ae", "title": "", "fullFile": "", "file": "", @@ -28,7 +28,7 @@ "title": "\"after each\" hook in \"{root}\"", "fullTitle": "\"after each\" hook in \"{root}\"", "timedOut": false, - "duration": 1, + "duration": 0, "state": null, "speed": null, "pass": false, @@ -37,8 +37,8 @@ "context": null, "code": "checkForUnfulfilledExpectations.call(this);\nrecordedExpects = [];", "err": {}, - "uuid": "97f6dae5-de80-4a0d-b58a-05cbb2f61ac3", - "parentUUID": "b5e66e37-d92f-4155-a83f-b6de72394e34", + "uuid": "97628a68-a61b-4e86-968e-18500e694d0f", + "parentUUID": "ed211bda-e243-40b9-8665-393319e9e2ae", "isHook": true, "skipped": false } @@ -46,49 +46,53 @@ "tests": [], "suites": [ { - "uuid": "b55e2a92-fba4-42cb-bdba-0ef8db1dc872", - "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", + "uuid": "2379894f-e1db-4d26-8817-a92fd5a230c7", + "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": "142638f8-37f9-46a0-8fdd-a529235fcbd8", + "uuid": "31dce849-de58-4617-827b-160061bc27ed", "title": "tests for get", - "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", + "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 \"contact\"", - "fullTitle": "tests for /v2.0/data/sites/{siteid}/contacts tests for get should respond 200 for \"contact\"", + "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": 588, - "state": "passed", - "speed": "medium", - "pass": true, - "fail": false, + "duration": 18, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "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();", - "err": {}, - "uuid": "8e6282a1-025a-4a0e-98ed-e34be2967d13", - "parentUUID": "142638f8-37f9-46a0-8fdd-a529235fcbd8", + "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();", + "err": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "ad70a43f-206d-47b0-b627-7384e9ea7597", + "parentUUID": "31dce849-de58-4617-827b-160061bc27ed", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "8e6282a1-025a-4a0e-98ed-e34be2967d13" + "passes": [], + "failures": [ + "ad70a43f-206d-47b0-b627-7384e9ea7597" ], - "failures": [], "pending": [], "skipped": [], - "duration": 588, + "duration": 18, "root": false, "rootEmpty": false, "_timeout": 900000 @@ -104,49 +108,231 @@ "_timeout": 900000 }, { - "uuid": "c67c79c7-a8ab-4c0e-b01e-3e633e299174", - "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", + "uuid": "781fcca8-7249-4b1d-97b7-d96552339922", + "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": 2, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, + "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": { + "message": "AggregateError [ECONNREFUSED]: ", + "estack": "AggregateError [ECONNREFUSED]: \n at internalConnectMultiple (node:net:1139:18)\n at afterConnectMultiple (node:net:1712:7)", + "diff": null + }, + "uuid": "5a9eea45-1051-4112-a19e-2ec10cd85a8e", + "parentUUID": "781fcca8-7249-4b1d-97b7-d96552339922", + "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": 1, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, + "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": { + "message": "AggregateError [ECONNREFUSED]: ", + "estack": "AggregateError [ECONNREFUSED]: \n at internalConnectMultiple (node:net:1139:18)\n at afterConnectMultiple (node:net:1712:7)", + "diff": null + }, + "uuid": "eba3e2ce-40f7-4864-b988-516341b88f93", + "parentUUID": "781fcca8-7249-4b1d-97b7-d96552339922", + "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": 1, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, + "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": { + "message": "AggregateError [ECONNREFUSED]: ", + "estack": "AggregateError [ECONNREFUSED]: \n at internalConnectMultiple (node:net:1139:18)\n at afterConnectMultiple (node:net:1712:7)", + "diff": null + }, + "uuid": "5c8db8f9-9f16-48af-a9c1-611c22d8aecf", + "parentUUID": "781fcca8-7249-4b1d-97b7-d96552339922", + "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": 0, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, + "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": { + "message": "AggregateError [ECONNREFUSED]: ", + "estack": "AggregateError [ECONNREFUSED]: \n at internalConnectMultiple (node:net:1139:18)\n at afterConnectMultiple (node:net:1712:7)", + "diff": null + }, + "uuid": "60b4236f-b06c-49c1-b877-ad201f416c96", + "parentUUID": "781fcca8-7249-4b1d-97b7-d96552339922", + "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": 0, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, + "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": { + "message": "AggregateError [ECONNREFUSED]: ", + "estack": "AggregateError [ECONNREFUSED]: \n at internalConnectMultiple (node:net:1139:18)\n at afterConnectMultiple (node:net:1712:7)", + "diff": null + }, + "uuid": "3ecad713-83de-4fce-a6fc-283c3050eede", + "parentUUID": "781fcca8-7249-4b1d-97b7-d96552339922", + "isHook": false, + "skipped": false + }, + { + "title": "Limits work:", + "fullTitle": "Get datasets any number of ways: Limits work:", + "timedOut": false, + "duration": 0, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, + "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": { + "message": "AggregateError [ECONNREFUSED]: ", + "estack": "AggregateError [ECONNREFUSED]: \n at internalConnectMultiple (node:net:1139:18)\n at afterConnectMultiple (node:net:1712:7)", + "diff": null + }, + "uuid": "6b006564-3514-4c01-8327-ca3f772bba77", + "parentUUID": "781fcca8-7249-4b1d-97b7-d96552339922", + "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": "2bf340fc-d80d-4e82-9446-7715cf9b1d95", + "parentUUID": "781fcca8-7249-4b1d-97b7-d96552339922", + "isHook": false, + "skipped": false + } + ], + "suites": [], + "passes": [], + "failures": [ + "5a9eea45-1051-4112-a19e-2ec10cd85a8e", + "eba3e2ce-40f7-4864-b988-516341b88f93", + "5c8db8f9-9f16-48af-a9c1-611c22d8aecf", + "60b4236f-b06c-49c1-b877-ad201f416c96", + "3ecad713-83de-4fce-a6fc-283c3050eede", + "6b006564-3514-4c01-8327-ca3f772bba77" + ], + "pending": [ + "2bf340fc-d80d-4e82-9446-7715cf9b1d95" + ], + "skipped": [], + "duration": 4, + "root": false, + "rootEmpty": false, + "_timeout": 50000 + }, + { + "uuid": "aeb15113-705a-4f9b-ae87-fbe34388e800", + "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": "ba7e404f-b649-4d04-bf3b-13fd866b4d38", + "uuid": "ecc96875-1d67-487e-8be4-04dc7aba1db6", "title": "tests for get", - "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", + "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 \"contact\"", - "fullTitle": "tests for /v2.0/data/datasets/{datasetid}/contacts tests for get should respond 200 for \"contact\"", + "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": 71, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, + "duration": 0, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "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();", - "err": {}, - "uuid": "3b2f14d4-8ec4-4498-8eaa-df0445884a93", - "parentUUID": "ba7e404f-b649-4d04-bf3b-13fd866b4d38", + "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": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "f292e1e6-da74-4669-88d3-80fc4e466249", + "parentUUID": "ecc96875-1d67-487e-8be4-04dc7aba1db6", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "3b2f14d4-8ec4-4498-8eaa-df0445884a93" + "passes": [], + "failures": [ + "f292e1e6-da74-4669-88d3-80fc4e466249" ], - "failures": [], "pending": [], "skipped": [], - "duration": 71, + "duration": 0, "root": false, "rootEmpty": false, "_timeout": 900000 @@ -162,49 +348,53 @@ "_timeout": 900000 }, { - "uuid": "8fc9a2f3-d4c7-45ec-b9f2-8f6f2416c7a1", - "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", + "uuid": "9911ff44-d0f5-45b8-8c68-ce5cac8f4f88", + "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": "fe520c25-7637-4153-977e-e49142e82483", + "uuid": "fb432d6c-f652-4ca3-980a-77f8601d9b20", "title": "tests for get", - "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", + "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 \"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 \"", + "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": 40663, - "state": "passed", - "speed": "slow", - "pass": true, - "fail": false, + "duration": 1, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "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();", - "err": {}, - "uuid": "3613c9f8-8a6c-40f1-9be3-2f5e9f336925", - "parentUUID": "fe520c25-7637-4153-977e-e49142e82483", + "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": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "43184cc7-289e-4fd8-bdf0-d5a7cfd2fcdd", + "parentUUID": "fb432d6c-f652-4ca3-980a-77f8601d9b20", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "3613c9f8-8a6c-40f1-9be3-2f5e9f336925" + "passes": [], + "failures": [ + "43184cc7-289e-4fd8-bdf0-d5a7cfd2fcdd" ], - "failures": [], "pending": [], "skipped": [], - "duration": 40663, + "duration": 1, "root": false, "rootEmpty": false, "_timeout": 900000 @@ -220,49 +410,53 @@ "_timeout": 900000 }, { - "uuid": "1269e26f-e9b4-4441-b9ea-81a061660ecc", - "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", + "uuid": "df64f42e-47cd-4992-aa8c-b2079189980e", + "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": [], "suites": [ { - "uuid": "b1bc6952-52ea-436b-acaa-eb4e2e38c00e", + "uuid": "cafa0899-f6db-4893-a484-17c8cc1d7990", "title": "tests for get", - "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", + "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 \"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 \"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": 2474, - "state": "passed", - "speed": "slow", - "pass": true, - "fail": false, + "duration": 1, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/sites/6193/datasets_elc', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", - "err": {}, - "uuid": "0b131835-2e8c-4305-bc4b-4b73e0b17aa8", - "parentUUID": "b1bc6952-52ea-436b-acaa-eb4e2e38c00e", + "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": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "bdc9baf1-1309-488c-9ee7-2effa0bc1db9", + "parentUUID": "cafa0899-f6db-4893-a484-17c8cc1d7990", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "0b131835-2e8c-4305-bc4b-4b73e0b17aa8" + "passes": [], + "failures": [ + "bdc9baf1-1309-488c-9ee7-2effa0bc1db9" ], - "failures": [], "pending": [], "skipped": [], - "duration": 2474, + "duration": 1, "root": false, "rootEmpty": false, "_timeout": 900000 @@ -278,49 +472,53 @@ "_timeout": 900000 }, { - "uuid": "31611690-c1b6-4a4c-af39-a1cf97040a91", - "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", + "uuid": "126b6e99-e9f9-408e-a617-76c72cecd928", + "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": "db9b847b-73f6-40c8-8eba-c9f1491cb007", + "uuid": "38c4f0b7-ac1d-45d5-a8db-7488524e8ac8", "title": "tests for get", - "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", + "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 \"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 \"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": 79, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, + "duration": 0, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/apps/depenvt', { \n 'qs': {\"siteid\":21712,\"datasetid\":60034299,\"collectionunitid\":59650},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", - "err": {}, - "uuid": "8c307df1-2993-4c36-9e5f-7a9ed28ebbec", - "parentUUID": "db9b847b-73f6-40c8-8eba-c9f1491cb007", + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/pollen/500', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "err": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "aff83865-3377-473c-b36b-946e8f4d1930", + "parentUUID": "38c4f0b7-ac1d-45d5-a8db-7488524e8ac8", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "8c307df1-2993-4c36-9e5f-7a9ed28ebbec" + "passes": [], + "failures": [ + "aff83865-3377-473c-b36b-946e8f4d1930" ], - "failures": [], "pending": [], "skipped": [], - "duration": 79, + "duration": 0, "root": false, "rootEmpty": false, "_timeout": 900000 @@ -336,49 +534,53 @@ "_timeout": 900000 }, { - "uuid": "01d80d88-34f6-4764-b8aa-170fe6e35b7b", - "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", + "uuid": "20621898-a18f-4def-a03c-04a5046515fd", + "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": "82f458f6-d8e1-4d2c-9488-c8834f69f02a", + "uuid": "3997db19-e248-448e-9bda-eeb093d3e35b", "title": "tests for get", - "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", + "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 \"Publication\"", - "fullTitle": "tests for /v2.0/data/datasets/{datasetid}/publications tests for get should respond 200 for \"Publication\"", + "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": 79, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, + "duration": 1, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "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();", - "err": {}, - "uuid": "76a76077-8e38-4d11-929e-e2dfcef4dbb7", - "parentUUID": "82f458f6-d8e1-4d2c-9488-c8834f69f02a", + "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();", + "err": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "0af97fa0-3a61-4ed2-8c99-1b380220eb43", + "parentUUID": "3997db19-e248-448e-9bda-eeb093d3e35b", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "76a76077-8e38-4d11-929e-e2dfcef4dbb7" + "passes": [], + "failures": [ + "0af97fa0-3a61-4ed2-8c99-1b380220eb43" ], - "failures": [], "pending": [], "skipped": [], - "duration": 79, + "duration": 1, "root": false, "rootEmpty": false, "_timeout": 900000 @@ -394,509 +596,320 @@ "_timeout": 900000 }, { - "uuid": "1a295097-066e-48f8-a59d-067ddfb2410f", - "title": "Tests for Explorer App Services", - "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/explorerCalls.js", - "file": "/test/explorerCalls.js", + "uuid": "022be5d3-daa1-4d6d-933f-8776b21fb5d1", + "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": "2a2b5e70-712b-4de2-9370-d510eac99cc1", - "title": "tests for get", - "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 TaxaGroupTypes", - "fullTitle": "Tests for Explorer App Services tests for get should respond 200 for TaxaGroupTypes", - "timedOut": false, - "duration": 164, - "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": "0d6ea4b3-3c81-4cea-b139-d32b9f942c84", - "parentUUID": "2a2b5e70-712b-4de2-9370-d510eac99cc1", - "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": 20, - "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": "6bd2ce18-0d6a-40c3-ad49-0c23d8f11c31", - "parentUUID": "2a2b5e70-712b-4de2-9370-d510eac99cc1", - "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": 74, - "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": "e751611a-b0c3-4fce-85f9-d8e932f27762", - "parentUUID": "2a2b5e70-712b-4de2-9370-d510eac99cc1", - "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": 76, - "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": "87bf16e3-0ebd-4e05-9ca7-54dfe4aaf3ec", - "parentUUID": "2a2b5e70-712b-4de2-9370-d510eac99cc1", - "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": 5419, - "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": "63d24897-b8ce-4957-9dcf-df44df715154", - "parentUUID": "2a2b5e70-712b-4de2-9370-d510eac99cc1", - "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": 67, - "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": "b4d8c55f-f756-4ad5-b7a6-0359238b6571", - "parentUUID": "2a2b5e70-712b-4de2-9370-d510eac99cc1", - "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": 69, - "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": "69644149-f28f-4c92-bba0-6fcbd21f7d04", - "parentUUID": "2a2b5e70-712b-4de2-9370-d510eac99cc1", - "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": 613, - "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": "974a4a2c-dd9d-4cc4-873d-5531d1b93851", - "parentUUID": "2a2b5e70-712b-4de2-9370-d510eac99cc1", - "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": 8, - "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": "ad1a7770-0098-4ecc-b280-b8c4bc8250dd", - "parentUUID": "2a2b5e70-712b-4de2-9370-d510eac99cc1", - "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": 4, - "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": "d605c5d8-8f55-46a5-a2d4-6629648d481c", - "parentUUID": "2a2b5e70-712b-4de2-9370-d510eac99cc1", - "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": 100, - "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": "773d6c84-56c0-4791-9e88-3e710a4da987", - "parentUUID": "2a2b5e70-712b-4de2-9370-d510eac99cc1", - "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": 144, - "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": "34852ea4-64a4-4778-b331-8b6bdb0c48f1", - "parentUUID": "2a2b5e70-712b-4de2-9370-d510eac99cc1", - "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": 6, - "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": "66a6d546-e878-4d04-8dfd-7a978ba6a8d0", - "parentUUID": "2a2b5e70-712b-4de2-9370-d510eac99cc1", - "isHook": false, - "skipped": false - } - ], - "suites": [], - "passes": [ - "0d6ea4b3-3c81-4cea-b139-d32b9f942c84", - "6bd2ce18-0d6a-40c3-ad49-0c23d8f11c31", - "e751611a-b0c3-4fce-85f9-d8e932f27762", - "87bf16e3-0ebd-4e05-9ca7-54dfe4aaf3ec", - "63d24897-b8ce-4957-9dcf-df44df715154", - "b4d8c55f-f756-4ad5-b7a6-0359238b6571", - "69644149-f28f-4c92-bba0-6fcbd21f7d04", - "974a4a2c-dd9d-4cc4-873d-5531d1b93851", - "ad1a7770-0098-4ecc-b280-b8c4bc8250dd", - "d605c5d8-8f55-46a5-a2d4-6629648d481c", - "773d6c84-56c0-4791-9e88-3e710a4da987", - "34852ea4-64a4-4778-b331-8b6bdb0c48f1", - "66a6d546-e878-4d04-8dfd-7a978ba6a8d0" - ], - "failures": [], - "pending": [], - "skipped": [], - "duration": 6764, - "root": false, - "rootEmpty": false, - "_timeout": 12000 - } - ], - "passes": [], - "failures": [], - "pending": [], - "skipped": [], - "duration": 0, - "root": false, - "rootEmpty": false, - "_timeout": 12000 - }, - { - "uuid": "661769bf-0f8e-4d1e-962d-c023b5ac48e9", - "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": [ + "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": "981e6000-6b9c-4355-a182-9055a6ef3d51", + "parentUUID": "022be5d3-daa1-4d6d-933f-8776b21fb5d1", + "isHook": false, + "skipped": false + }, { - "uuid": "acecf9dd-4c85-4bc2-b1dc-6702dfb7f528", - "title": "tests for get", - "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 \"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": 191, - "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\":\"ipsum magna veniam\",\"database\":\"Neotoma Ostracode Database\",\"datasettype\":\"ostracode surface sample\",\"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\":33689,\"datasetid\":8035725,\"doi\":\"10[68243/;V51\",\"gpid\":5392,\"keyword\":\"modern\",\"contactid\":2003,\"taxa\":\"dolor dolore\",\"ageyoung\": 1000,\"ageold\": 10000,\"ageof\":16985787,\"limit\": 10,\"offset\": 0},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", - "err": {}, - "uuid": "b818af41-759b-484e-9625-70b4a2238f09", - "parentUUID": "acecf9dd-4c85-4bc2-b1dc-6702dfb7f528", - "isHook": false, - "skipped": false - } - ], - "suites": [], - "passes": [ - "b818af41-759b-484e-9625-70b4a2238f09" - ], - "failures": [], - "pending": [], - "skipped": [], - "duration": 191, - "root": false, - "rootEmpty": false, - "_timeout": 900000 - } - ], - "passes": [], - "failures": [], - "pending": [], - "skipped": [], - "duration": 0, - "root": false, - "rootEmpty": false, - "_timeout": 900000 - }, - { - "uuid": "ffc37db7-c614-4094-b25e-3cda33416dda", - "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": [ + "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": "f285cf8c-3f7b-4313-8c20-1647817903e7", + "parentUUID": "022be5d3-daa1-4d6d-933f-8776b21fb5d1", + "isHook": false, + "skipped": false + }, { - "uuid": "65986b75-23d5-47ad-8693-e2cd9a7c5e17", - "title": "tests for get", - "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 \"Lithology\"", - "fullTitle": "tests for /v2.0/data/datasets/{datasetid}/lithology tests for get should respond 200 for \"Lithology\"", - "timedOut": false, - "duration": 75, - "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();", - "err": {}, - "uuid": "432b8b06-74ca-4bb6-91e7-5b3b25f61e80", - "parentUUID": "65986b75-23d5-47ad-8693-e2cd9a7c5e17", - "isHook": false, - "skipped": false - } - ], - "suites": [], - "passes": [ - "432b8b06-74ca-4bb6-91e7-5b3b25f61e80" - ], - "failures": [], - "pending": [], - "skipped": [], - "duration": 75, - "root": false, - "rootEmpty": false, - "_timeout": 900000 - } - ], - "passes": [], - "failures": [], - "pending": [], - "skipped": [], - "duration": 0, - "root": false, - "rootEmpty": false, - "_timeout": 900000 - }, - { - "uuid": "7a9dfcf4-c840-42e4-80b5-aeff9f07e0fa", - "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": [], - "suites": [ + "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": "48a3d2d6-8b7c-4c55-baad-f0517587ed3e", + "parentUUID": "022be5d3-daa1-4d6d-933f-8776b21fb5d1", + "isHook": false, + "skipped": false + }, { - "uuid": "45f455d3-8458-4390-ab63-fc5213bffc91", - "title": "tests for get", - "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 \"occurrence\"", - "fullTitle": "tests for /v2.0/data/taxa/{taxonid}/occurrences tests for get should respond 200 for \"occurrence\"", - "timedOut": false, - "duration": 110, - "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/occurrences', { \n 'qs': {\"limit\": 10,\"offset\": 0},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", - "err": {}, - "uuid": "08125039-bb44-4d9f-95fe-ecf390a9e746", - "parentUUID": "45f455d3-8458-4390-ab63-fc5213bffc91", - "isHook": false, - "skipped": false - } - ], - "suites": [], - "passes": [ - "08125039-bb44-4d9f-95fe-ecf390a9e746" - ], - "failures": [], - "pending": [], - "skipped": [], - "duration": 110, - "root": false, - "rootEmpty": false, - "_timeout": 900000 + "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": "cfe01331-408f-4a4f-86cb-678e08e2aed2", + "parentUUID": "022be5d3-daa1-4d6d-933f-8776b21fb5d1", + "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": "5bd6d722-4053-4fa6-91af-fb43ebceff7b", + "parentUUID": "022be5d3-daa1-4d6d-933f-8776b21fb5d1", + "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": "aa5e2903-223f-4b54-b322-5e63dbf1546b", + "parentUUID": "022be5d3-daa1-4d6d-933f-8776b21fb5d1", + "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": "a3de9fea-dbc4-436c-83d3-9fd750b7d907", + "parentUUID": "022be5d3-daa1-4d6d-933f-8776b21fb5d1", + "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": "07a13fc8-e6cb-446d-8a66-a0ddb02acde0", + "parentUUID": "022be5d3-daa1-4d6d-933f-8776b21fb5d1", + "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": "f471f77f-3da3-40df-a636-04bcb79e5408", + "parentUUID": "022be5d3-daa1-4d6d-933f-8776b21fb5d1", + "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": "b3103354-68e8-4f5a-9ef3-1d96e7b03654", + "parentUUID": "022be5d3-daa1-4d6d-933f-8776b21fb5d1", + "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": "af121df1-9791-4bf6-86f4-fc31eccb3d71", + "parentUUID": "022be5d3-daa1-4d6d-933f-8776b21fb5d1", + "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": 1, + "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": "cf52c79c-d81d-4ea2-ad07-5333ad110191", + "parentUUID": "022be5d3-daa1-4d6d-933f-8776b21fb5d1", + "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": "a57d8d5b-09be-46d7-9545-beaeac412fdb", + "parentUUID": "022be5d3-daa1-4d6d-933f-8776b21fb5d1", + "isHook": false, + "skipped": false } ], - "passes": [], + "suites": [], + "passes": [ + "981e6000-6b9c-4355-a182-9055a6ef3d51", + "f285cf8c-3f7b-4313-8c20-1647817903e7", + "48a3d2d6-8b7c-4c55-baad-f0517587ed3e", + "cfe01331-408f-4a4f-86cb-678e08e2aed2", + "5bd6d722-4053-4fa6-91af-fb43ebceff7b", + "aa5e2903-223f-4b54-b322-5e63dbf1546b", + "a3de9fea-dbc4-436c-83d3-9fd750b7d907", + "07a13fc8-e6cb-446d-8a66-a0ddb02acde0", + "f471f77f-3da3-40df-a636-04bcb79e5408", + "b3103354-68e8-4f5a-9ef3-1d96e7b03654", + "af121df1-9791-4bf6-86f4-fc31eccb3d71", + "cf52c79c-d81d-4ea2-ad07-5333ad110191", + "a57d8d5b-09be-46d7-9545-beaeac412fdb" + ], "failures": [], "pending": [], "skipped": [], - "duration": 0, + "duration": 1, "root": false, "rootEmpty": false, - "_timeout": 900000 + "_timeout": 30000 }, { - "uuid": "32c387e0-1ec6-4ae6-95aa-c73498591915", - "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", + "uuid": "1a70b60a-8d66-41b0-87a6-3ae2812dbc2e", + "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": "f07f8a03-7f43-49c0-bfd3-2aa8482ee221", + "uuid": "0ae47a65-a17f-436b-aa1b-4ef6332d33de", "title": "tests for get", - "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", + "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 \"Site\"", - "fullTitle": "tests for /v2.0/data/datasets/{datasetid}/sites tests for get should respond 200 for \"Site\"", + "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": 101, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, + "duration": 1, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "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();", - "err": {}, - "uuid": "faa6af19-ae69-4c9d-9eb6-4578c8cc8da3", - "parentUUID": "f07f8a03-7f43-49c0-bfd3-2aa8482ee221", + "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();", + "err": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "e2c556ea-25f6-4b65-b10b-70f6447fe692", + "parentUUID": "0ae47a65-a17f-436b-aa1b-4ef6332d33de", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "faa6af19-ae69-4c9d-9eb6-4578c8cc8da3" + "passes": [], + "failures": [ + "e2c556ea-25f6-4b65-b10b-70f6447fe692" ], - "failures": [], "pending": [], "skipped": [], - "duration": 101, + "duration": 1, "root": false, "rootEmpty": false, "_timeout": 900000 @@ -912,49 +925,53 @@ "_timeout": 900000 }, { - "uuid": "1834fb86-4d6a-4767-97bd-617369f0ba59", - "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", + "uuid": "891f5528-b244-4a05-8945-26a1221e2691", + "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": "d84ce8a6-4ac2-4864-9092-e7beec1755d0", + "uuid": "d024ffca-69fe-4d24-b39f-eb89427e10f7", "title": "tests for get", - "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", + "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 \"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 \"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": 15311, - "state": "passed", - "speed": "slow", - "pass": true, - "fail": false, + "duration": 1, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "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();", - "err": {}, - "uuid": "35f55c52-daa8-48d9-bcb9-cd6b7b855d6f", - "parentUUID": "d84ce8a6-4ac2-4864-9092-e7beec1755d0", + "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": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "4a2f090c-4aea-4e08-a0f9-65650913a199", + "parentUUID": "d024ffca-69fe-4d24-b39f-eb89427e10f7", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "35f55c52-daa8-48d9-bcb9-cd6b7b855d6f" + "passes": [], + "failures": [ + "4a2f090c-4aea-4e08-a0f9-65650913a199" ], - "failures": [], "pending": [], "skipped": [], - "duration": 15311, + "duration": 1, "root": false, "rootEmpty": false, "_timeout": 900000 @@ -970,49 +987,53 @@ "_timeout": 900000 }, { - "uuid": "08ef9c1e-4545-47c4-9480-ecb0dcf5ba03", - "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", + "uuid": "234c5aeb-caf1-49c9-8b7a-ce46e5ccbf97", + "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": "696a497f-6431-4d8f-ab62-ca586b93206d", + "uuid": "cb5c9785-ef32-4189-9e05-f56bea463489", "title": "tests for get", - "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", + "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": 77, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, + "duration": 1, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/contacts', { \n 'qs': {\"contactid\":452,\"familyname\":\"rej\",\"contactname\":\"BxJatQC\",\"contactstatus\":\"deceased\",\"limit\": 10,\"offset\": 0},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", - "err": {}, - "uuid": "48236dca-e775-4902-b7fe-70f74a2f34ea", - "parentUUID": "696a497f-6431-4d8f-ab62-ca586b93206d", + "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();", + "err": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "154fb39d-d09e-4d67-a615-06f4fadd14a4", + "parentUUID": "cb5c9785-ef32-4189-9e05-f56bea463489", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "48236dca-e775-4902-b7fe-70f74a2f34ea" + "passes": [], + "failures": [ + "154fb39d-d09e-4d67-a615-06f4fadd14a4" ], - "failures": [], "pending": [], "skipped": [], - "duration": 77, + "duration": 1, "root": false, "rootEmpty": false, "_timeout": 900000 @@ -1028,7 +1049,7 @@ "_timeout": 900000 }, { - "uuid": "252fd2ed-01e7-45ba-9187-30b0f31153b1", + "uuid": "60ed3fe6-f613-478b-af45-929866b1688d", "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", @@ -1037,7 +1058,7 @@ "tests": [], "suites": [ { - "uuid": "153e4ce4-6519-4ae9-b8da-a81b3f36844c", + "uuid": "4d9aa97c-265a-48b3-bed0-a58ffd9d4613", "title": "tests for get", "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", @@ -1048,87 +1069,33 @@ "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": 72, - "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\":\"mollit ut sed id ullamco\",\"count\":false,\"limit\": 10,\"offset\": 0},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", - "err": {}, - "uuid": "d02d8c8b-4190-42da-ba79-fa5b7d973abf", - "parentUUID": "153e4ce4-6519-4ae9-b8da-a81b3f36844c", - "isHook": false, - "skipped": false - } - ], - "suites": [], - "passes": [ - "d02d8c8b-4190-42da-ba79-fa5b7d973abf" - ], - "failures": [], - "pending": [], - "skipped": [], - "duration": 72, - "root": false, - "rootEmpty": false, - "_timeout": 900000 - } - ], - "passes": [], - "failures": [], - "pending": [], - "skipped": [], - "duration": 0, - "root": false, - "rootEmpty": false, - "_timeout": 900000 - }, - { - "uuid": "ee184f5c-1c18-45bd-a997-72f49cdac357", - "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": "46831d1e-f316-477e-b324-aa083f674d32", - "title": "tests for get", - "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 \"Returned download object.\"", - "fullTitle": "tests for /v2.0/data/frozen/{datasetid} tests for get should respond 200 for \"Returned download object.\"", - "timedOut": false, - "duration": 164, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, + "duration": 1, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "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();", - "err": {}, - "uuid": "16c9f0d9-510d-49ff-b166-aeca3edb2a7e", - "parentUUID": "46831d1e-f316-477e-b324-aa083f674d32", + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/dbtables', { \n 'qs': {\"table\":\"minim adipisicing\",\"count\":true,\"limit\": 10,\"offset\": 0},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "err": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "2fd52055-1983-4c24-87e1-09ff4586daae", + "parentUUID": "4d9aa97c-265a-48b3-bed0-a58ffd9d4613", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "16c9f0d9-510d-49ff-b166-aeca3edb2a7e" + "passes": [], + "failures": [ + "2fd52055-1983-4c24-87e1-09ff4586daae" ], - "failures": [], "pending": [], "skipped": [], - "duration": 164, + "duration": 1, "root": false, "rootEmpty": false, "_timeout": 900000 @@ -1144,49 +1111,53 @@ "_timeout": 900000 }, { - "uuid": "2df50e7f-2d48-4805-9830-9780ef104596", - "title": "tests for /v2.0/data/aedna/taxa/{taxonid}/sequences", - "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-aedna-taxa-{taxonid}-sequences-test.js", - "file": "/test/v2.0-data-aedna-taxa-{taxonid}-sequences-test.js", + "uuid": "bbd5d400-db54-4f1a-a749-428cfaeab2cd", + "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": [], "suites": [ { - "uuid": "2d9b5b86-d96b-45df-be7c-cba7851c99f5", + "uuid": "3f082f60-3ed6-4207-9087-2da78627b87f", "title": "tests for get", - "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-aedna-taxa-{taxonid}-sequences-test.js", - "file": "/test/v2.0-data-aedna-taxa-{taxonid}-sequences-test.js", + "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 \"An array of aeDNA sequences for the taxon.\"", - "fullTitle": "tests for /v2.0/data/aedna/taxa/{taxonid}/sequences tests for get should respond 200 for \"An array of aeDNA sequences for the taxon.\"", + "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": 78, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, + "duration": 3, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/aedna/taxa/500/sequences', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", - "err": {}, - "uuid": "6797b5c3-74b1-4ed1-8c79-15e830c6d248", - "parentUUID": "2d9b5b86-d96b-45df-be7c-cba7851c99f5", + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/taxa', { \n 'qs': {\"taxonname\":\"ut culpa eiusmod laborum\",\"taxagroup\":\"ut et aliqua\",\"ecolgroup\":\"velit consectetur ea in minim\",\"status\":true,\"limit\": 10,\"offset\": 0},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "err": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "ba1ec21b-4533-4af6-a456-17876653e281", + "parentUUID": "3f082f60-3ed6-4207-9087-2da78627b87f", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "6797b5c3-74b1-4ed1-8c79-15e830c6d248" + "passes": [], + "failures": [ + "ba1ec21b-4533-4af6-a456-17876653e281" ], - "failures": [], "pending": [], "skipped": [], - "duration": 78, + "duration": 3, "root": false, "rootEmpty": false, "_timeout": 900000 @@ -1202,49 +1173,53 @@ "_timeout": 900000 }, { - "uuid": "46ee8ebf-bf61-400e-bc09-e9c5adc403a9", - "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", + "uuid": "d23c6e58-722c-452f-b155-70c870bcfb1a", + "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": "f133edc3-bc2e-4883-b832-33cfa21e7fe6", + "uuid": "e7591b6c-80b8-4267-90de-34b8d6856717", "title": "tests for get", - "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", + "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 \"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 \"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": 2422, - "state": "passed", - "speed": "slow", - "pass": true, - "fail": false, + "duration": 2, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "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();", - "err": {}, - "uuid": "d1d51b41-70f3-4b22-852d-df8e0ba52de3", - "parentUUID": "f133edc3-bc2e-4883-b832-33cfa21e7fe6", + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/geopoliticalunits/1434', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "err": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "b9fecc84-dbd4-46f0-9eb9-f48ad9a5dd81", + "parentUUID": "e7591b6c-80b8-4267-90de-34b8d6856717", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "d1d51b41-70f3-4b22-852d-df8e0ba52de3" + "passes": [], + "failures": [ + "b9fecc84-dbd4-46f0-9eb9-f48ad9a5dd81" ], - "failures": [], "pending": [], "skipped": [], - "duration": 2422, + "duration": 2, "root": false, "rootEmpty": false, "_timeout": 900000 @@ -1260,49 +1235,53 @@ "_timeout": 900000 }, { - "uuid": "6db44940-c1fa-4576-94e1-00a1746754a0", - "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", + "uuid": "ec398a63-8bd2-46d8-9e2c-2092faf7c59e", + "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": [ { - "uuid": "2094222f-b3be-469b-8507-064866b114b7", + "uuid": "ed3a62d6-6d56-4592-a9c7-175e5a2c36e6", "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", + "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 \"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 \"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": 83, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, + "duration": 1, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "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();", - "err": {}, - "uuid": "8e582786-05c6-4cae-a574-eea6974cdbd4", - "parentUUID": "2094222f-b3be-469b-8507-064866b114b7", + "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();", + "err": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "516c9f7e-7c0a-44b7-8ab7-77161801903d", + "parentUUID": "ed3a62d6-6d56-4592-a9c7-175e5a2c36e6", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "8e582786-05c6-4cae-a574-eea6974cdbd4" + "passes": [], + "failures": [ + "516c9f7e-7c0a-44b7-8ab7-77161801903d" ], - "failures": [], "pending": [], "skipped": [], - "duration": 83, + "duration": 1, "root": false, "rootEmpty": false, "_timeout": 900000 @@ -1318,49 +1297,53 @@ "_timeout": 900000 }, { - "uuid": "03e662a4-ead5-4092-b152-591878513bdf", - "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", + "uuid": "a9901e9a-e984-4e98-aca6-9a6a44324363", + "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": [], "suites": [ { - "uuid": "9d43f8d8-024b-49d2-8441-f7b09bd4bf2e", + "uuid": "3212776a-51cf-4ce6-bde7-a1a8eb4eebf3", "title": "tests for get", - "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", + "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 \"occurrence\"", - "fullTitle": "tests for /v2.0/data/occurrences tests for get should respond 200 for \"occurrence\"", + "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": 99, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, + "duration": 1, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/occurrences', { \n 'qs': {\"taxonname\":\"occaecat cupidatat Ut\",\"taxonid\":35699,\"siteid\":48470,\"sitename\":\"voluptate\",\"datasettype\":\"modern plant 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\":23352942,\"ageyoung\": 1000,\"ageold\": 10000,\"limit\": 10,\"offset\": 0},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", - "err": {}, - "uuid": "2a049bd0-e0db-43e7-99c8-d05407520323", - "parentUUID": "9d43f8d8-024b-49d2-8441-f7b09bd4bf2e", + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/pollen', { \n 'qs': {\"taxonname\":\"esse incididunt dolor eu\",\"taxonid\":39814,\"siteid\":23882,\"sitename\":\"in officia nulla\",\"datasettype\":\"geochronologic\",\"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\":23767246,\"ageyoung\": 1000,\"ageold\": 10000,\"limit\": 10,\"offset\": 0},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "err": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "92bf8fa9-bcae-4496-a3a1-f38da94a94ec", + "parentUUID": "3212776a-51cf-4ce6-bde7-a1a8eb4eebf3", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "2a049bd0-e0db-43e7-99c8-d05407520323" + "passes": [], + "failures": [ + "92bf8fa9-bcae-4496-a3a1-f38da94a94ec" ], - "failures": [], "pending": [], "skipped": [], - "duration": 99, + "duration": 1, "root": false, "rootEmpty": false, "_timeout": 900000 @@ -1376,49 +1359,53 @@ "_timeout": 900000 }, { - "uuid": "86721e0d-430c-47dd-960e-a2bf9fa43c81", - "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", + "uuid": "425e8939-2d14-4d2f-bd8d-89d28713e081", + "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": [ { - "uuid": "3a79ce21-6312-4369-a1e7-e9a1deaee99f", + "uuid": "1f3f1a90-4027-4746-a540-03e833a6e455", "title": "tests for get", - "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", + "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/collectiontypes tests for get 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": 75, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, + "duration": 2, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "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();", - "err": {}, - "uuid": "0e1b4177-b403-4335-9bbf-0fbae2dac1f0", - "parentUUID": "3a79ce21-6312-4369-a1e7-e9a1deaee99f", + "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": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "13946b7c-51c7-4880-97ec-a997b1b439a4", + "parentUUID": "1f3f1a90-4027-4746-a540-03e833a6e455", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "0e1b4177-b403-4335-9bbf-0fbae2dac1f0" + "passes": [], + "failures": [ + "13946b7c-51c7-4880-97ec-a997b1b439a4" ], - "failures": [], "pending": [], "skipped": [], - "duration": 75, + "duration": 2, "root": false, "rootEmpty": false, "_timeout": 900000 @@ -1434,49 +1421,53 @@ "_timeout": 900000 }, { - "uuid": "b6642877-303d-4f4a-a513-9c6229e1c056", - "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", + "uuid": "4965c9aa-6fac-4625-bd38-1ef6d7d8843f", + "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": "cab7ca80-734f-48a7-807e-77b76ca671ff", + "uuid": "88e3e6a3-2018-4490-93fb-6c5d47c49c03", "title": "tests for get", - "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", + "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 \"Contact\"", - "fullTitle": "tests for /v1.5/data/contacts/{contactid} tests for get should respond 200 for \"Contact\"", + "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": 71, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, + "duration": 1, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "pending": false, "context": null, - "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": "e6b6e018-8eda-4fbf-afae-638655e38cde", - "parentUUID": "cab7ca80-734f-48a7-807e-77b76ca671ff", + "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": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "0570745c-a617-4d47-8160-650e0217c186", + "parentUUID": "88e3e6a3-2018-4490-93fb-6c5d47c49c03", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "e6b6e018-8eda-4fbf-afae-638655e38cde" + "passes": [], + "failures": [ + "0570745c-a617-4d47-8160-650e0217c186" ], - "failures": [], "pending": [], "skipped": [], - "duration": 71, + "duration": 1, "root": false, "rootEmpty": false, "_timeout": 900000 @@ -1492,107 +1483,92 @@ "_timeout": 900000 }, { - "uuid": "a20bf39f-8b7a-4b57-8d85-123a8fe1343f", - "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", + "uuid": "fe1532e1-046f-4f31-b4a9-51007f8c49b5", + "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": [], - "suites": [ + "tests": [ { - "uuid": "f4c979a0-bec4-421d-9fa1-732545936767", - "title": "tests for get", - "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 chronology object.\"", - "fullTitle": "tests for /v2.0/data/chronologies/{chronid} tests for get should respond 200 for \"A Neotoma chronology object.\"", - "timedOut": false, - "duration": 89, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, - "pending": false, - "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/chronologies/500', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", - "err": {}, - "uuid": "70e0d674-e24d-4b15-b1fb-c42eb5d7bfae", - "parentUUID": "f4c979a0-bec4-421d-9fa1-732545936767", - "isHook": false, - "skipped": false - } - ], - "suites": [], - "passes": [ - "70e0d674-e24d-4b15-b1fb-c42eb5d7bfae" - ], - "failures": [], - "pending": [], - "skipped": [], - "duration": 89, - "root": false, - "rootEmpty": false, - "_timeout": 900000 + "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": "df5b141e-0782-4bde-b1ee-793ded3c5ee0", + "parentUUID": "fe1532e1-046f-4f31-b4a9-51007f8c49b5", + "isHook": false, + "skipped": false } ], - "passes": [], + "suites": [], + "passes": [ + "df5b141e-0782-4bde-b1ee-793ded3c5ee0" + ], "failures": [], "pending": [], "skipped": [], "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 900000 + "_timeout": 5000 }, { - "uuid": "cd222990-18e9-4997-8a29-6f8b6435c326", - "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", + "uuid": "4e602f78-356c-4585-83e4-c1497741bde2", + "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": "30b820c4-885c-426a-9e2d-878313d446e5", + "uuid": "bf8dc29b-663f-4e77-a713-da068d9197eb", "title": "tests for get", - "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", + "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 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 \"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": 76, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, + "duration": 2, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/publications', { \n 'qs': {\"publicationid\":10734,\"datasetid\":92176777,\"siteid\":3269,\"familyname\":\"R-eZmtqPJWL\",\"pubtype\":\"Undergraduate thesis\",\"year\":1533,\"search\":\"eiusmod velit quis\",\"limit\": 10,\"offset\": 0},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", - "err": {}, - "uuid": "b10f08a4-2098-47db-91b6-87fe37f18dc6", - "parentUUID": "30b820c4-885c-426a-9e2d-878313d446e5", + "code": "var response = request('get', 'http://localhost:3001/v2.0/apps/depenvt', { \n 'qs': {\"siteid\":29633,\"datasetid\":16224114,\"collectionunitid\":7475},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "err": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "83a7d6c2-7b32-4272-8344-d37c82606a00", + "parentUUID": "bf8dc29b-663f-4e77-a713-da068d9197eb", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "b10f08a4-2098-47db-91b6-87fe37f18dc6" + "passes": [], + "failures": [ + "83a7d6c2-7b32-4272-8344-d37c82606a00" ], - "failures": [], "pending": [], "skipped": [], - "duration": 76, + "duration": 2, "root": false, "rootEmpty": false, "_timeout": 900000 @@ -1608,49 +1584,53 @@ "_timeout": 900000 }, { - "uuid": "3f5bba6b-41d5-4cc5-b301-4ea4749db90b", - "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", + "uuid": "30876926-8c0f-4b26-b1e7-a52f07a7ae97", + "title": "tests for /v2.0/data/aedna/taxa/{taxonid}/sequences", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-aedna-taxa-{taxonid}-sequences-test.js", + "file": "/test/v2.0-data-aedna-taxa-{taxonid}-sequences-test.js", "beforeHooks": [], "afterHooks": [], "tests": [], "suites": [ { - "uuid": "79c5b9a1-b578-4b98-b41d-fe2a08500003", + "uuid": "3cf6c688-6963-47e2-9ff5-8aa975b97788", "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", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-aedna-taxa-{taxonid}-sequences-test.js", + "file": "/test/v2.0-data-aedna-taxa-{taxonid}-sequences-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 \"An array of aeDNA sequences for the taxon.\"", + "fullTitle": "tests for /v2.0/data/aedna/taxa/{taxonid}/sequences tests for get should respond 200 for \"An array of aeDNA sequences for the taxon.\"", "timedOut": false, - "duration": 116, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, + "duration": 2, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "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": "04f5e5ef-2003-4868-93a6-5d5777abb483", - "parentUUID": "79c5b9a1-b578-4b98-b41d-fe2a08500003", + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/aedna/taxa/500/sequences', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "err": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "e6d1d3de-05bd-448b-ab58-c47f873029aa", + "parentUUID": "3cf6c688-6963-47e2-9ff5-8aa975b97788", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "04f5e5ef-2003-4868-93a6-5d5777abb483" + "passes": [], + "failures": [ + "e6d1d3de-05bd-448b-ab58-c47f873029aa" ], - "failures": [], "pending": [], "skipped": [], - "duration": 116, + "duration": 2, "root": false, "rootEmpty": false, "_timeout": 900000 @@ -1666,145 +1646,53 @@ "_timeout": 900000 }, { - "uuid": "6f85699d-b0f9-4069-b139-2a438e9bf45b", - "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": 88, - "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": "7f37cedf-6ef1-448a-9cc5-392aab11a57b", - "parentUUID": "6f85699d-b0f9-4069-b139-2a438e9bf45b", - "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": 72, - "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": "cc3481dd-799d-4503-a23c-797410d137b0", - "parentUUID": "6f85699d-b0f9-4069-b139-2a438e9bf45b", - "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": 72, - "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": "9ded50ab-ff63-46c4-a62d-98ae590316cc", - "parentUUID": "6f85699d-b0f9-4069-b139-2a438e9bf45b", - "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": 72, - "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": "9428641e-6804-4d34-b783-b6cb6dd98504", - "parentUUID": "6f85699d-b0f9-4069-b139-2a438e9bf45b", - "isHook": false, - "skipped": false - } - ], - "suites": [], - "passes": [ - "7f37cedf-6ef1-448a-9cc5-392aab11a57b", - "cc3481dd-799d-4503-a23c-797410d137b0", - "9ded50ab-ff63-46c4-a62d-98ae590316cc", - "9428641e-6804-4d34-b783-b6cb6dd98504" - ], - "failures": [], - "pending": [], - "skipped": [], - "duration": 304, - "root": false, - "rootEmpty": false, - "_timeout": 5000 - }, - { - "uuid": "b1d48d9d-5604-49c5-b1b3-026111358f19", - "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", + "uuid": "96b0dac0-915b-44ba-b2bf-8018135984bd", + "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": "e1519a84-1119-41dd-83b8-fe5a2ef7997f", + "uuid": "5566a193-196b-4d1c-88fd-80caa8cff741", "title": "tests for get", - "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", + "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 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 \"Returned download object.\"", + "fullTitle": "tests for /v2.0/data/frozen/{datasetid} tests for get should respond 200 for \"Returned download object.\"", "timedOut": false, - "duration": 79, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, + "duration": 3, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/datasets_elc', { \n 'qs': {\"siteid\":32407,\"contactid\":17454,\"datasettype\":\"Metabarcoding aeDNA\",\"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\":22904221},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", - "err": {}, - "uuid": "1ee95b81-14d8-4315-a053-8ec9cd15e46e", - "parentUUID": "e1519a84-1119-41dd-83b8-fe5a2ef7997f", + "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();", + "err": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "0d623768-ad89-4691-a8ba-896fd19ec41e", + "parentUUID": "5566a193-196b-4d1c-88fd-80caa8cff741", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "1ee95b81-14d8-4315-a053-8ec9cd15e46e" + "passes": [], + "failures": [ + "0d623768-ad89-4691-a8ba-896fd19ec41e" ], - "failures": [], "pending": [], "skipped": [], - "duration": 79, + "duration": 3, "root": false, "rootEmpty": false, "_timeout": 900000 @@ -1820,49 +1708,53 @@ "_timeout": 900000 }, { - "uuid": "cbff194e-6258-44ba-8ce4-5f8c24f95481", - "title": "tests for /v2.0/data/geopoliticalunits/{gpid}/sites", - "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", + "uuid": "0081c43c-b949-471d-afae-d4ef500521c3", + "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": [], "suites": [ { - "uuid": "f6a9d4bc-07c5-41bc-b87d-4d530ae04456", + "uuid": "f2ae5276-3a42-4d0e-a644-3eaa4f14bb54", "title": "tests for get", - "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", + "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 sites.\"", - "fullTitle": "tests for /v2.0/data/geopoliticalunits/{gpid}/sites tests for get should respond 200 for \"An array of sites.\"", + "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": 149, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, + "duration": 1, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/geopoliticalunits/2999/sites', { \n 'qs': {\"limit\": 10,\"offset\": 0},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", - "err": {}, - "uuid": "3ef2b0b1-781a-4895-92bd-f388204ea243", - "parentUUID": "f6a9d4bc-07c5-41bc-b87d-4d530ae04456", + "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": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "313d7627-6961-472c-bc86-d213b7aa96cf", + "parentUUID": "f2ae5276-3a42-4d0e-a644-3eaa4f14bb54", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "3ef2b0b1-781a-4895-92bd-f388204ea243" + "passes": [], + "failures": [ + "313d7627-6961-472c-bc86-d213b7aa96cf" ], - "failures": [], "pending": [], "skipped": [], - "duration": 149, + "duration": 1, "root": false, "rootEmpty": false, "_timeout": 900000 @@ -1878,49 +1770,53 @@ "_timeout": 900000 }, { - "uuid": "0a8e6803-7324-4572-bb0b-9d9f3c7dcfea", - "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", + "uuid": "1f4e2537-85c9-43fb-acf5-40874d3f0bbe", + "title": "tests for /v2.0/data/aedna/sequences/{datasetid}", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-aedna-sequences-{datasetid}-test.js", + "file": "/test/v2.0-data-aedna-sequences-{datasetid}-test.js", "beforeHooks": [], "afterHooks": [], "tests": [], "suites": [ { - "uuid": "e1d2ac41-b29e-4a1c-bb8b-402aaa608a97", + "uuid": "e695269b-9cdc-4b0f-bf0f-00b72e468adc", "title": "tests for get", - "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", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-aedna-sequences-{datasetid}-test.js", + "file": "/test/v2.0-data-aedna-sequences-{datasetid}-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 \"aeDNA sequences grouped by taxon for the dataset.\"", + "fullTitle": "tests for /v2.0/data/aedna/sequences/{datasetid} tests for get should respond 200 for \"aeDNA sequences grouped by taxon for the dataset.\"", "timedOut": false, - "duration": 203, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, + "duration": 1, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "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();", - "err": {}, - "uuid": "cce979cf-eabf-4ad3-a100-fa89ba3ad18f", - "parentUUID": "e1d2ac41-b29e-4a1c-bb8b-402aaa608a97", + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/aedna/sequences/500', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "err": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "f3a1cfe0-49bc-4850-b033-969ffbca9c2c", + "parentUUID": "e695269b-9cdc-4b0f-bf0f-00b72e468adc", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "cce979cf-eabf-4ad3-a100-fa89ba3ad18f" + "passes": [], + "failures": [ + "f3a1cfe0-49bc-4850-b033-969ffbca9c2c" ], - "failures": [], "pending": [], "skipped": [], - "duration": 203, + "duration": 1, "root": false, "rootEmpty": false, "_timeout": 900000 @@ -1936,49 +1832,53 @@ "_timeout": 900000 }, { - "uuid": "bc8f5625-ec2d-43e9-8396-36386cfa5cbb", - "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", + "uuid": "e74eeb6c-2392-4bfc-879a-c2168f0a494a", + "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": "52ecfe3a-0c79-4f23-bc5e-c85aac1d327d", + "uuid": "2148ad33-07e8-4a41-8aba-484ccf77d403", "title": "tests for get", - "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", + "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 \"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 \"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": 7166, - "state": "passed", - "speed": "slow", - "pass": true, - "fail": false, + "duration": 1, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "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();", - "err": {}, - "uuid": "e500ebf2-2954-49f7-a59b-9f9a45b9c4db", - "parentUUID": "52ecfe3a-0c79-4f23-bc5e-c85aac1d327d", + "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": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "57e254b0-c51a-4ed1-9fb3-79e874124939", + "parentUUID": "2148ad33-07e8-4a41-8aba-484ccf77d403", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "e500ebf2-2954-49f7-a59b-9f9a45b9c4db" + "passes": [], + "failures": [ + "57e254b0-c51a-4ed1-9fb3-79e874124939" ], - "failures": [], "pending": [], "skipped": [], - "duration": 7166, + "duration": 1, "root": false, "rootEmpty": false, "_timeout": 900000 @@ -1994,49 +1894,53 @@ "_timeout": 900000 }, { - "uuid": "48fa8509-c347-4876-8417-3cd6e68c330b", - "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", + "uuid": "f2956282-271d-413e-88ec-5e2d7057c13d", + "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": "b21ef8be-3813-417d-b7bc-c1b52170d099", + "uuid": "65d03f96-9054-459e-a256-eb9289fb697c", "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", + "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 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 \"DOI\"", + "fullTitle": "tests for /v2.0/data/datasets/{datasetid}/doi tests for get should respond 200 for \"DOI\"", "timedOut": false, - "duration": 68, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, + "duration": 1, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/contacts/7269', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", - "err": {}, - "uuid": "07c69279-d6fa-473c-a904-04f77976f804", - "parentUUID": "b21ef8be-3813-417d-b7bc-c1b52170d099", + "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();", + "err": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "d095b2eb-1152-4521-ad27-62ec2666d18b", + "parentUUID": "65d03f96-9054-459e-a256-eb9289fb697c", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "07c69279-d6fa-473c-a904-04f77976f804" + "passes": [], + "failures": [ + "d095b2eb-1152-4521-ad27-62ec2666d18b" ], - "failures": [], "pending": [], "skipped": [], - "duration": 68, + "duration": 1, "root": false, "rootEmpty": false, "_timeout": 900000 @@ -2052,49 +1956,53 @@ "_timeout": 900000 }, { - "uuid": "0f65ca79-4a9e-4654-83bd-8b401aab5b0d", - "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", + "uuid": "46c7de2b-e415-497e-8709-69cb8849fe99", + "title": "tests for /v2.0/data/datasets/{datasetid}/projects", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-datasets-{datasetid}-projects-test.js", + "file": "/test/v2.0-data-datasets-{datasetid}-projects-test.js", "beforeHooks": [], "afterHooks": [], "tests": [], "suites": [ { - "uuid": "c7e3c833-355d-464e-abb2-c76ed358d7df", + "uuid": "f23f76d2-b293-47ee-a146-80a6a457d849", "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", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-datasets-{datasetid}-projects-test.js", + "file": "/test/v2.0-data-datasets-{datasetid}-projects-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 \"Projects\"", + "fullTitle": "tests for /v2.0/data/datasets/{datasetid}/projects tests for get should respond 200 for \"Projects\"", "timedOut": false, - "duration": 152, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, + "duration": 1, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/taxa', { \n 'qs': {\"taxonname\":\"aliqua ullamco Lorem\",\"taxagroup\":\"aliquip laboris nostrud\",\"ecolgroup\":\"ut ad\",\"status\":true,\"limit\": 10,\"offset\": 0},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", - "err": {}, - "uuid": "f8d9b3c0-18a3-4194-9176-1e043ba4c717", - "parentUUID": "c7e3c833-355d-464e-abb2-c76ed358d7df", + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/datasets/500/projects', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "err": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "ac90b92d-6b46-4cd2-98f2-5801500df1e9", + "parentUUID": "f23f76d2-b293-47ee-a146-80a6a457d849", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "f8d9b3c0-18a3-4194-9176-1e043ba4c717" + "passes": [], + "failures": [ + "ac90b92d-6b46-4cd2-98f2-5801500df1e9" ], - "failures": [], "pending": [], "skipped": [], - "duration": 152, + "duration": 1, "root": false, "rootEmpty": false, "_timeout": 900000 @@ -2110,49 +2018,53 @@ "_timeout": 900000 }, { - "uuid": "9ee7e2a2-dae4-4416-b12f-4244d40ca107", - "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", + "uuid": "ffab5900-596f-423f-a933-7c9c67e73fa5", + "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": "d556af3f-fe74-41d2-9654-5d7f0d4cc383", + "uuid": "69be6167-d6b6-4d0e-9dd1-3aeaca8c1cdb", "title": "tests for get", - "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", + "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 \"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 \"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": 84, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, + "duration": 1, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "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();", - "err": {}, - "uuid": "75992bb6-efed-49f5-9e67-524002925b9e", - "parentUUID": "d556af3f-fe74-41d2-9654-5d7f0d4cc383", + "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();", + "err": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "c12d5170-dec4-482d-85e9-0fe5d54b46a2", + "parentUUID": "69be6167-d6b6-4d0e-9dd1-3aeaca8c1cdb", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "75992bb6-efed-49f5-9e67-524002925b9e" + "passes": [], + "failures": [ + "c12d5170-dec4-482d-85e9-0fe5d54b46a2" ], - "failures": [], "pending": [], "skipped": [], - "duration": 84, + "duration": 1, "root": false, "rootEmpty": false, "_timeout": 900000 @@ -2168,49 +2080,53 @@ "_timeout": 900000 }, { - "uuid": "5060d849-3628-4d0a-9047-71d2b955e1fd", - "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", + "uuid": "35e6e610-0820-4b44-98df-d88e194dbfca", + "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": "20e90990-71c4-43d9-afb2-aa3277f4540c", + "uuid": "70fd1b0f-1752-4570-874f-9a7897c72d26", "title": "tests for get", - "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", + "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 \"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 \"contact\"", + "fullTitle": "tests for /v2.0/data/sites/{siteid}/contacts tests for get should respond 200 for \"contact\"", "timedOut": false, - "duration": 72, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, + "duration": 1, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "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();", - "err": {}, - "uuid": "6d2bce92-d8f3-42a8-9896-9bf7fba502b1", - "parentUUID": "20e90990-71c4-43d9-afb2-aa3277f4540c", + "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();", + "err": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "9fb244e2-ff93-47eb-84b4-9621686cd8f6", + "parentUUID": "70fd1b0f-1752-4570-874f-9a7897c72d26", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "6d2bce92-d8f3-42a8-9896-9bf7fba502b1" + "passes": [], + "failures": [ + "9fb244e2-ff93-47eb-84b4-9621686cd8f6" ], - "failures": [], "pending": [], "skipped": [], - "duration": 72, + "duration": 1, "root": false, "rootEmpty": false, "_timeout": 900000 @@ -2226,49 +2142,53 @@ "_timeout": 900000 }, { - "uuid": "c55de71d-6fee-4f53-b7dd-5671aa6552cc", - "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", + "uuid": "bef26341-bb6a-42bd-9cec-ff0976e179e0", + "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": "a325f2a1-17de-4c00-ae48-985b72cf2f70", + "uuid": "a8246b60-8a35-4f44-a11f-7b5d8a5aa874", "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", + "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 \"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 \"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": 273, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, + "duration": 1, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/spatial/icesheet', { \n 'qs': {\"age\":16742,\"proj\": 4326,\"prec\": 1000},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", - "err": {}, - "uuid": "a81eddc8-59db-4d48-bd7e-e61dec321347", - "parentUUID": "a325f2a1-17de-4c00-ae48-985b72cf2f70", + "code": "var response = request('get', 'http://localhost:3001/v1.5/data/geopoliticalunits', { \n 'qs': {\"gpid\":5392,\"gpname\":\"Canada\",\"rank\":4,\"lower\":true},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "err": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "5576246c-4623-43be-8375-1d66e7d3542a", + "parentUUID": "a8246b60-8a35-4f44-a11f-7b5d8a5aa874", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "a81eddc8-59db-4d48-bd7e-e61dec321347" + "passes": [], + "failures": [ + "5576246c-4623-43be-8375-1d66e7d3542a" ], - "failures": [], "pending": [], "skipped": [], - "duration": 273, + "duration": 1, "root": false, "rootEmpty": false, "_timeout": 900000 @@ -2284,49 +2204,53 @@ "_timeout": 900000 }, { - "uuid": "ee9effef-f0c5-481a-a127-3d1b732c7521", - "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", + "uuid": "76d80c93-c5e9-4e4b-9fe4-70f9fa763c41", + "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": "9944967e-4ede-4a56-a79d-210fdfa34674", + "uuid": "6f0f565d-db42-4cfb-8594-4453f9b79b82", "title": "tests for get", - "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", + "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 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 \"Publication\"", + "fullTitle": "tests for /v2.0/data/datasets/{datasetid}/publications tests for get should respond 200 for \"Publication\"", "timedOut": false, - "duration": 5, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, + "duration": 1, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/pollen/5379', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", - "err": {}, - "uuid": "c5872fa8-29fc-4586-bb6c-4e8a83c2fd6c", - "parentUUID": "9944967e-4ede-4a56-a79d-210fdfa34674", + "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();", + "err": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "66985902-94a9-4090-a8b1-3ad758dac39e", + "parentUUID": "6f0f565d-db42-4cfb-8594-4453f9b79b82", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "c5872fa8-29fc-4586-bb6c-4e8a83c2fd6c" + "passes": [], + "failures": [ + "66985902-94a9-4090-a8b1-3ad758dac39e" ], - "failures": [], "pending": [], "skipped": [], - "duration": 5, + "duration": 1, "root": false, "rootEmpty": false, "_timeout": 900000 @@ -2342,49 +2266,53 @@ "_timeout": 900000 }, { - "uuid": "51ce9bfb-c6cf-412f-8128-d5c451ecce9f", - "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", + "uuid": "419dab6a-05c9-4729-9352-f7be3261e287", + "title": "tests for /v2.0/data/contacts/{contactid}/publications", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-contacts-{contactid}-publications-test.js", + "file": "/test/v2.0-data-contacts-{contactid}-publications-test.js", "beforeHooks": [], "afterHooks": [], "tests": [], "suites": [ { - "uuid": "f7b4ab1a-063d-4f45-bedd-00bba63fdbfa", + "uuid": "f9cfea1a-65ea-4597-b3d9-a2a0f9dd1728", "title": "tests for get", - "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", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-contacts-{contactid}-publications-test.js", + "file": "/test/v2.0-data-contacts-{contactid}-publications-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 \"An array of publications associated with the contact.\"", + "fullTitle": "tests for /v2.0/data/contacts/{contactid}/publications tests for get should respond 200 for \"An array of publications associated with the contact.\"", "timedOut": false, - "duration": 98, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, + "duration": 0, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v1.5/data/geopoliticalunits', { \n 'qs': {\"gpid\":5392,\"gpname\":\"Canada\",\"rank\":3,\"lower\":true},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", - "err": {}, - "uuid": "41eeae47-7a3e-4c4e-a40d-34fff8233cb6", - "parentUUID": "f7b4ab1a-063d-4f45-bedd-00bba63fdbfa", + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/contacts/500/publications', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "err": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "ac6985a6-fdad-49fc-9ae0-8f7ad40e82d8", + "parentUUID": "f9cfea1a-65ea-4597-b3d9-a2a0f9dd1728", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "41eeae47-7a3e-4c4e-a40d-34fff8233cb6" + "passes": [], + "failures": [ + "ac6985a6-fdad-49fc-9ae0-8f7ad40e82d8" ], - "failures": [], "pending": [], "skipped": [], - "duration": 98, + "duration": 0, "root": false, "rootEmpty": false, "_timeout": 900000 @@ -2400,49 +2328,53 @@ "_timeout": 900000 }, { - "uuid": "73701b41-4692-4225-8935-f819298bd08a", - "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", + "uuid": "ff158667-7b2a-4da9-bf7e-3337f5e0f609", + "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": "cabc43b5-4f44-4eeb-88f9-b16b2daf4dda", + "uuid": "f94cdafa-a862-473e-9894-f373d7be9135", "title": "tests for get", - "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", + "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 \"chronology\"", - "fullTitle": "tests for /v2.0/data/sites/{siteid}/chronologies tests for get should respond 200 for \"chronology\"", + "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": 84, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, + "duration": 0, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/sites/1641/chronologies', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", - "err": {}, - "uuid": "c9cd2e15-29d8-4dea-97f7-51aebe9fba1e", - "parentUUID": "cabc43b5-4f44-4eeb-88f9-b16b2daf4dda", + "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();", + "err": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "62acf73b-d5ff-43bb-8d1a-96706e7f4c51", + "parentUUID": "f94cdafa-a862-473e-9894-f373d7be9135", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "c9cd2e15-29d8-4dea-97f7-51aebe9fba1e" + "passes": [], + "failures": [ + "62acf73b-d5ff-43bb-8d1a-96706e7f4c51" ], - "failures": [], "pending": [], "skipped": [], - "duration": 84, + "duration": 0, "root": false, "rootEmpty": false, "_timeout": 900000 @@ -2458,49 +2390,53 @@ "_timeout": 900000 }, { - "uuid": "65edbdc9-78d4-45f8-9558-4167ba0a8110", - "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", + "uuid": "d5da15ca-a070-48df-a484-d135c911c32b", + "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": "4c85feec-d76f-4285-8369-0a2497b2aed2", + "uuid": "6cfc8380-515b-4e73-b3bb-2073df98d8c8", "title": "tests for get", - "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", + "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 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 \"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": 74, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, + "duration": 0, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/publications/500', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", - "err": {}, - "uuid": "04d990b5-7d1e-4d9e-9eab-2e632fa584c5", - "parentUUID": "4c85feec-d76f-4285-8369-0a2497b2aed2", + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/sites/500/datasets', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "err": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "953112ef-461f-4968-bdf0-4e8055846ab0", + "parentUUID": "6cfc8380-515b-4e73-b3bb-2073df98d8c8", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "04d990b5-7d1e-4d9e-9eab-2e632fa584c5" + "passes": [], + "failures": [ + "953112ef-461f-4968-bdf0-4e8055846ab0" ], - "failures": [], "pending": [], "skipped": [], - "duration": 74, + "duration": 0, "root": false, "rootEmpty": false, "_timeout": 900000 @@ -2516,49 +2452,53 @@ "_timeout": 900000 }, { - "uuid": "0c210bcf-1ce7-4f04-b333-e347033032b9", - "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", + "uuid": "ef51f1cf-5013-4c89-b03f-ad868a487800", + "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": [], "suites": [ { - "uuid": "9da26cd0-4276-4be8-b8b6-9bd19305bd19", + "uuid": "5b826aee-2b0f-4eff-98ed-94d543d8419f", "title": "tests for get", - "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", + "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 \"DOI\"", - "fullTitle": "tests for /v2.0/data/datasets/{datasetid}/doi tests for get should respond 200 for \"DOI\"", + "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": 69, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, + "duration": 0, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "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();", - "err": {}, - "uuid": "f3816f74-1e42-4224-a08f-71064e847c18", - "parentUUID": "9da26cd0-4276-4be8-b8b6-9bd19305bd19", + "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();", + "err": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "5f8ecb7f-e7f9-443a-8dfd-4df827d4f5cc", + "parentUUID": "5b826aee-2b0f-4eff-98ed-94d543d8419f", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "f3816f74-1e42-4224-a08f-71064e847c18" + "passes": [], + "failures": [ + "5f8ecb7f-e7f9-443a-8dfd-4df827d4f5cc" ], - "failures": [], "pending": [], "skipped": [], - "duration": 69, + "duration": 0, "root": false, "rootEmpty": false, "_timeout": 900000 @@ -2574,279 +2514,115 @@ "_timeout": 900000 }, { - "uuid": "4a64f792-0a12-4fa9-bdfb-f3dcf7a421b7", - "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", + "uuid": "4ddd703d-5635-4fe1-88f0-2f0bcfdc306d", + "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": "fadac25a-3669-4fd3-895f-cef401741185", + "uuid": "09ab9c42-f7d2-42af-90a5-5500a0ae6e83", "title": "tests for get", - "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", + "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 \"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 sites.\"", + "fullTitle": "tests for /v2.0/data/sites/{siteid} tests for get should respond 200 for \"An array of sites.\"", "timedOut": false, - "duration": 69, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, + "duration": 1, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/dbtables/pariatursintnisi', { \n 'qs': {\"count\":false,\"limit\": 10,\"offset\": 0},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", - "err": {}, - "uuid": "a358abc9-4792-4b11-b720-f1c2dbb05179", - "parentUUID": "fadac25a-3669-4fd3-895f-cef401741185", + "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": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "61797fb9-9312-419b-94b3-1cf5a3e223c6", + "parentUUID": "09ab9c42-f7d2-42af-90a5-5500a0ae6e83", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "a358abc9-4792-4b11-b720-f1c2dbb05179" + "passes": [], + "failures": [ + "61797fb9-9312-419b-94b3-1cf5a3e223c6" ], - "failures": [], "pending": [], "skipped": [], - "duration": 69, + "duration": 1, "root": false, "rootEmpty": false, "_timeout": 900000 } ], - "passes": [], - "failures": [], - "pending": [], - "skipped": [], - "duration": 0, - "root": false, - "rootEmpty": false, - "_timeout": 900000 - }, - { - "uuid": "97e7f315-8d81-4bcd-a02a-8b83849a3724", - "title": "Get contact data:", - "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/contacts.js", - "file": "/test/contacts.js", - "beforeHooks": [], - "afterHooks": [], - "tests": [ - { - "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": 74, - "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": "bf07d4e1-3b01-4bd0-81ac-beee35d9155e", - "parentUUID": "97e7f315-8d81-4bcd-a02a-8b83849a3724", - "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": 81, - "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": "b2b42c32-b01f-43b4-97f3-8aa707b7c6d3", - "parentUUID": "97e7f315-8d81-4bcd-a02a-8b83849a3724", - "isHook": false, - "skipped": false - }, - { - "title": "Contact queries should be case insensitive:", - "fullTitle": "Get contact data: Contact queries should be case insensitive:", - "timedOut": false, - "duration": 75, - "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": "518944e6-ea9e-4d8b-93b6-eab7994f6096", - "parentUUID": "97e7f315-8d81-4bcd-a02a-8b83849a3724", - "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": 76, - "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": "1b4bf138-46c6-43cb-ad6a-bf8675d5279a", - "parentUUID": "97e7f315-8d81-4bcd-a02a-8b83849a3724", - "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": 75, - "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": "61caad56-9682-410c-935d-9a2432976ded", - "parentUUID": "97e7f315-8d81-4bcd-a02a-8b83849a3724", - "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": 72, - "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": "cfdb9e5b-4ce7-4d0c-939e-38f8cb736eea", - "parentUUID": "97e7f315-8d81-4bcd-a02a-8b83849a3724", - "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": 101, - "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": "c74972ce-ac7d-4ccd-9073-a2f850b4f0c1", - "parentUUID": "97e7f315-8d81-4bcd-a02a-8b83849a3724", - "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": 74, - "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": "77da9e68-1631-417b-a81b-9cde9b9aab85", - "parentUUID": "97e7f315-8d81-4bcd-a02a-8b83849a3724", - "isHook": false, - "skipped": false - } - ], - "suites": [], - "passes": [ - "bf07d4e1-3b01-4bd0-81ac-beee35d9155e", - "b2b42c32-b01f-43b4-97f3-8aa707b7c6d3", - "518944e6-ea9e-4d8b-93b6-eab7994f6096", - "1b4bf138-46c6-43cb-ad6a-bf8675d5279a", - "61caad56-9682-410c-935d-9a2432976ded", - "cfdb9e5b-4ce7-4d0c-939e-38f8cb736eea", - "c74972ce-ac7d-4ccd-9073-a2f850b4f0c1", - "77da9e68-1631-417b-a81b-9cde9b9aab85" - ], + "passes": [], "failures": [], "pending": [], "skipped": [], - "duration": 628, + "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 5000 + "_timeout": 900000 }, { - "uuid": "c1d26cf0-83c5-455b-b5aa-606373d8d3cc", - "title": "tests for /v2.0/data/contacts/{contactid}/publications", - "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-contacts-{contactid}-publications-test.js", - "file": "/test/v2.0-data-contacts-{contactid}-publications-test.js", + "uuid": "f429ef95-c814-40fc-af44-e0b86b12d25e", + "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": "a4932026-6ed2-4028-adc8-18e2870dbed0", + "uuid": "1f9fb5bf-17ac-448c-b930-e86d44567385", "title": "tests for get", - "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-contacts-{contactid}-publications-test.js", - "file": "/test/v2.0-data-contacts-{contactid}-publications-test.js", + "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 \"An array of publications associated with the contact.\"", - "fullTitle": "tests for /v2.0/data/contacts/{contactid}/publications tests for get should respond 200 for \"An array of publications associated with the contact.\"", + "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, + "duration": 1, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/contacts/500/publications', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", - "err": {}, - "uuid": "dacfd742-f0eb-4765-bb6d-47b5a474544f", - "parentUUID": "a4932026-6ed2-4028-adc8-18e2870dbed0", + "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();", + "err": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "1bfcd6d8-1e5f-4ce7-b382-e743e1af91ff", + "parentUUID": "1f9fb5bf-17ac-448c-b930-e86d44567385", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "dacfd742-f0eb-4765-bb6d-47b5a474544f" + "passes": [], + "failures": [ + "1bfcd6d8-1e5f-4ce7-b382-e743e1af91ff" ], - "failures": [], "pending": [], "skipped": [], - "duration": 71, + "duration": 1, "root": false, "rootEmpty": false, "_timeout": 900000 @@ -2862,88 +2638,158 @@ "_timeout": 900000 }, { - "uuid": "da91dbc5-c18d-4b19-ba65-71fbc01a451d", - "title": "Get chronology data by datasetid:", - "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/chronologies.js", - "file": "/test/chronologies.js", + "uuid": "d7476af6-add4-4906-a823-2d1600cc0ad8", + "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": "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": "`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": 0, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, + "duration": 1, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "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": "3396999a-e547-4195-9150-54325b3e685c", - "parentUUID": "da91dbc5-c18d-4b19-ba65-71fbc01a451d", + "code": "api.get('v2')\n .set('Accept', 'application/json')\n .expect(302, done);", + "err": { + "message": "AggregateError [ECONNREFUSED]: ", + "estack": "AggregateError [ECONNREFUSED]: \n at internalConnectMultiple (node:net:1139:18)\n at afterConnectMultiple (node:net:1712:7)", + "diff": null + }, + "uuid": "f77526a4-c271-4d32-8ab7-0eb4cf4cd757", + "parentUUID": "d7476af6-add4-4906-a823-2d1600cc0ad8", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "3396999a-e547-4195-9150-54325b3e685c" + "passes": [], + "failures": [ + "f77526a4-c271-4d32-8ab7-0eb4cf4cd757" + ], + "pending": [], + "skipped": [], + "duration": 1, + "root": false, + "rootEmpty": false, + "_timeout": 900000 + }, + { + "uuid": "9487c77d-d066-43d5-811f-5e0b3e7c4090", + "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": "08c012f6-e4f0-48b2-b5a4-75457a701599", + "title": "tests for get", + "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 \"Returned table.\"", + "fullTitle": "tests for /v2.0/data/dbtables/{table} tests for get should respond 200 for \"Returned table.\"", + "timedOut": false, + "duration": 1, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, + "pending": false, + "context": null, + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/dbtables/fugiatincididuntexid', { \n 'qs': {\"count\":true,\"limit\": 10,\"offset\": 0},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "err": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "934341c1-5b11-4745-96ea-fe66837d5f8c", + "parentUUID": "08c012f6-e4f0-48b2-b5a4-75457a701599", + "isHook": false, + "skipped": false + } + ], + "suites": [], + "passes": [], + "failures": [ + "934341c1-5b11-4745-96ea-fe66837d5f8c" + ], + "pending": [], + "skipped": [], + "duration": 1, + "root": false, + "rootEmpty": false, + "_timeout": 900000 + } ], + "passes": [], "failures": [], "pending": [], "skipped": [], "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 5000 + "_timeout": 900000 }, { - "uuid": "cbdbf15b-852b-4aed-97a5-0c36c0c4b028", - "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", + "uuid": "a5a29c59-f5e5-4242-849c-85e33a690874", + "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": "aed10d4b-f97a-4764-999c-4c43dc8492f6", + "uuid": "b7ba82de-5a8b-42fb-ac08-0937c05bccdb", "title": "tests for get", - "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", + "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 \"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 \"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": 21641, - "state": "passed", - "speed": "slow", - "pass": true, - "fail": false, + "duration": 1, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/apps/constdb/datasetages', { \n 'qs': {\"dbid\":2},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", - "err": {}, - "uuid": "f5dc263d-f6da-406f-9736-8dc661db50fc", - "parentUUID": "aed10d4b-f97a-4764-999c-4c43dc8492f6", + "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();", + "err": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "5f3912ee-c6ff-4183-ad7c-d3afa77947b1", + "parentUUID": "b7ba82de-5a8b-42fb-ac08-0937c05bccdb", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "f5dc263d-f6da-406f-9736-8dc661db50fc" + "passes": [], + "failures": [ + "5f3912ee-c6ff-4183-ad7c-d3afa77947b1" ], - "failures": [], "pending": [], "skipped": [], - "duration": 21641, + "duration": 1, "root": false, "rootEmpty": false, "_timeout": 900000 @@ -2959,49 +2805,115 @@ "_timeout": 900000 }, { - "uuid": "805213b7-c359-4b05-b3d8-6bf739a02990", - "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", + "uuid": "4b981260-6f43-47cc-bf64-203aac3fae8d", + "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": [ { - "uuid": "9bb2afe5-b4fd-43c9-8377-5ba4e819b681", + "uuid": "8d67bdfa-d540-4f64-8d0d-e50170698de9", "title": "tests for get", - "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", + "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 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.\"", + "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": 6237, - "state": "passed", - "speed": "slow", - "pass": true, - "fail": false, + "duration": 0, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "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": "32b53bce-9c07-4ae4-ae41-1043af9fea85", - "parentUUID": "9bb2afe5-b4fd-43c9-8377-5ba4e819b681", + "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": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "9bfe25bd-0e1e-4dde-9fd0-c60ee09e3bbc", + "parentUUID": "8d67bdfa-d540-4f64-8d0d-e50170698de9", + "isHook": false, + "skipped": false + } + ], + "suites": [], + "passes": [], + "failures": [ + "9bfe25bd-0e1e-4dde-9fd0-c60ee09e3bbc" + ], + "pending": [], + "skipped": [], + "duration": 0, + "root": false, + "rootEmpty": false, + "_timeout": 900000 + } + ], + "passes": [], + "failures": [], + "pending": [], + "skipped": [], + "duration": 0, + "root": false, + "rootEmpty": false, + "_timeout": 900000 + }, + { + "uuid": "0b81f2db-9953-4d19-967a-06fd9051674e", + "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": "83ae088c-5316-487e-8ade-31092fa41c01", + "title": "tests for get", + "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 \"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": 0, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, + "pending": false, + "context": null, + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/publications', { \n 'qs': {\"publicationid\":9035,\"datasetid\":12074338,\"siteid\":31854,\"familyname\":\"%qP\",\"pubtype\":\"Master's Thesis\",\"year\":1622,\"search\":\"ipsum aliqua tempor commodo\",\"limit\": 10,\"offset\": 0},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "err": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "a29eb3d7-34e6-400f-b10c-9d752c9e7f5f", + "parentUUID": "83ae088c-5316-487e-8ade-31092fa41c01", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "32b53bce-9c07-4ae4-ae41-1043af9fea85" + "passes": [], + "failures": [ + "a29eb3d7-34e6-400f-b10c-9d752c9e7f5f" ], - "failures": [], "pending": [], "skipped": [], - "duration": 6237, + "duration": 0, "root": false, "rootEmpty": false, "_timeout": 900000 @@ -3017,49 +2929,53 @@ "_timeout": 900000 }, { - "uuid": "c096aea1-5898-46bb-8037-0ec6389f3887", - "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", + "uuid": "db2b1613-cd58-4ecc-8fb6-090d2e3232d3", + "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": "639f3403-17d6-4e8f-a610-3dc44ea3b43b", + "uuid": "bb97ea0c-6764-4d0b-adae-f1d2a304eadc", "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", + "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 \"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.\"", + "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": 2, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, + "duration": 0, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/pollen', { \n 'qs': {\"taxonname\":\"cillum velit in nostrud\",\"taxonid\":43692,\"siteid\":16565,\"sitename\":\"minim\",\"datasettype\":\"Metabarcoding aeDNA\",\"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\":11194815,\"ageyoung\": 1000,\"ageold\": 10000,\"limit\": 10,\"offset\": 0},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", - "err": {}, - "uuid": "4dc50dcb-de22-41d6-b230-8d8b7693f2b5", - "parentUUID": "639f3403-17d6-4e8f-a610-3dc44ea3b43b", + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/spatial/faunal', { \n 'qs': {\"sciname\":\"minim Excepteur\",\"proj\": 4326,\"prec\": 1000},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "err": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "7f6a477b-63bd-440b-b706-cf78ae5e3c5a", + "parentUUID": "bb97ea0c-6764-4d0b-adae-f1d2a304eadc", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "4dc50dcb-de22-41d6-b230-8d8b7693f2b5" + "passes": [], + "failures": [ + "7f6a477b-63bd-440b-b706-cf78ae5e3c5a" ], - "failures": [], "pending": [], "skipped": [], - "duration": 2, + "duration": 0, "root": false, "rootEmpty": false, "_timeout": 900000 @@ -3075,49 +2991,53 @@ "_timeout": 900000 }, { - "uuid": "271d2cd7-cd40-4fcc-b7d5-8be6590c2165", - "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", + "uuid": "79cde071-f55c-4728-9702-1fada00361e6", + "title": "tests for /v2.0/data/geopoliticalunits/{gpid}/sites", + "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": "66f3b495-ae67-4773-a209-52bb667b8853", + "uuid": "acbad722-31eb-4d4a-804f-980d8c4bea32", "title": "tests for get", - "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", + "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": [ { - "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 \"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": 23184, - "state": "passed", - "speed": "slow", - "pass": true, - "fail": false, + "duration": 0, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/datasets/db', { \n 'qs': {\"limit\": 10,\"offset\": 0,\"database\":\"French Institute of Pondicherry Palynology and Paleoecology Database\"},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", - "err": {}, - "uuid": "d02e07b3-4cea-4668-a912-e312c6498d4c", - "parentUUID": "66f3b495-ae67-4773-a209-52bb667b8853", + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/geopoliticalunits/2029/sites', { \n 'qs': {\"limit\": 10,\"offset\": 0},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "err": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "e6f9f177-d110-433c-9b50-f7131e0e282e", + "parentUUID": "acbad722-31eb-4d4a-804f-980d8c4bea32", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "d02e07b3-4cea-4668-a912-e312c6498d4c" + "passes": [], + "failures": [ + "e6f9f177-d110-433c-9b50-f7131e0e282e" ], - "failures": [], "pending": [], "skipped": [], - "duration": 23184, + "duration": 0, "root": false, "rootEmpty": false, "_timeout": 900000 @@ -3133,261 +3053,254 @@ "_timeout": 900000 }, { - "uuid": "af92f245-c372-4439-be5b-c66fed14c217", - "title": "Get datasets any number of ways:", - "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/datasets.js", - "file": "/test/datasets.js", + "uuid": "d961c0ba-7538-408b-b2de-0745e729b5ec", + "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": "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:", + "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": 1145, - "state": "passed", - "speed": "slow", - "pass": true, - "fail": false, + "duration": 0, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "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": "43fac58a-1e25-480f-8287-e8206aebb5e1", - "parentUUID": "af92f245-c372-4439-be5b-c66fed14c217", + "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": { + "message": "AggregateError [ECONNREFUSED]: ", + "estack": "AggregateError [ECONNREFUSED]: \n at internalConnectMultiple (node:net:1139:18)\n at afterConnectMultiple (node:net:1712:7)", + "diff": null + }, + "uuid": "2488ce68-fe1a-420f-bcc7-a13551137ebb", + "parentUUID": "d961c0ba-7538-408b-b2de-0745e729b5ec", "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": "Get site data using a simple geoJSON:", + "fullTitle": "Get Neotoma data with geoJSON extents: Get site data using a simple geoJSON:", "timedOut": false, - "duration": 1023, - "state": "passed", - "speed": "slow", - "pass": true, - "fail": false, + "duration": 1, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "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": "55d6e3ae-a0cf-4e4e-b3a4-e3b68118c456", - "parentUUID": "af92f245-c372-4439-be5b-c66fed14c217", + "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": { + "message": "AggregateError [ECONNREFUSED]: ", + "estack": "AggregateError [ECONNREFUSED]: \n at internalConnectMultiple (node:net:1139:18)\n at afterConnectMultiple (node:net:1712:7)", + "diff": null + }, + "uuid": "ef457921-c8da-49f3-8f92-f52a15d412af", + "parentUUID": "d961c0ba-7538-408b-b2de-0745e729b5ec", "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": "Get dataset data using a simple geoJSON:", + "fullTitle": "Get Neotoma data with geoJSON extents: Get dataset data using a simple geoJSON:", "timedOut": false, - "duration": 1038, - "state": "passed", - "speed": "slow", - "pass": true, - "fail": false, + "duration": 0, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "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": "fd6c934b-a66a-4813-9508-621211732727", - "parentUUID": "af92f245-c372-4439-be5b-c66fed14c217", + "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": { + "message": "AggregateError [ECONNREFUSED]: ", + "estack": "AggregateError [ECONNREFUSED]: \n at internalConnectMultiple (node:net:1139:18)\n at afterConnectMultiple (node:net:1712:7)", + "diff": null + }, + "uuid": "4daefdae-fbc1-40c4-8ae6-952cba8571d7", + "parentUUID": "d961c0ba-7538-408b-b2de-0745e729b5ec", "isHook": false, "skipped": false - }, + } + ], + "suites": [], + "passes": [], + "failures": [ + "2488ce68-fe1a-420f-bcc7-a13551137ebb", + "ef457921-c8da-49f3-8f92-f52a15d412af", + "4daefdae-fbc1-40c4-8ae6-952cba8571d7" + ], + "pending": [], + "skipped": [], + "duration": 1, + "root": false, + "rootEmpty": false, + "_timeout": 15000 + }, + { + "uuid": "8bc3140c-5b2d-45f9-949a-f7ad777503bc", + "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": [ { - "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": "Get occurrence data using a simple WKT:", + "fullTitle": "Get Neotoma data with WKT extents: Get occurrence data using a simple WKT:", "timedOut": false, - "duration": 1555, - "state": "passed", - "speed": "slow", - "pass": true, - "fail": false, + "duration": 1, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "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": "3e9aaf26-a9e0-4cf2-a8fd-ad1b52028e44", - "parentUUID": "af92f245-c372-4439-be5b-c66fed14c217", + "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": { + "message": "AggregateError [ECONNREFUSED]: ", + "estack": "AggregateError [ECONNREFUSED]: \n at internalConnectMultiple (node:net:1139:18)\n at afterConnectMultiple (node:net:1712:7)", + "diff": null + }, + "uuid": "d4f5de02-f6c6-43d7-a842-ad6055aaadd5", + "parentUUID": "8bc3140c-5b2d-45f9-949a-f7ad777503bc", "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": "Get site data using a simple WKT:", + "fullTitle": "Get Neotoma data with WKT extents: Get site data using a simple WKT:", "timedOut": false, - "duration": 2, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, + "duration": 0, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "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": "1e1f0fd3-6623-42b6-a107-506ac3ad5df4", - "parentUUID": "af92f245-c372-4439-be5b-c66fed14c217", + "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": { + "message": "AggregateError [ECONNREFUSED]: ", + "estack": "AggregateError [ECONNREFUSED]: \n at internalConnectMultiple (node:net:1139:18)\n at afterConnectMultiple (node:net:1712:7)", + "diff": null + }, + "uuid": "b6901ccb-c683-4e56-a58a-a3b6c8d3e106", + "parentUUID": "8bc3140c-5b2d-45f9-949a-f7ad777503bc", "isHook": false, "skipped": false }, { - "title": "Limits work:", - "fullTitle": "Get datasets any number of ways: Limits work:", + "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": 23259, - "state": "passed", - "speed": "slow", - "pass": true, - "fail": false, + "duration": 0, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "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": "b21b7d84-46ce-4ec1-934a-ce3326046edd", - "parentUUID": "af92f245-c372-4439-be5b-c66fed14c217", + "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": { + "message": "AggregateError [ECONNREFUSED]: ", + "estack": "AggregateError [ECONNREFUSED]: \n at internalConnectMultiple (node:net:1139:18)\n at afterConnectMultiple (node:net:1712:7)", + "diff": null + }, + "uuid": "32d2d7c4-8ca4-48d2-a714-972a20f5442e", + "parentUUID": "8bc3140c-5b2d-45f9-949a-f7ad777503bc", "isHook": false, "skipped": false }, { - "title": "Works with age validation:", - "fullTitle": "Get datasets any number of ways: Works with age validation:", + "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": 0, - "state": "pending", + "state": "failed", "speed": null, "pass": false, - "fail": false, - "pending": true, + "fail": true, + "pending": false, "context": null, - "code": "", - "err": {}, - "uuid": "e4447084-52cb-4093-8636-3a41a8ef2666", - "parentUUID": "af92f245-c372-4439-be5b-c66fed14c217", + "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": { + "message": "AggregateError [ECONNREFUSED]: ", + "estack": "AggregateError [ECONNREFUSED]: \n at internalConnectMultiple (node:net:1139:18)\n at afterConnectMultiple (node:net:1712:7)", + "diff": null + }, + "uuid": "758d3dd5-2af3-4753-a7e6-da625c22fa57", + "parentUUID": "8bc3140c-5b2d-45f9-949a-f7ad777503bc", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "43fac58a-1e25-480f-8287-e8206aebb5e1", - "55d6e3ae-a0cf-4e4e-b3a4-e3b68118c456", - "fd6c934b-a66a-4813-9508-621211732727", - "3e9aaf26-a9e0-4cf2-a8fd-ad1b52028e44", - "1e1f0fd3-6623-42b6-a107-506ac3ad5df4", - "b21b7d84-46ce-4ec1-934a-ce3326046edd" - ], - "failures": [], - "pending": [ - "e4447084-52cb-4093-8636-3a41a8ef2666" - ], - "skipped": [], - "duration": 28022, - "root": false, - "rootEmpty": false, - "_timeout": 50000 - }, - { - "uuid": "3c00f758-763d-46bf-94ac-8dfc210a5833", - "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": "5624ee24-4833-4a73-b3cb-7a46e06ecc0a", - "title": "tests for get", - "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 \"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": 695, - "state": "passed", - "speed": "medium", - "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();", - "err": {}, - "uuid": "5a87f470-5dcc-49e9-8205-9910e7833e28", - "parentUUID": "5624ee24-4833-4a73-b3cb-7a46e06ecc0a", - "isHook": false, - "skipped": false - } - ], - "suites": [], - "passes": [ - "5a87f470-5dcc-49e9-8205-9910e7833e28" - ], - "failures": [], - "pending": [], - "skipped": [], - "duration": 695, - "root": false, - "rootEmpty": false, - "_timeout": 900000 - } - ], "passes": [], - "failures": [], + "failures": [ + "d4f5de02-f6c6-43d7-a842-ad6055aaadd5", + "b6901ccb-c683-4e56-a58a-a3b6c8d3e106", + "32d2d7c4-8ca4-48d2-a714-972a20f5442e", + "758d3dd5-2af3-4753-a7e6-da625c22fa57" + ], "pending": [], "skipped": [], - "duration": 0, + "duration": 1, "root": false, "rootEmpty": false, - "_timeout": 900000 + "_timeout": 15000 }, { - "uuid": "ac7ad70b-a24b-46ba-80d7-d0b9d373805f", - "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", + "uuid": "81c3820a-b821-4f85-9a22-b0ff733824f3", + "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": "328c60e3-9a0b-4aac-9856-314a5098f0ce", + "uuid": "11d27ed3-00b6-438b-9cb4-f666d69e3746", "title": "tests for get", - "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", + "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 \"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 \"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": 1501, - "state": "passed", - "speed": "slow", - "pass": true, - "fail": false, + "duration": 0, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "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();", - "err": {}, - "uuid": "33e2f485-3121-43a7-848f-0c81b720ef9e", - "parentUUID": "328c60e3-9a0b-4aac-9856-314a5098f0ce", + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/sites', { \n 'qs': {\"sitename\":\"eiusmod magna ea non\",\"database\":\"Canadian Museum of Nature-Delorme Ostracoda-Surface Samples\",\"datasettype\":\"physical sedimentology\",\"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\":12024,\"datasetid\":10862338,\"doi\":\"108997793/60W554Q\",\"gpid\":5392,\"keyword\":\"pre-European\",\"contactid\":8422,\"taxa\":\"cillum aliqua ex\",\"ageyoung\": 1000,\"ageold\": 10000,\"ageof\":15621576,\"limit\": 10,\"offset\": 0},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "err": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "181db452-29c7-4543-88c8-30ff886ee4d8", + "parentUUID": "11d27ed3-00b6-438b-9cb4-f666d69e3746", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "33e2f485-3121-43a7-848f-0c81b720ef9e" + "passes": [], + "failures": [ + "181db452-29c7-4543-88c8-30ff886ee4d8" ], - "failures": [], "pending": [], "skipped": [], - "duration": 1501, + "duration": 0, "root": false, "rootEmpty": false, "_timeout": 900000 @@ -3403,49 +3316,53 @@ "_timeout": 900000 }, { - "uuid": "574bd9db-47f5-4489-8c15-59d03b275783", - "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", + "uuid": "333033e0-3743-4b22-8b24-ae446d2241e1", + "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": [], "suites": [ { - "uuid": "069caa80-ba8f-488e-93bd-dbbaf02dc21d", + "uuid": "de40e2d0-8244-4d7c-8b68-f2d0bf2ff613", "title": "tests for get", - "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", + "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 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 \"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": 72, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, + "duration": 1, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/geopoliticalunits/8242', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", - "err": {}, - "uuid": "b1b7fae0-3cc2-4360-99db-28c6eb976bc1", - "parentUUID": "069caa80-ba8f-488e-93bd-dbbaf02dc21d", + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/spatial/icesheet', { \n 'qs': {\"age\":9672,\"proj\": 4326,\"prec\": 1000},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "err": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "3a39e7e5-594f-4b62-87ed-46bb4d3a8ece", + "parentUUID": "de40e2d0-8244-4d7c-8b68-f2d0bf2ff613", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "b1b7fae0-3cc2-4360-99db-28c6eb976bc1" + "passes": [], + "failures": [ + "3a39e7e5-594f-4b62-87ed-46bb4d3a8ece" ], - "failures": [], "pending": [], "skipped": [], - "duration": 72, + "duration": 1, "root": false, "rootEmpty": false, "_timeout": 900000 @@ -3461,49 +3378,53 @@ "_timeout": 900000 }, { - "uuid": "23b41bd9-9247-4ea8-97fc-f93ad4b9435a", - "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", + "uuid": "159a4313-7518-46c5-abf5-ee1917f4c005", + "title": "tests for /v2.0/data/datasets/{datasetid}/assays", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-datasets-{datasetid}-assays-test.js", + "file": "/test/v2.0-data-datasets-{datasetid}-assays-test.js", "beforeHooks": [], "afterHooks": [], "tests": [], "suites": [ { - "uuid": "f2444027-3930-4a6e-83cb-ae0750d205da", + "uuid": "d53eb3f9-6cc3-49a8-a3bb-31fe7a2b235b", "title": "tests for get", - "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", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-datasets-{datasetid}-assays-test.js", + "file": "/test/v2.0-data-datasets-{datasetid}-assays-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 \"Assays\"", + "fullTitle": "tests for /v2.0/data/datasets/{datasetid}/assays tests for get should respond 200 for \"Assays\"", "timedOut": false, - "duration": 72, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, + "duration": 1, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "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();", - "err": {}, - "uuid": "a303d53e-3a7f-4c02-8d07-6b4cbbbbb54e", - "parentUUID": "f2444027-3930-4a6e-83cb-ae0750d205da", + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/datasets/500/assays', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "err": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "d7a928ee-5166-4bef-8223-743f4306076b", + "parentUUID": "d53eb3f9-6cc3-49a8-a3bb-31fe7a2b235b", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "a303d53e-3a7f-4c02-8d07-6b4cbbbbb54e" + "passes": [], + "failures": [ + "d7a928ee-5166-4bef-8223-743f4306076b" ], - "failures": [], "pending": [], "skipped": [], - "duration": 72, + "duration": 1, "root": false, "rootEmpty": false, "_timeout": 900000 @@ -3519,49 +3440,53 @@ "_timeout": 900000 }, { - "uuid": "de308a87-afc3-4c51-b3bb-2e5b2f11b153", - "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", + "uuid": "ebef9603-3ca3-4ca1-ae8a-59ac32c3b981", + "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": "212e0792-1ba1-404c-b3f1-83c3adb821f0", + "uuid": "630e0f24-613c-4327-9065-e7d14952d591", "title": "tests for get", - "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", + "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 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 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": 78, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, + "duration": 1, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/spatial/lakes', { \n 'qs': {\"siteid\":49987,\"buffer\":3806,\"prec\": 1000,\"proj\": 4326},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", - "err": {}, - "uuid": "db6e2957-9b19-403d-b86a-5b205220d2f9", - "parentUUID": "212e0792-1ba1-404c-b3f1-83c3adb821f0", + "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();", + "err": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "89dde2c6-e607-463c-ac91-f3c820f6aef6", + "parentUUID": "630e0f24-613c-4327-9065-e7d14952d591", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "db6e2957-9b19-403d-b86a-5b205220d2f9" + "passes": [], + "failures": [ + "89dde2c6-e607-463c-ac91-f3c820f6aef6" ], - "failures": [], "pending": [], "skipped": [], - "duration": 78, + "duration": 1, "root": false, "rootEmpty": false, "_timeout": 900000 @@ -3577,236 +3502,500 @@ "_timeout": 900000 }, { - "uuid": "cc688fae-71ab-4164-b226-4799ed033d26", - "title": "Get Neotoma data with geoJSON extents:", - "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/spatial.js", - "file": "/test/spatial.js", + "uuid": "8ac4b074-0f3c-45e7-904c-1bfced02296f", + "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": [ { - "title": "Get occurrence data using a simple geoJSON:", - "fullTitle": "Get Neotoma data with geoJSON extents: Get occurrence data using a simple geoJSON:", + "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": 0, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, + "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": { + "message": "AggregateError [ECONNREFUSED]: ", + "estack": "AggregateError [ECONNREFUSED]: \n at internalConnectMultiple (node:net:1139:18)\n at afterConnectMultiple (node:net:1712:7)", + "diff": null + }, + "uuid": "a48916c4-34aa-4842-9958-e0fd373b7d74", + "parentUUID": "8ac4b074-0f3c-45e7-904c-1bfced02296f", + "isHook": false, + "skipped": false + }, + { + "title": "Get publication by comma sepatarated ids:", + "fullTitle": "Get publication data any number of ways: Get publication by comma sepatarated ids:", + "timedOut": false, + "duration": 1, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, + "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": { + "message": "AggregateError [ECONNREFUSED]: ", + "estack": "AggregateError [ECONNREFUSED]: \n at internalConnectMultiple (node:net:1139:18)\n at afterConnectMultiple (node:net:1712:7)", + "diff": null + }, + "uuid": "473984a0-6c31-4859-812d-dba4213d79d1", + "parentUUID": "8ac4b074-0f3c-45e7-904c-1bfced02296f", + "isHook": false, + "skipped": false + }, + { + "title": "Get publication by querying author:", + "fullTitle": "Get publication data any number of ways: Get publication by querying author:", "timedOut": false, - "duration": 359, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, + "duration": 0, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "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": "e1c3a9d9-7e20-45bd-9722-878656b61e0e", - "parentUUID": "cc688fae-71ab-4164-b226-4799ed033d26", + "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": { + "message": "AggregateError [ECONNREFUSED]: ", + "estack": "AggregateError [ECONNREFUSED]: \n at internalConnectMultiple (node:net:1139:18)\n at afterConnectMultiple (node:net:1712:7)", + "diff": null + }, + "uuid": "cbeb432d-94dc-4cfd-852a-5c1c97949a0b", + "parentUUID": "8ac4b074-0f3c-45e7-904c-1bfced02296f", "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:", + "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": 14094, - "state": "passed", - "speed": "slow", - "pass": true, - "fail": false, + "duration": 0, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "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": "de8ec5e2-7291-4e2b-9548-20f4668b83d0", - "parentUUID": "cc688fae-71ab-4164-b226-4799ed033d26", + "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": { + "message": "AggregateError [ECONNREFUSED]: ", + "estack": "AggregateError [ECONNREFUSED]: \n at internalConnectMultiple (node:net:1139:18)\n at afterConnectMultiple (node:net:1712:7)", + "diff": null + }, + "uuid": "ee0a31a1-25c8-4156-8506-3d1617f2cb1c", + "parentUUID": "8ac4b074-0f3c-45e7-904c-1bfced02296f", "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": true, - "duration": 15001, + "title": "Get publication by site id:", + "fullTitle": "Get publication data any number of ways: Get publication by site id:", + "timedOut": false, + "duration": 1, "state": "failed", "speed": null, "pass": false, "fail": true, "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);", + "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": { + "message": "AggregateError [ECONNREFUSED]: ", + "estack": "AggregateError [ECONNREFUSED]: \n at internalConnectMultiple (node:net:1139:18)\n at afterConnectMultiple (node:net:1712:7)", + "diff": null + }, + "uuid": "e4aa8f8f-34b8-4f31-9759-9f8c0e8d9f0e", + "parentUUID": "8ac4b074-0f3c-45e7-904c-1bfced02296f", + "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": 0, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, + "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": { + "message": "AggregateError [ECONNREFUSED]: ", + "estack": "AggregateError [ECONNREFUSED]: \n at internalConnectMultiple (node:net:1139:18)\n at afterConnectMultiple (node:net:1712:7)", + "diff": null + }, + "uuid": "203cc8a1-13fb-47d4-be87-5a118403eff6", + "parentUUID": "8ac4b074-0f3c-45e7-904c-1bfced02296f", + "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": 1, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, + "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": { - "message": "Error: Timeout of 15000ms exceeded. For async tests and hooks, ensure \"done()\" is called; if returning a Promise, ensure it resolves. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/spatial.js)", - "estack": "Error: Timeout of 15000ms exceeded. For async tests and hooks, ensure \"done()\" is called; if returning a Promise, ensure it resolves. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/spatial.js)\n at createTimeoutError (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/mocha/lib/errors.js:386:15)\n at Runnable._timeoutError (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/mocha/lib/runnable.js:431:10)\n at Timeout. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/mocha/lib/runnable.js:246:24)\n at listOnTimeout (node:internal/timers:614:17)\n at process.processTimers (node:internal/timers:549:7)", + "message": "AggregateError [ECONNREFUSED]: ", + "estack": "AggregateError [ECONNREFUSED]: \n at internalConnectMultiple (node:net:1139:18)\n at afterConnectMultiple (node:net:1712:7)", "diff": null }, - "uuid": "9b8c7fe4-5523-4db0-a8ba-00323085156e", - "parentUUID": "cc688fae-71ab-4164-b226-4799ed033d26", + "uuid": "4ab73815-b7fe-48fe-bb81-8a024aa26778", + "parentUUID": "8ac4b074-0f3c-45e7-904c-1bfced02296f", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "e1c3a9d9-7e20-45bd-9722-878656b61e0e", - "de8ec5e2-7291-4e2b-9548-20f4668b83d0" - ], + "passes": [], "failures": [ - "9b8c7fe4-5523-4db0-a8ba-00323085156e" + "a48916c4-34aa-4842-9958-e0fd373b7d74", + "473984a0-6c31-4859-812d-dba4213d79d1", + "cbeb432d-94dc-4cfd-852a-5c1c97949a0b", + "ee0a31a1-25c8-4156-8506-3d1617f2cb1c", + "e4aa8f8f-34b8-4f31-9759-9f8c0e8d9f0e", + "203cc8a1-13fb-47d4-be87-5a118403eff6", + "4ab73815-b7fe-48fe-bb81-8a024aa26778" ], "pending": [], "skipped": [], - "duration": 29454, + "duration": 3, "root": false, "rootEmpty": false, "_timeout": 15000 }, { - "uuid": "04ec6e0b-5609-4b27-a3e2-98597d686215", - "title": "Get Neotoma data with WKT extents:", - "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/spatial.js", - "file": "/test/spatial.js", + "uuid": "7d1dd7fd-9f80-402d-b73c-1708e84cc383", + "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 occurrence data using a simple WKT:", - "fullTitle": "Get Neotoma data with WKT extents: Get occurrence data using a simple WKT:", + "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": 1224, - "state": "passed", - "speed": "slow", - "pass": true, - "fail": false, + "duration": 0, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "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": "18dcbbfe-478f-49c8-a816-ce7b40e340b9", - "parentUUID": "04ec6e0b-5609-4b27-a3e2-98597d686215", + "code": "api.get('v2.0/data/taxa/')\n .set('Accept', 'application/json')\n .expect(200, done);", + "err": { + "message": "AggregateError [ECONNREFUSED]: ", + "estack": "AggregateError [ECONNREFUSED]: \n at internalConnectMultiple (node:net:1139:18)\n at afterConnectMultiple (node:net:1712:7)", + "diff": null + }, + "uuid": "b8bb6764-bc79-4591-a0f7-0dbcdb1c96a6", + "parentUUID": "7d1dd7fd-9f80-402d-b73c-1708e84cc383", "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:", + "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": 530, - "state": "passed", - "speed": "medium", - "pass": true, - "fail": false, + "duration": 1, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "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": "1e20f1f7-b174-42f3-8986-8be4d778382d", - "parentUUID": "04ec6e0b-5609-4b27-a3e2-98597d686215", + "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": { + "message": "TypeError: Cannot read properties of undefined (reading 'body')", + "estack": "TypeError: Cannot read properties of undefined (reading 'body')\n at Test. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/taxa.js:33:32)\n at Test.assert (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/supertest/lib/test.js:204:10)\n at localAssert (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/supertest/lib/test.js:138:14)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/supertest/lib/test.js:156:7\n at Request.callback (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/supertest/node_modules/superagent/lib/node/index.js:857:3)\n at ClientRequest. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/supertest/node_modules/superagent/lib/node/index.js:780:10)\n at ClientRequest.emit (node:events:507:28)\n at emitErrorEvent (node:_http_client:104:11)\n at Socket.socketErrorListener (node:_http_client:518:5)\n at Socket.emit (node:events:507:28)\n at emitErrorNT (node:internal/streams/destroy:170:8)\n at emitErrorCloseNT (node:internal/streams/destroy:129:3)\n at process.processTicksAndRejections (node:internal/process/task_queues:90:21)", + "diff": null + }, + "uuid": "721d0972-2295-4cd7-b23a-3e500ddb2b62", + "parentUUID": "7d1dd7fd-9f80-402d-b73c-1708e84cc383", "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": true, - "duration": 15001, + "title": "v2.0: Taxon queries should be case insensitive:", + "fullTitle": "Get taxon data: v2.0: Taxon queries should be case insensitive:", + "timedOut": false, + "duration": 0, "state": "failed", "speed": null, "pass": false, "fail": true, "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);", + "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": { - "message": "Error: Timeout of 15000ms exceeded. For async tests and hooks, ensure \"done()\" is called; if returning a Promise, ensure it resolves. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/spatial.js)", - "estack": "Error: Timeout of 15000ms exceeded. For async tests and hooks, ensure \"done()\" is called; if returning a Promise, ensure it resolves. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/spatial.js)\n at createTimeoutError (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/mocha/lib/errors.js:386:15)\n at Runnable._timeoutError (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/mocha/lib/runnable.js:431:10)\n at Timeout. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/mocha/lib/runnable.js:246:24)\n at listOnTimeout (node:internal/timers:614:17)\n at process.processTimers (node:internal/timers:549:7)", + "message": "TypeError: Cannot read properties of undefined (reading 'body')", + "estack": "TypeError: Cannot read properties of undefined (reading 'body')\n at Test. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/taxa.js:45:32)\n at Test.assert (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/supertest/lib/test.js:204:10)\n at localAssert (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/supertest/lib/test.js:138:14)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/supertest/lib/test.js:156:7\n at Request.callback (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/supertest/node_modules/superagent/lib/node/index.js:857:3)\n at ClientRequest. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/supertest/node_modules/superagent/lib/node/index.js:780:10)\n at ClientRequest.emit (node:events:507:28)\n at emitErrorEvent (node:_http_client:104:11)\n at Socket.socketErrorListener (node:_http_client:518:5)\n at Socket.emit (node:events:507:28)\n at emitErrorNT (node:internal/streams/destroy:170:8)\n at emitErrorCloseNT (node:internal/streams/destroy:129:3)\n at process.processTicksAndRejections (node:internal/process/task_queues:90:21)", "diff": null }, - "uuid": "6e2371ba-e6f4-448c-9cb7-8631eb9d4cae", - "parentUUID": "04ec6e0b-5609-4b27-a3e2-98597d686215", + "uuid": "e834a91d-8b4b-4bd2-9cdb-b91db885bc00", + "parentUUID": "7d1dd7fd-9f80-402d-b73c-1708e84cc383", "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": true, - "duration": 15002, + "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": 0, "state": "failed", "speed": null, "pass": false, "fail": true, "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);", + "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": { + "message": "TypeError: Cannot read properties of undefined (reading 'body')", + "estack": "TypeError: Cannot read properties of undefined (reading 'body')\n at Test. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/taxa.js:58:34)\n at Test.assert (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/supertest/lib/test.js:204:10)\n at localAssert (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/supertest/lib/test.js:138:14)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/supertest/lib/test.js:156:7\n at Request.callback (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/supertest/node_modules/superagent/lib/node/index.js:857:3)\n at ClientRequest. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/supertest/node_modules/superagent/lib/node/index.js:780:10)\n at ClientRequest.emit (node:events:507:28)\n at emitErrorEvent (node:_http_client:104:11)\n at Socket.socketErrorListener (node:_http_client:518:5)\n at Socket.emit (node:events:507:28)\n at emitErrorNT (node:internal/streams/destroy:170:8)\n at emitErrorCloseNT (node:internal/streams/destroy:129:3)\n at process.processTicksAndRejections (node:internal/process/task_queues:90:21)", + "diff": null + }, + "uuid": "03062b68-6aff-4651-91f1-260722be86ef", + "parentUUID": "7d1dd7fd-9f80-402d-b73c-1708e84cc383", + "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": 1, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, + "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": { + "message": "TypeError: Cannot read properties of undefined (reading 'body')", + "estack": "TypeError: Cannot read properties of undefined (reading 'body')\n at Test. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/taxa.js:71:28)\n at Test.assert (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/supertest/lib/test.js:204:10)\n at localAssert (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/supertest/lib/test.js:138:14)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/supertest/lib/test.js:156:7\n at Request.callback (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/supertest/node_modules/superagent/lib/node/index.js:857:3)\n at ClientRequest. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/supertest/node_modules/superagent/lib/node/index.js:780:10)\n at ClientRequest.emit (node:events:507:28)\n at emitErrorEvent (node:_http_client:104:11)\n at Socket.socketErrorListener (node:_http_client:518:5)\n at Socket.emit (node:events:507:28)\n at emitErrorNT (node:internal/streams/destroy:170:8)\n at emitErrorCloseNT (node:internal/streams/destroy:129:3)\n at process.processTicksAndRejections (node:internal/process/task_queues:90:21)", + "diff": null + }, + "uuid": "386468cd-7e2e-4712-a235-776e48b1d119", + "parentUUID": "7d1dd7fd-9f80-402d-b73c-1708e84cc383", + "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": 0, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, + "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": { + "message": "TypeError: Cannot read properties of undefined (reading 'body')", + "estack": "TypeError: Cannot read properties of undefined (reading 'body')\n at Test. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/taxa.js:90:32)\n at Test.assert (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/supertest/lib/test.js:204:10)\n at localAssert (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/supertest/lib/test.js:138:14)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/supertest/lib/test.js:156:7\n at Request.callback (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/supertest/node_modules/superagent/lib/node/index.js:857:3)\n at ClientRequest. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/supertest/node_modules/superagent/lib/node/index.js:780:10)\n at ClientRequest.emit (node:events:507:28)\n at emitErrorEvent (node:_http_client:104:11)\n at Socket.socketErrorListener (node:_http_client:518:5)\n at Socket.emit (node:events:507:28)\n at emitErrorNT (node:internal/streams/destroy:170:8)\n at emitErrorCloseNT (node:internal/streams/destroy:129:3)\n at process.processTicksAndRejections (node:internal/process/task_queues:90:21)", + "diff": null + }, + "uuid": "2a5eebd0-3ebe-4c4f-bb2a-a37c2ab4a4f9", + "parentUUID": "7d1dd7fd-9f80-402d-b73c-1708e84cc383", + "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": 1, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, + "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": { + "message": "TypeError: Cannot read properties of undefined (reading 'body')", + "estack": "TypeError: Cannot read properties of undefined (reading 'body')\n at Test. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/taxa.js:103:34)\n at Test.assert (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/supertest/lib/test.js:204:10)\n at localAssert (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/supertest/lib/test.js:138:14)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/supertest/lib/test.js:156:7\n at Request.callback (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/supertest/node_modules/superagent/lib/node/index.js:857:3)\n at ClientRequest. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/supertest/node_modules/superagent/lib/node/index.js:780:10)\n at ClientRequest.emit (node:events:507:28)\n at emitErrorEvent (node:_http_client:104:11)\n at Socket.socketErrorListener (node:_http_client:518:5)\n at Socket.emit (node:events:507:28)\n at emitErrorNT (node:internal/streams/destroy:170:8)\n at emitErrorCloseNT (node:internal/streams/destroy:129:3)\n at process.processTicksAndRejections (node:internal/process/task_queues:90:21)", + "diff": null + }, + "uuid": "cba94927-8e60-4cac-8afd-5ed7cf492e56", + "parentUUID": "7d1dd7fd-9f80-402d-b73c-1708e84cc383", + "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": 0, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, + "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": { - "message": "Error: Timeout of 15000ms exceeded. For async tests and hooks, ensure \"done()\" is called; if returning a Promise, ensure it resolves. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/spatial.js)", - "estack": "Error: Timeout of 15000ms exceeded. For async tests and hooks, ensure \"done()\" is called; if returning a Promise, ensure it resolves. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/spatial.js)\n at createTimeoutError (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/mocha/lib/errors.js:386:15)\n at Runnable._timeoutError (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/mocha/lib/runnable.js:431:10)\n at Timeout. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/mocha/lib/runnable.js:246:24)\n at listOnTimeout (node:internal/timers:614:17)\n at process.processTimers (node:internal/timers:549:7)", + "message": "TypeError: Cannot read properties of undefined (reading 'body')", + "estack": "TypeError: Cannot read properties of undefined (reading 'body')\n at Test. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/taxa.js:116:34)\n at Test.assert (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/supertest/lib/test.js:204:10)\n at localAssert (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/supertest/lib/test.js:138:14)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/supertest/lib/test.js:156:7\n at Request.callback (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/supertest/node_modules/superagent/lib/node/index.js:857:3)\n at ClientRequest. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/supertest/node_modules/superagent/lib/node/index.js:780:10)\n at ClientRequest.emit (node:events:507:28)\n at emitErrorEvent (node:_http_client:104:11)\n at Socket.socketErrorListener (node:_http_client:518:5)\n at Socket.emit (node:events:507:28)\n at emitErrorNT (node:internal/streams/destroy:170:8)\n at emitErrorCloseNT (node:internal/streams/destroy:129:3)\n at process.processTicksAndRejections (node:internal/process/task_queues:90:21)", "diff": null }, - "uuid": "4bc47658-876d-4e2a-8a1a-f03f947c0cf6", - "parentUUID": "04ec6e0b-5609-4b27-a3e2-98597d686215", + "uuid": "b3b6eada-dae2-433d-b3c6-93e3a95977d8", + "parentUUID": "7d1dd7fd-9f80-402d-b73c-1708e84cc383", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "18dcbbfe-478f-49c8-a816-ce7b40e340b9", - "1e20f1f7-b174-42f3-8986-8be4d778382d" - ], + "passes": [], "failures": [ - "6e2371ba-e6f4-448c-9cb7-8631eb9d4cae", - "4bc47658-876d-4e2a-8a1a-f03f947c0cf6" + "b8bb6764-bc79-4591-a0f7-0dbcdb1c96a6", + "721d0972-2295-4cd7-b23a-3e500ddb2b62", + "e834a91d-8b4b-4bd2-9cdb-b91db885bc00", + "03062b68-6aff-4651-91f1-260722be86ef", + "386468cd-7e2e-4712-a235-776e48b1d119", + "2a5eebd0-3ebe-4c4f-bb2a-a37c2ab4a4f9", + "cba94927-8e60-4cac-8afd-5ed7cf492e56", + "b3b6eada-dae2-433d-b3c6-93e3a95977d8" + ], + "pending": [], + "skipped": [], + "duration": 3, + "root": false, + "rootEmpty": false, + "_timeout": 900000 + }, + { + "uuid": "1199da3f-b268-47f2-be79-1c39a2febe87", + "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": "14669617-6695-4338-923e-ef98045a87d2", + "title": "tests for get", + "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 \"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": 0, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, + "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();", + "err": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "c53d3e33-a3e5-4c17-9143-f8241d1c3aac", + "parentUUID": "14669617-6695-4338-923e-ef98045a87d2", + "isHook": false, + "skipped": false + } + ], + "suites": [], + "passes": [], + "failures": [ + "c53d3e33-a3e5-4c17-9143-f8241d1c3aac" + ], + "pending": [], + "skipped": [], + "duration": 0, + "root": false, + "rootEmpty": false, + "_timeout": 900000 + } ], + "passes": [], + "failures": [], "pending": [], "skipped": [], - "duration": 31757, + "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 15000 + "_timeout": 900000 }, { - "uuid": "73363527-6811-48a9-816e-a45d71a1ba97", - "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", + "uuid": "d9f9bcd7-1208-4ecf-af13-a4ec14fd1f9a", + "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": "88d0a61d-308a-4ccd-b3a2-909607dce39c", + "uuid": "a4faa2bc-0185-45ae-8f5e-6c140cc337ff", "title": "tests for get", - "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", + "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 \"chronology\"", - "fullTitle": "tests for /v2.0/data/datasets/{datasetid}/chronologies tests for get should respond 200 for \"chronology\"", + "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": 617, - "state": "passed", - "speed": "medium", - "pass": true, - "fail": false, + "duration": 0, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "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();", - "err": {}, - "uuid": "c0f236e3-8be4-4de9-a0bb-6aaa9e84383f", - "parentUUID": "88d0a61d-308a-4ccd-b3a2-909607dce39c", + "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();", + "err": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "541eaafb-86d0-4863-9253-cd3b7771eedf", + "parentUUID": "a4faa2bc-0185-45ae-8f5e-6c140cc337ff", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "c0f236e3-8be4-4de9-a0bb-6aaa9e84383f" + "passes": [], + "failures": [ + "541eaafb-86d0-4863-9253-cd3b7771eedf" ], - "failures": [], "pending": [], "skipped": [], - "duration": 617, + "duration": 0, "root": false, "rootEmpty": false, "_timeout": 900000 @@ -3822,221 +4011,391 @@ "_timeout": 900000 }, { - "uuid": "8b21ce53-c69e-468d-a7b6-9faf03e99cee", - "title": "Get taxon data:", - "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/taxa.js", - "file": "/test/taxa.js", + "uuid": "6e66039c-9aa4-4787-85e4-c1f1699d57e2", + "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": [ - { - "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": 205, - "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": "28cf7b4a-3fce-4037-8856-87e86631fb38", - "parentUUID": "8b21ce53-c69e-468d-a7b6-9faf03e99cee", - "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": 83, - "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": "2ba07dce-fe5c-47b7-9e24-7b96676f15c9", - "parentUUID": "8b21ce53-c69e-468d-a7b6-9faf03e99cee", - "isHook": false, - "skipped": false - }, - { - "title": "v2.0: Taxon queries should be case insensitive:", - "fullTitle": "Get taxon data: v2.0: Taxon queries should be case insensitive:", - "timedOut": false, - "duration": 274, - "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": "ef57be4f-4d76-4c56-b7cc-0f2d3917afe5", - "parentUUID": "8b21ce53-c69e-468d-a7b6-9faf03e99cee", - "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": 221, - "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": "f8e65c8c-814f-40dd-92b1-8fc014898b76", - "parentUUID": "8b21ce53-c69e-468d-a7b6-9faf03e99cee", - "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": 625, - "state": "passed", - "speed": "medium", - "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": "28288c7a-c880-4a23-bfd4-7ad64f7ec137", - "parentUUID": "8b21ce53-c69e-468d-a7b6-9faf03e99cee", - "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": 166, - "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": "d44a7ec5-3d3f-4963-a799-0e1fc83b4024", - "parentUUID": "8b21ce53-c69e-468d-a7b6-9faf03e99cee", - "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": 1255, - "state": "passed", - "speed": "slow", - "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": "5717f99a-70e8-4822-857c-a10832999e5f", - "parentUUID": "8b21ce53-c69e-468d-a7b6-9faf03e99cee", - "isHook": false, - "skipped": false - }, + "tests": [], + "suites": [ { - "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": 626, - "state": "passed", - "speed": "medium", - "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": "4b9245fa-f648-4237-b3fd-5970b02bd394", - "parentUUID": "8b21ce53-c69e-468d-a7b6-9faf03e99cee", - "isHook": false, - "skipped": false + "uuid": "56f99c06-be1f-41e7-8d09-8a057e285bf4", + "title": "tests for get", + "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 TaxaGroupTypes", + "fullTitle": "Tests for Explorer App Services tests for get should respond 200 for TaxaGroupTypes", + "timedOut": false, + "duration": 1, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, + "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": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "e8018758-9a70-44ae-bba8-2fb35aa6044b", + "parentUUID": "56f99c06-be1f-41e7-8d09-8a057e285bf4", + "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": 0, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, + "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": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "9e3b4200-b64d-467c-bc9a-d780e0a8be0f", + "parentUUID": "56f99c06-be1f-41e7-8d09-8a057e285bf4", + "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": 0, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, + "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": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "319411fd-a92f-4de2-87e9-a3de4c95ee72", + "parentUUID": "56f99c06-be1f-41e7-8d09-8a057e285bf4", + "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": 1, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, + "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": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "2ecc9462-fd92-45b6-b075-b51c219a204f", + "parentUUID": "56f99c06-be1f-41e7-8d09-8a057e285bf4", + "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": 0, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, + "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": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "642db0b0-b1dc-4183-9ba1-090114112c55", + "parentUUID": "56f99c06-be1f-41e7-8d09-8a057e285bf4", + "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": 1, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, + "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": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "cf9202d3-10ee-4484-8a0d-d7bf543122b0", + "parentUUID": "56f99c06-be1f-41e7-8d09-8a057e285bf4", + "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": 1, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, + "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": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "0cc4901f-f8a0-4df0-bdbe-b48f87b5654d", + "parentUUID": "56f99c06-be1f-41e7-8d09-8a057e285bf4", + "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": 0, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, + "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": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "ffddbfae-5a11-4585-b70c-f4859c26827c", + "parentUUID": "56f99c06-be1f-41e7-8d09-8a057e285bf4", + "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": 0, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, + "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": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "03fb7843-adcf-4a26-98bb-179507e04f22", + "parentUUID": "56f99c06-be1f-41e7-8d09-8a057e285bf4", + "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": "failed", + "speed": null, + "pass": false, + "fail": true, + "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": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "ce0d8460-1805-4272-b892-b288c3dc9b37", + "parentUUID": "56f99c06-be1f-41e7-8d09-8a057e285bf4", + "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": 1, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, + "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": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "fc625a1f-512c-455a-b2e2-40b14638837f", + "parentUUID": "56f99c06-be1f-41e7-8d09-8a057e285bf4", + "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": 0, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, + "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": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "ed78a4aa-867c-4ac9-adef-c3f15e9f2dd3", + "parentUUID": "56f99c06-be1f-41e7-8d09-8a057e285bf4", + "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": "failed", + "speed": null, + "pass": false, + "fail": true, + "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": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "a393030e-29ab-4a9c-b9c9-a5a167aff1f1", + "parentUUID": "56f99c06-be1f-41e7-8d09-8a057e285bf4", + "isHook": false, + "skipped": false + } + ], + "suites": [], + "passes": [], + "failures": [ + "e8018758-9a70-44ae-bba8-2fb35aa6044b", + "9e3b4200-b64d-467c-bc9a-d780e0a8be0f", + "319411fd-a92f-4de2-87e9-a3de4c95ee72", + "2ecc9462-fd92-45b6-b075-b51c219a204f", + "642db0b0-b1dc-4183-9ba1-090114112c55", + "cf9202d3-10ee-4484-8a0d-d7bf543122b0", + "0cc4901f-f8a0-4df0-bdbe-b48f87b5654d", + "ffddbfae-5a11-4585-b70c-f4859c26827c", + "03fb7843-adcf-4a26-98bb-179507e04f22", + "ce0d8460-1805-4272-b892-b288c3dc9b37", + "fc625a1f-512c-455a-b2e2-40b14638837f", + "ed78a4aa-867c-4ac9-adef-c3f15e9f2dd3", + "a393030e-29ab-4a9c-b9c9-a5a167aff1f1" + ], + "pending": [], + "skipped": [], + "duration": 7, + "root": false, + "rootEmpty": false, + "_timeout": 12000 } ], - "suites": [], - "passes": [ - "28cf7b4a-3fce-4037-8856-87e86631fb38", - "2ba07dce-fe5c-47b7-9e24-7b96676f15c9", - "ef57be4f-4d76-4c56-b7cc-0f2d3917afe5", - "f8e65c8c-814f-40dd-92b1-8fc014898b76", - "28288c7a-c880-4a23-bfd4-7ad64f7ec137", - "d44a7ec5-3d3f-4963-a799-0e1fc83b4024", - "5717f99a-70e8-4822-857c-a10832999e5f", - "4b9245fa-f648-4237-b3fd-5970b02bd394" - ], + "passes": [], "failures": [], "pending": [], "skipped": [], - "duration": 3455, + "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 900000 + "_timeout": 12000 }, { - "uuid": "fe1e84b5-d9ba-45fb-9c96-da9ca63ed69e", - "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", + "uuid": "46505048-67d7-4b7f-816d-fe6d8ce4b81d", + "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": "88722502-f1b0-45c0-8bfd-b56e5a7866d2", + "uuid": "6c1b7bdb-16d3-45e1-b9f5-f3b19edadc0f", "title": "tests for get", - "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", + "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 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 \"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": 157, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, + "duration": 1, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "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();", - "err": {}, - "uuid": "a730cc53-a769-46f3-a78e-f36fc8933234", - "parentUUID": "88722502-f1b0-45c0-8bfd-b56e5a7866d2", + "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": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "c8ef905c-75c4-4955-9c51-570b37421728", + "parentUUID": "6c1b7bdb-16d3-45e1-b9f5-f3b19edadc0f", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "a730cc53-a769-46f3-a78e-f36fc8933234" + "passes": [], + "failures": [ + "c8ef905c-75c4-4955-9c51-570b37421728" ], - "failures": [], "pending": [], "skipped": [], - "duration": 157, + "duration": 1, "root": false, "rootEmpty": false, "_timeout": 900000 @@ -4052,49 +4411,53 @@ "_timeout": 900000 }, { - "uuid": "75d414c4-7b08-4b9b-bf17-9f5953be8b64", - "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", + "uuid": "1db302d1-1ec3-440a-97f6-5a764a43b3e4", + "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": "f9117673-2f6e-4ddc-af9d-2d4ed8be8e98", + "uuid": "60866bd8-2ffb-4c0d-9410-f03e3cda8395", "title": "tests for get", - "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", + "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 \"An array of sites.\"", - "fullTitle": "tests for /v2.0/data/sites/{siteid} tests for get should respond 200 for \"An array of sites.\"", + "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": 495, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, + "duration": 0, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "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": "874ea886-5491-4a86-b2c8-d6592b5568cb", - "parentUUID": "f9117673-2f6e-4ddc-af9d-2d4ed8be8e98", + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/contacts/8319/sites', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "err": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "e2fb3635-799a-4a61-bc24-0e99f244b927", + "parentUUID": "60866bd8-2ffb-4c0d-9410-f03e3cda8395", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "874ea886-5491-4a86-b2c8-d6592b5568cb" + "passes": [], + "failures": [ + "e2fb3635-799a-4a61-bc24-0e99f244b927" ], - "failures": [], "pending": [], "skipped": [], - "duration": 495, + "duration": 0, "root": false, "rootEmpty": false, "_timeout": 900000 @@ -4110,49 +4473,53 @@ "_timeout": 900000 }, { - "uuid": "7eb3b8f7-947b-4432-befb-2632a9035eef", - "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", + "uuid": "3d928e0f-e1ee-4aad-9fd7-30e902a29a47", + "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": "8adfe029-1941-4f73-b08d-283657d093e9", + "uuid": "12a39bdc-c44b-49a1-bef6-ddcfb518cc52", "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", + "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 \"Taxa\"", - "fullTitle": "tests for /v2.0/data/datasets/{datasetid}/taxa tests for get should respond 200 for \"Taxa\"", + "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": 128, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, + "duration": 0, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "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();", - "err": {}, - "uuid": "807355a4-f29b-4f11-a1d4-36a7b68c95d4", - "parentUUID": "8adfe029-1941-4f73-b08d-283657d093e9", + "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": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "825ce652-03f4-4089-beb0-01019a041813", + "parentUUID": "12a39bdc-c44b-49a1-bef6-ddcfb518cc52", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "807355a4-f29b-4f11-a1d4-36a7b68c95d4" + "passes": [], + "failures": [ + "825ce652-03f4-4089-beb0-01019a041813" ], - "failures": [], "pending": [], "skipped": [], - "duration": 128, + "duration": 0, "root": false, "rootEmpty": false, "_timeout": 900000 @@ -4168,49 +4535,53 @@ "_timeout": 900000 }, { - "uuid": "d1343aa7-54a0-4db8-a18c-d4dd23ba47a2", - "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", + "uuid": "e3b40413-52e6-4369-81e2-7f2cdb6a687e", + "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": "3636acec-7915-418e-bdf6-a180dcd8ad9a", + "uuid": "67e7ae1a-1a22-452a-b77a-fa07c0ca82ca", "title": "tests for get", - "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", + "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 \"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.\"", + "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": 117, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, + "duration": 0, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v1.5/data/geopoliticalunits/7129', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", - "err": {}, - "uuid": "72b72f64-59f3-4521-bc66-f8d6807e6fb5", - "parentUUID": "3636acec-7915-418e-bdf6-a180dcd8ad9a", + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/datasets', { \n 'qs': {\"sitename\":\"pariatur tempor\",\"database\":\"Pollen Monitoring Programme\",\"datasettype\":\"vertebrate fauna\",\"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\":37798,\"datasetid\":20069323,\"doi\":\"10$930055/_.4HBW:Q(Y\",\"gpid\":5392,\"keyword\":\"bottom\",\"contactid\":4719,\"taxa\":\"sit in et culpa deserunt\",\"ageyoung\": 1000,\"ageold\": 10000,\"ageof\":8142805,\"limit\": 10,\"offset\": 0},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "err": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "d0d144d8-a0c9-490d-82b7-102c83f9cb14", + "parentUUID": "67e7ae1a-1a22-452a-b77a-fa07c0ca82ca", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "72b72f64-59f3-4521-bc66-f8d6807e6fb5" + "passes": [], + "failures": [ + "d0d144d8-a0c9-490d-82b7-102c83f9cb14" ], - "failures": [], "pending": [], "skipped": [], - "duration": 117, + "duration": 0, "root": false, "rootEmpty": false, "_timeout": 900000 @@ -4226,49 +4597,165 @@ "_timeout": 900000 }, { - "uuid": "c7cf7f34-79a6-476f-a514-81a3050cd507", - "title": "tests for /v2.0/data/datasets/{datasetid}/projects", - "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-datasets-{datasetid}-projects-test.js", - "file": "/test/v2.0-data-datasets-{datasetid}-projects-test.js", + "uuid": "4759e7f5-ebe9-481f-b61c-aa64e5410004", + "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": 0, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, + "pending": false, + "context": null, + "code": "api.get('v2.0/data/geopoliticalunits/')\n .set('Accept', 'application/json')\n .expect(200, done);", + "err": { + "message": "AggregateError [ECONNREFUSED]: ", + "estack": "AggregateError [ECONNREFUSED]: \n at internalConnectMultiple (node:net:1139:18)\n at afterConnectMultiple (node:net:1712:7)", + "diff": null + }, + "uuid": "cf85d1c7-0dde-4792-8615-f23aaefb40c4", + "parentUUID": "4759e7f5-ebe9-481f-b61c-aa64e5410004", + "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": 0, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, + "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": { + "message": "TypeError: Cannot read properties of undefined (reading 'body')", + "estack": "TypeError: Cannot read properties of undefined (reading 'body')\n at Test. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/geopolitical.js:34:26)\n at Test.assert (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/supertest/lib/test.js:204:10)\n at localAssert (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/supertest/lib/test.js:138:14)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/supertest/lib/test.js:156:7\n at Request.callback (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/supertest/node_modules/superagent/lib/node/index.js:857:3)\n at ClientRequest. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/supertest/node_modules/superagent/lib/node/index.js:780:10)\n at ClientRequest.emit (node:events:507:28)\n at emitErrorEvent (node:_http_client:104:11)\n at Socket.socketErrorListener (node:_http_client:518:5)\n at Socket.emit (node:events:507:28)\n at emitErrorNT (node:internal/streams/destroy:170:8)\n at emitErrorCloseNT (node:internal/streams/destroy:129:3)\n at process.processTicksAndRejections (node:internal/process/task_queues:90:21)", + "diff": null + }, + "uuid": "36cbfca8-0ea1-4a4b-9774-c1af6da4f672", + "parentUUID": "4759e7f5-ebe9-481f-b61c-aa64e5410004", + "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": 0, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, + "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": { + "message": "TypeError: Cannot read properties of undefined (reading 'body')", + "estack": "TypeError: Cannot read properties of undefined (reading 'body')\n at Test. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/geopolitical.js:43:26)\n at Test.assert (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/supertest/lib/test.js:204:10)\n at localAssert (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/supertest/lib/test.js:138:14)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/supertest/lib/test.js:156:7\n at Request.callback (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/supertest/node_modules/superagent/lib/node/index.js:857:3)\n at ClientRequest. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/supertest/node_modules/superagent/lib/node/index.js:780:10)\n at ClientRequest.emit (node:events:507:28)\n at emitErrorEvent (node:_http_client:104:11)\n at Socket.socketErrorListener (node:_http_client:518:5)\n at Socket.emit (node:events:507:28)\n at emitErrorNT (node:internal/streams/destroy:170:8)\n at emitErrorCloseNT (node:internal/streams/destroy:129:3)\n at process.processTicksAndRejections (node:internal/process/task_queues:90:21)", + "diff": null + }, + "uuid": "3efa2e33-d832-4c73-a7ea-12575e900952", + "parentUUID": "4759e7f5-ebe9-481f-b61c-aa64e5410004", + "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": 1, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, + "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": { + "message": "TypeError: Cannot read properties of undefined (reading 'body')", + "estack": "TypeError: Cannot read properties of undefined (reading 'body')\n at Test. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/geopolitical.js:52:26)\n at Test.assert (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/supertest/lib/test.js:204:10)\n at localAssert (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/supertest/lib/test.js:138:14)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/supertest/lib/test.js:156:7\n at Request.callback (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/supertest/node_modules/superagent/lib/node/index.js:857:3)\n at ClientRequest. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/supertest/node_modules/superagent/lib/node/index.js:780:10)\n at ClientRequest.emit (node:events:507:28)\n at emitErrorEvent (node:_http_client:104:11)\n at Socket.socketErrorListener (node:_http_client:518:5)\n at Socket.emit (node:events:507:28)\n at emitErrorNT (node:internal/streams/destroy:170:8)\n at emitErrorCloseNT (node:internal/streams/destroy:129:3)\n at process.processTicksAndRejections (node:internal/process/task_queues:90:21)", + "diff": null + }, + "uuid": "1798e452-ebc3-45b8-ba47-7fc844db08c0", + "parentUUID": "4759e7f5-ebe9-481f-b61c-aa64e5410004", + "isHook": false, + "skipped": false + } + ], + "suites": [], + "passes": [], + "failures": [ + "cf85d1c7-0dde-4792-8615-f23aaefb40c4", + "36cbfca8-0ea1-4a4b-9774-c1af6da4f672", + "3efa2e33-d832-4c73-a7ea-12575e900952", + "1798e452-ebc3-45b8-ba47-7fc844db08c0" + ], + "pending": [], + "skipped": [], + "duration": 1, + "root": false, + "rootEmpty": false, + "_timeout": 5000 + }, + { + "uuid": "2017a5e7-565c-4af8-b13f-7a8ee660476b", + "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": "62c9041d-0c27-46c9-8a2e-6768174e43f1", + "uuid": "7b905b3a-0af4-4821-90b2-a76fa4c14ed1", "title": "tests for get", - "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-datasets-{datasetid}-projects-test.js", - "file": "/test/v2.0-data-datasets-{datasetid}-projects-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 \"Projects\"", - "fullTitle": "tests for /v2.0/data/datasets/{datasetid}/projects tests for get should respond 200 for \"Projects\"", + "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": 169, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, + "duration": 1, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/datasets/500/projects', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", - "err": {}, - "uuid": "6956cccd-adba-49ab-a04f-c8c551f59612", - "parentUUID": "62c9041d-0c27-46c9-8a2e-6768174e43f1", + "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();", + "err": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "d7c6e87c-ac22-432f-8f50-1c68693db8e9", + "parentUUID": "7b905b3a-0af4-4821-90b2-a76fa4c14ed1", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "6956cccd-adba-49ab-a04f-c8c551f59612" + "passes": [], + "failures": [ + "d7c6e87c-ac22-432f-8f50-1c68693db8e9" ], - "failures": [], "pending": [], "skipped": [], - "duration": 169, + "duration": 1, "root": false, "rootEmpty": false, "_timeout": 900000 @@ -4284,49 +4771,53 @@ "_timeout": 900000 }, { - "uuid": "62ccd9ab-1b36-40c8-bbb2-04e0d3a0d175", - "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", + "uuid": "fe6c2426-f9a0-462c-8334-97c71da8c6b3", + "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": "8db81a91-0578-47d7-8670-4530e6c6124b", + "uuid": "3872dfaf-cc19-4da0-8e2d-33005b2d03b7", "title": "tests for get", - "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", + "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 \"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 \"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": 377, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, + "duration": 0, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "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();", - "err": {}, - "uuid": "d9ea056e-ab76-45ee-ad3d-9260cea26bcc", - "parentUUID": "8db81a91-0578-47d7-8670-4530e6c6124b", + "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": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "f3ef33aa-f11e-418e-a89e-44aa36970abd", + "parentUUID": "3872dfaf-cc19-4da0-8e2d-33005b2d03b7", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "d9ea056e-ab76-45ee-ad3d-9260cea26bcc" + "passes": [], + "failures": [ + "f3ef33aa-f11e-418e-a89e-44aa36970abd" ], - "failures": [], "pending": [], "skipped": [], - "duration": 377, + "duration": 0, "root": false, "rootEmpty": false, "_timeout": 900000 @@ -4342,49 +4833,53 @@ "_timeout": 900000 }, { - "uuid": "ea42243e-0c52-4fe9-91d1-87adad98dc33", - "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", + "uuid": "b3083dfb-035b-4342-83bb-cef07f8520aa", + "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": "265865d1-2ece-4028-a5dc-ba1960e4252b", + "uuid": "8dcc9cac-f9cd-4469-a74b-98546f047156", "title": "tests for get", - "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", + "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 \"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 \"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": 1245, - "state": "passed", - "speed": "slow", - "pass": true, - "fail": false, + "duration": 0, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "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();", - "err": {}, - "uuid": "67d707a9-cad2-4199-80f9-d4200a76aa23", - "parentUUID": "265865d1-2ece-4028-a5dc-ba1960e4252b", + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/chronologies/4270', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "err": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "ca5c2f9f-a479-4418-aae1-59814978414f", + "parentUUID": "8dcc9cac-f9cd-4469-a74b-98546f047156", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "67d707a9-cad2-4199-80f9-d4200a76aa23" + "passes": [], + "failures": [ + "ca5c2f9f-a479-4418-aae1-59814978414f" ], - "failures": [], "pending": [], "skipped": [], - "duration": 1245, + "duration": 0, "root": false, "rootEmpty": false, "_timeout": 900000 @@ -4398,51 +4893,55 @@ "root": false, "rootEmpty": false, "_timeout": 900000 - }, - { - "uuid": "59c3c501-a203-419b-bfb3-63482a3bddfe", - "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", + }, + { + "uuid": "3952b34a-ca7d-42ed-aedc-60875cbd00e5", + "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": "8f4909ed-0bde-4c8b-9f71-677ef7567321", + "uuid": "935a6b48-d7a4-4cbe-863c-f63e77006806", "title": "tests for get", - "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", + "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 \"Returned table.\"", - "fullTitle": "tests for /v1.5/dbtables/{table} tests for get should respond 200 for \"Returned table.\"", + "title": "should respond 200 for \"contact\"", + "fullTitle": "tests for /v2.0/data/contacts tests for get should respond 200 for \"contact\"", "timedOut": false, - "duration": 74, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, + "duration": 1, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "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();", - "err": {}, - "uuid": "0c5686dc-ab14-434d-bff5-ad7d4d40ec34", - "parentUUID": "8f4909ed-0bde-4c8b-9f71-677ef7567321", + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/contacts', { \n 'qs': {\"contactid\":3930,\"familyname\":\"MGqwj\",\"contactname\":\"JoaJZgLpAM\",\"contactstatus\":\"extant\",\"limit\": 10,\"offset\": 0},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "err": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "16a2c424-26d2-48fc-8888-e8258df05254", + "parentUUID": "935a6b48-d7a4-4cbe-863c-f63e77006806", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "0c5686dc-ab14-434d-bff5-ad7d4d40ec34" + "passes": [], + "failures": [ + "16a2c424-26d2-48fc-8888-e8258df05254" ], - "failures": [], "pending": [], "skipped": [], - "duration": 74, + "duration": 1, "root": false, "rootEmpty": false, "_timeout": 900000 @@ -4458,49 +4957,53 @@ "_timeout": 900000 }, { - "uuid": "b9494a1c-fcdb-4d04-be0e-ac245da8204d", - "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", + "uuid": "fae92834-d632-4316-8cd6-2244782633e7", + "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": "148da618-aeea-4a1d-bb1e-f5f3a2a741cd", + "uuid": "477b8f27-eb4a-470b-97a4-2a312c9dec71", "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", + "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": 108, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, + "duration": 1, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "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();", - "err": {}, - "uuid": "af88d399-2c73-4515-b552-e2d52c7453b9", - "parentUUID": "148da618-aeea-4a1d-bb1e-f5f3a2a741cd", + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/publications/5598', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "err": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "38fbbb44-7a7c-47c0-b323-567d3eed91d2", + "parentUUID": "477b8f27-eb4a-470b-97a4-2a312c9dec71", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "af88d399-2c73-4515-b552-e2d52c7453b9" + "passes": [], + "failures": [ + "38fbbb44-7a7c-47c0-b323-567d3eed91d2" ], - "failures": [], "pending": [], "skipped": [], - "duration": 108, + "duration": 1, "root": false, "rootEmpty": false, "_timeout": 900000 @@ -4516,49 +5019,53 @@ "_timeout": 900000 }, { - "uuid": "bfdec21a-1ffa-4828-b120-a89417fd4ee6", - "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", + "uuid": "b7580419-af58-4275-921a-344c7b44d2b8", + "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": "b2cf7500-51ab-4717-b088-b8d4b8c540bf", + "uuid": "68318955-0892-4c05-a217-203dab286fdd", "title": "tests for get", - "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", + "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 \"An array of datasets.\"", - "fullTitle": "tests for /v2.0/data/aggregatedatasets/{aggdatasetid} tests for get 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": 105, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, + "duration": 0, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "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();", - "err": {}, - "uuid": "f51d6c83-5153-405b-97ae-6d9999e31b50", - "parentUUID": "b2cf7500-51ab-4717-b088-b8d4b8c540bf", + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/geopoliticalunits/7445/datasets', { \n 'qs': {\"limit\": 10,\"offset\": 0},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "err": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "372bb63a-4a95-4d3d-a4a7-aed888602416", + "parentUUID": "68318955-0892-4c05-a217-203dab286fdd", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "f51d6c83-5153-405b-97ae-6d9999e31b50" + "passes": [], + "failures": [ + "372bb63a-4a95-4d3d-a4a7-aed888602416" ], - "failures": [], "pending": [], "skipped": [], - "duration": 105, + "duration": 0, "root": false, "rootEmpty": false, "_timeout": 900000 @@ -4574,316 +5081,115 @@ "_timeout": 900000 }, { - "uuid": "36ee89a5-1664-496e-9291-ac9b829c1687", - "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", + "uuid": "c1b7613b-4da5-4e07-86c9-107cc4a53153", + "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": [ - { - "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": "fffa3df5-c751-41dd-9b8f-73639b021818", - "parentUUID": "36ee89a5-1664-496e-9291-ac9b829c1687", - "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": "f16014d2-e1ab-4a9c-a2cf-824c40ba83b1", - "parentUUID": "36ee89a5-1664-496e-9291-ac9b829c1687", - "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": "8d5a6103-3de7-4544-a9f6-fb978e2d41bb", - "parentUUID": "36ee89a5-1664-496e-9291-ac9b829c1687", - "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": "3956a44b-ed7e-413d-b821-e3cbff566ae3", - "parentUUID": "36ee89a5-1664-496e-9291-ac9b829c1687", - "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": "c3a65e98-34b5-4c74-a96e-08ae6a12bff3", - "parentUUID": "36ee89a5-1664-496e-9291-ac9b829c1687", - "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": "cd218e02-1c5a-4bc5-8cd1-a487bd4924f7", - "parentUUID": "36ee89a5-1664-496e-9291-ac9b829c1687", - "isHook": false, - "skipped": false - }, - { - "title": "Occurrences filter by age:", - "fullTitle": "Get occurrence data any number of ways: Occurrences filter by age:", - "timedOut": false, - "duration": 1, - "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": "be9a3fd8-024e-4b1f-a163-289d19740e3a", - "parentUUID": "36ee89a5-1664-496e-9291-ac9b829c1687", - "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": "1af2ba38-ecc5-441f-acc5-872acfa6f62d", - "parentUUID": "36ee89a5-1664-496e-9291-ac9b829c1687", - "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": "16ac4403-c7f3-4d8f-aa29-a5343d744b91", - "parentUUID": "36ee89a5-1664-496e-9291-ac9b829c1687", - "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": "023b8919-7a23-430f-9098-876562e84540", - "parentUUID": "36ee89a5-1664-496e-9291-ac9b829c1687", - "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": 1, - "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": "7346c1d9-08e3-4b08-a0bb-f130ebcdddc6", - "parentUUID": "36ee89a5-1664-496e-9291-ac9b829c1687", - "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": "43a2d8b5-a096-4595-a1d3-a00deee4a6ad", - "parentUUID": "36ee89a5-1664-496e-9291-ac9b829c1687", - "isHook": false, - "skipped": false - }, + "tests": [], + "suites": [ { - "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, + "uuid": "1b7a64cf-bb4a-4e33-bb04-496bed0b9e20", + "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 \"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": 0, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, + "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();", + "err": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "d08d060c-27a1-40f4-a3a5-346a97f9863b", + "parentUUID": "1b7a64cf-bb4a-4e33-bb04-496bed0b9e20", + "isHook": false, + "skipped": false + } + ], + "suites": [], + "passes": [], + "failures": [ + "d08d060c-27a1-40f4-a3a5-346a97f9863b" + ], + "pending": [], + "skipped": [], "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": "61294dd7-0a37-4f2b-a4b9-8cf50fee666e", - "parentUUID": "36ee89a5-1664-496e-9291-ac9b829c1687", - "isHook": false, - "skipped": false + "root": false, + "rootEmpty": false, + "_timeout": 900000 } ], - "suites": [], - "passes": [ - "fffa3df5-c751-41dd-9b8f-73639b021818", - "f16014d2-e1ab-4a9c-a2cf-824c40ba83b1", - "8d5a6103-3de7-4544-a9f6-fb978e2d41bb", - "3956a44b-ed7e-413d-b821-e3cbff566ae3", - "c3a65e98-34b5-4c74-a96e-08ae6a12bff3", - "cd218e02-1c5a-4bc5-8cd1-a487bd4924f7", - "be9a3fd8-024e-4b1f-a163-289d19740e3a", - "1af2ba38-ecc5-441f-acc5-872acfa6f62d", - "16ac4403-c7f3-4d8f-aa29-a5343d744b91", - "023b8919-7a23-430f-9098-876562e84540", - "7346c1d9-08e3-4b08-a0bb-f130ebcdddc6", - "43a2d8b5-a096-4595-a1d3-a00deee4a6ad", - "61294dd7-0a37-4f2b-a4b9-8cf50fee666e" - ], + "passes": [], "failures": [], "pending": [], "skipped": [], - "duration": 2, + "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 30000 + "_timeout": 900000 }, { - "uuid": "158216ed-59ec-4ffb-9c5b-baee24efeb4c", - "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", + "uuid": "0e537564-5218-4f70-b319-cc81a290dce1", + "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": "849767df-879b-4ec5-afc0-666189245dc0", + "uuid": "1a317474-1f9b-4395-8868-8a51450c7ad8", "title": "tests for get", - "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", + "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 \"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 \"Returned table.\"", + "fullTitle": "tests for /v1.5/dbtables/{table} tests for get should respond 200 for \"Returned table.\"", "timedOut": false, - "duration": 7166, - "state": "passed", - "speed": "slow", - "pass": true, - "fail": false, + "duration": 1, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "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();", - "err": {}, - "uuid": "fb1d5f80-6053-4f96-84c5-b5e89f307830", - "parentUUID": "849767df-879b-4ec5-afc0-666189245dc0", + "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": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "017a93a8-1b5c-4451-a138-a03de021561e", + "parentUUID": "1a317474-1f9b-4395-8868-8a51450c7ad8", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "fb1d5f80-6053-4f96-84c5-b5e89f307830" + "passes": [], + "failures": [ + "017a93a8-1b5c-4451-a138-a03de021561e" ], - "failures": [], "pending": [], "skipped": [], - "duration": 7166, + "duration": 1, "root": false, "rootEmpty": false, "_timeout": 900000 @@ -4899,361 +5205,367 @@ "_timeout": 900000 }, { - "uuid": "ad1ae0e8-cdcd-400d-a128-ff4776501cb9", - "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", + "uuid": "0fba9208-8a89-4f46-affa-857a37715ad5", + "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": [ - { - "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": 77, - "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": "6ba2557b-d822-44fb-bc1b-d0b1032e1636", - "parentUUID": "ad1ae0e8-cdcd-400d-a128-ff4776501cb9", - "isHook": false, - "skipped": false - }, - { - "title": "Get publication by comma sepatarated ids:", - "fullTitle": "Get publication data any number of ways: Get publication by comma sepatarated ids:", - "timedOut": false, - "duration": 76, - "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": "c9da47a8-12cc-4d8e-ae1a-8541c9cea640", - "parentUUID": "ad1ae0e8-cdcd-400d-a128-ff4776501cb9", - "isHook": false, - "skipped": false - }, - { - "title": "Get publication by querying author:", - "fullTitle": "Get publication data any number of ways: Get publication by querying author:", - "timedOut": false, - "duration": 309, - "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": "90bbc6c5-46da-4720-9310-a5b925d1fc68", - "parentUUID": "ad1ae0e8-cdcd-400d-a128-ff4776501cb9", - "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": 89, - "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": "e55ff303-7026-42ea-9170-5188dcdec387", - "parentUUID": "ad1ae0e8-cdcd-400d-a128-ff4776501cb9", - "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": 84, - "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": "ef0303e0-1197-462a-aa0e-aad136ccc2f3", - "parentUUID": "ad1ae0e8-cdcd-400d-a128-ff4776501cb9", - "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": 83, - "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": "f0dfa1ed-c8e7-44e6-83b7-f5209421642c", - "parentUUID": "ad1ae0e8-cdcd-400d-a128-ff4776501cb9", - "isHook": false, - "skipped": false - }, + "tests": [], + "suites": [ { - "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": 90, - "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": "79257859-85e7-47de-b885-f73536c06127", - "parentUUID": "ad1ae0e8-cdcd-400d-a128-ff4776501cb9", - "isHook": false, - "skipped": false + "uuid": "e3554883-a2d5-4fdc-907e-76eeb35f9c01", + "title": "tests for get", + "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 \"Datasets\"", + "fullTitle": "tests for /v2.0/data/datasets/db tests for get should respond 200 for \"Datasets\"", + "timedOut": false, + "duration": 1, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, + "pending": false, + "context": null, + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/datasets/db', { \n 'qs': {\"limit\": 10,\"offset\": 0,\"database\":\"North American Pollen Database\"},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "err": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "cdaace30-ed4b-4e13-8b3e-a271bb0736fe", + "parentUUID": "e3554883-a2d5-4fdc-907e-76eeb35f9c01", + "isHook": false, + "skipped": false + } + ], + "suites": [], + "passes": [], + "failures": [ + "cdaace30-ed4b-4e13-8b3e-a271bb0736fe" + ], + "pending": [], + "skipped": [], + "duration": 1, + "root": false, + "rootEmpty": false, + "_timeout": 900000 } ], - "suites": [], - "passes": [ - "6ba2557b-d822-44fb-bc1b-d0b1032e1636", - "c9da47a8-12cc-4d8e-ae1a-8541c9cea640", - "90bbc6c5-46da-4720-9310-a5b925d1fc68", - "e55ff303-7026-42ea-9170-5188dcdec387", - "ef0303e0-1197-462a-aa0e-aad136ccc2f3", - "f0dfa1ed-c8e7-44e6-83b7-f5209421642c", - "79257859-85e7-47de-b885-f73536c06127" + "passes": [], + "failures": [], + "pending": [], + "skipped": [], + "duration": 0, + "root": false, + "rootEmpty": false, + "_timeout": 900000 + }, + { + "uuid": "04806d92-01e1-4bd6-9b9e-2c926e5d4caf", + "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": "ab42d8a5-12f7-499a-a241-14a63ce24394", + "title": "tests for get", + "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 \"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": 1, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, + "pending": false, + "context": null, + "code": "var response = request('get', 'http://localhost:3001/v2.0/apps/constdb/datasets', { \n 'qs': {\"dbid\":29},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "err": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "74c16519-7430-4189-b03c-95c9e4153863", + "parentUUID": "ab42d8a5-12f7-499a-a241-14a63ce24394", + "isHook": false, + "skipped": false + } + ], + "suites": [], + "passes": [], + "failures": [ + "74c16519-7430-4189-b03c-95c9e4153863" + ], + "pending": [], + "skipped": [], + "duration": 1, + "root": false, + "rootEmpty": false, + "_timeout": 900000 + } ], + "passes": [], "failures": [], "pending": [], "skipped": [], - "duration": 808, + "duration": 0, "root": false, "rootEmpty": false, - "_timeout": 15000 + "_timeout": 900000 }, { - "uuid": "2a7b481c-9542-47d3-ada9-ff140ebd74b4", - "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", + "uuid": "ab555bc5-2878-4dde-967d-203368d22eef", + "title": "Get aeDNA assays by datasetid:", + "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/assays.js", + "file": "/test/assays.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:", + "title": "every assay carries the FAIRe project terms:", + "fullTitle": "Get aeDNA assays by datasetid: every assay carries the FAIRe project terms:", "timedOut": false, - "duration": 111, - "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": "a096ba33-f5cf-4c3e-bbb7-52bbd7f1d1be", - "parentUUID": "2a7b481c-9542-47d3-ada9-ff140ebd74b4", - "isHook": false, - "skipped": false - }, - { - "title": "Get site by altitude:", - "fullTitle": "Get site data any number of ways: Get site by altitude:", - "timedOut": true, - "duration": 5002, + "duration": 1, "state": "failed", "speed": null, "pass": false, "fail": true, "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 });", + "code": "api.get('v2.0/data/datasets/500/assays')\n .set('Accept', 'application/json')\n .expect(200)\n .expect(function(res) {\n const assays = res.body.data.assays;\n expect(assays).to.be.an('array');\n assays.forEach(function(assay) {\n // sterilise_method / neg_cont / pos_cont -> projectMetadata D6/D7/D8.\n expect(assay).to.have.property('sterilisemethod');\n expect(assay).to.have.property('negcont');\n expect(assay).to.have.property('poscont');\n });\n })\n .end(done);", "err": { - "message": "Error: Timeout of 5000ms exceeded. For async tests and hooks, ensure \"done()\" is called; if returning a Promise, ensure it resolves. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/sites.js)", - "estack": "Error: Timeout of 5000ms exceeded. For async tests and hooks, ensure \"done()\" is called; if returning a Promise, ensure it resolves. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/sites.js)\n at createTimeoutError (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/mocha/lib/errors.js:386:15)\n at Runnable._timeoutError (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/mocha/lib/runnable.js:431:10)\n at Timeout. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/mocha/lib/runnable.js:246:24)\n at listOnTimeout (node:internal/timers:614:17)\n at process.processTimers (node:internal/timers:549:7)", + "message": "AggregateError [ECONNREFUSED]: ", + "estack": "AggregateError [ECONNREFUSED]: \n at internalConnectMultiple (node:net:1139:18)\n at afterConnectMultiple (node:net:1712:7)", "diff": null }, - "uuid": "bc523478-05dd-4416-b1c4-d94a05572eb9", - "parentUUID": "2a7b481c-9542-47d3-ada9-ff140ebd74b4", - "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": 5, - "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": "175599f3-27bb-434c-9a79-c73b243c43eb", - "parentUUID": "2a7b481c-9542-47d3-ada9-ff140ebd74b4", - "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": 556, - "state": "passed", - "speed": "medium", - "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": "099f294a-156d-4ebc-90b2-5e7eefc958b6", - "parentUUID": "2a7b481c-9542-47d3-ada9-ff140ebd74b4", + "uuid": "76cb0d82-fdcc-419a-8823-a767fcfe93b4", + "parentUUID": "ab555bc5-2878-4dde-967d-203368d22eef", "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:", + "title": "a dataset with no assays returns an empty array, not an error:", + "fullTitle": "Get aeDNA assays by datasetid: a dataset with no assays returns an empty array, not an error:", "timedOut": false, - "duration": 374, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, + "duration": 0, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "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": "c65fee66-10e5-4b23-a466-caf30cbc8543", - "parentUUID": "2a7b481c-9542-47d3-ada9-ff140ebd74b4", + "code": "api.get('v2.0/data/datasets/500/assays')\n .set('Accept', 'application/json')\n .expect(200)\n .expect(function(res) {\n expect(res.body.data.assays).to.be.an('array');\n })\n .end(done);", + "err": { + "message": "AggregateError [ECONNREFUSED]: ", + "estack": "AggregateError [ECONNREFUSED]: \n at internalConnectMultiple (node:net:1139:18)\n at afterConnectMultiple (node:net:1712:7)", + "diff": null + }, + "uuid": "088fd66a-1453-4368-8d3a-408c843d6e54", + "parentUUID": "ab555bc5-2878-4dde-967d-203368d22eef", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "a096ba33-f5cf-4c3e-bbb7-52bbd7f1d1be", - "175599f3-27bb-434c-9a79-c73b243c43eb", - "099f294a-156d-4ebc-90b2-5e7eefc958b6", - "c65fee66-10e5-4b23-a466-caf30cbc8543" - ], + "passes": [], "failures": [ - "bc523478-05dd-4416-b1c4-d94a05572eb9" + "76cb0d82-fdcc-419a-8823-a767fcfe93b4", + "088fd66a-1453-4368-8d3a-408c843d6e54" ], "pending": [], "skipped": [], - "duration": 6048, + "duration": 1, "root": false, "rootEmpty": false, "_timeout": 5000 }, { - "uuid": "d513ae07-6663-419e-84dc-d29cec6ece5a", - "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", + "uuid": "44f7f968-f1b2-47c5-b839-314068a2d8b5", + "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": [ + "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": "44ace4d7-4aa6-4eef-8d22-5a66808c5afb", - "parentUUID": "d513ae07-6663-419e-84dc-d29cec6ece5a", - "isHook": false, - "skipped": false + "uuid": "778d5d29-5563-40cf-b8d0-7820b4ab5c4a", + "title": "tests for get", + "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 \"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": 1, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, + "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();", + "err": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "3f88f077-e821-4e3f-bfe4-03400e707341", + "parentUUID": "778d5d29-5563-40cf-b8d0-7820b4ab5c4a", + "isHook": false, + "skipped": false + } + ], + "suites": [], + "passes": [], + "failures": [ + "3f88f077-e821-4e3f-bfe4-03400e707341" + ], + "pending": [], + "skipped": [], + "duration": 1, + "root": false, + "rootEmpty": false, + "_timeout": 900000 } ], - "suites": [], - "passes": [ - "44ace4d7-4aa6-4eef-8d22-5a66808c5afb" + "passes": [], + "failures": [], + "pending": [], + "skipped": [], + "duration": 0, + "root": false, + "rootEmpty": false, + "_timeout": 900000 + }, + { + "uuid": "fa862ae2-e148-40e6-af45-e08bf09ec259", + "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": "3405b133-9ff2-4c15-85c5-43049a1dbea1", + "title": "tests for get", + "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 \"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": 0, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, + "pending": false, + "context": null, + "code": "var response = request('get', 'http://localhost:3001/v2.0/apps/constdb/datasetages', { \n 'qs': {\"dbid\":33},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "err": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "955ea27b-d1ed-479d-a971-b588b23cd709", + "parentUUID": "3405b133-9ff2-4c15-85c5-43049a1dbea1", + "isHook": false, + "skipped": false + } + ], + "suites": [], + "passes": [], + "failures": [ + "955ea27b-d1ed-479d-a971-b588b23cd709" + ], + "pending": [], + "skipped": [], + "duration": 0, + "root": false, + "rootEmpty": false, + "_timeout": 900000 + } ], + "passes": [], "failures": [], "pending": [], "skipped": [], - "duration": 2, + "duration": 0, "root": false, "rootEmpty": false, "_timeout": 900000 }, { - "uuid": "57513529-8168-4861-97cc-dc843209b3ec", - "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", + "uuid": "3f229cc1-cee9-4b62-b492-16e0c9aa19ef", + "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": "3c4f4f2b-1d40-4852-b2cf-13fe6d9e8a10", + "uuid": "6095069f-5dc9-4f67-aecd-8c698dc83da0", "title": "tests for get", - "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", + "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 \"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 \"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": 78, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, + "duration": 0, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/apps/constdb/datasets', { \n 'qs': {\"dbid\":18},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", - "err": {}, - "uuid": "b27a423a-2e29-48fd-a657-9df122978a98", - "parentUUID": "3c4f4f2b-1d40-4852-b2cf-13fe6d9e8a10", + "code": "var response = request('get', 'http://localhost:3001/v1.5/data/geopoliticalunits/5027', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "err": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "900bb9f8-8ffb-492b-b165-612309a618b3", + "parentUUID": "6095069f-5dc9-4f67-aecd-8c698dc83da0", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "b27a423a-2e29-48fd-a657-9df122978a98" + "passes": [], + "failures": [ + "900bb9f8-8ffb-492b-b165-612309a618b3" ], - "failures": [], "pending": [], "skipped": [], - "duration": 78, + "duration": 0, "root": false, "rootEmpty": false, "_timeout": 900000 @@ -5269,49 +5581,53 @@ "_timeout": 900000 }, { - "uuid": "e9dc010d-170f-4524-86b0-37b555e853e3", - "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", + "uuid": "b4b24f95-bd4d-417c-b6ca-160814bf5bf9", + "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": "2e5e4203-1a87-416b-9c18-5a5f2ea6984c", + "uuid": "90895b20-d4f6-4a36-b934-a192ba26779e", "title": "tests for get", - "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", + "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 \"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 datasets.\"", + "fullTitle": "tests for /v2.0/data/datasets/{datasetid} tests for get should respond 200 for \"An array of datasets.\"", "timedOut": false, - "duration": 99, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, + "duration": 0, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/contacts/6654/sites', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", - "err": {}, - "uuid": "4fa9cab2-7b85-4954-87e2-2cd9a94bb753", - "parentUUID": "2e5e4203-1a87-416b-9c18-5a5f2ea6984c", + "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();", + "err": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "876d0eb0-f64b-49b4-8efc-6b64149b3c57", + "parentUUID": "90895b20-d4f6-4a36-b934-a192ba26779e", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "4fa9cab2-7b85-4954-87e2-2cd9a94bb753" + "passes": [], + "failures": [ + "876d0eb0-f64b-49b4-8efc-6b64149b3c57" ], - "failures": [], "pending": [], "skipped": [], - "duration": 99, + "duration": 0, "root": false, "rootEmpty": false, "_timeout": 900000 @@ -5327,49 +5643,53 @@ "_timeout": 900000 }, { - "uuid": "a214fb0a-e249-4314-9934-b851bb27275c", - "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", + "uuid": "4d391fce-734d-4995-b5f1-596284bb6ed8", + "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": "53a7091f-4a58-4e8b-bbd6-c4338558958a", + "uuid": "8db9fbc0-26a6-4805-b866-4e3cb782515e", "title": "tests for get", - "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", + "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 \"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.\"", + "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": 101, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, + "duration": 0, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "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": "bf6cca29-3264-4838-8486-a99976e3a70a", - "parentUUID": "53a7091f-4a58-4e8b-bbd6-c4338558958a", + "code": "var response = request('get', 'http://localhost:3001/v2.0/apps/constdb/datasetuploads', { \n 'qs': {\"dbid\":4},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "err": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "dc999188-d79a-45b5-a5f7-a3d3b528adfe", + "parentUUID": "8db9fbc0-26a6-4805-b866-4e3cb782515e", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "bf6cca29-3264-4838-8486-a99976e3a70a" + "passes": [], + "failures": [ + "dc999188-d79a-45b5-a5f7-a3d3b528adfe" ], - "failures": [], "pending": [], "skipped": [], - "duration": 101, + "duration": 0, "root": false, "rootEmpty": false, "_timeout": 900000 @@ -5385,49 +5705,115 @@ "_timeout": 900000 }, { - "uuid": "fa92c019-b324-478b-8db3-d28904c284bb", - "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", + "uuid": "0735bda5-f0ee-46e6-92b3-93127074cc8d", + "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": "13b7dd54-073d-4052-8f0e-405c36bbcb35", + "uuid": "bb6f707a-2035-41b7-bf84-2cf19dcc2556", "title": "tests for get", - "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", + "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 \"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 \"Lithology\"", + "fullTitle": "tests for /v2.0/data/datasets/{datasetid}/lithology tests for get should respond 200 for \"Lithology\"", "timedOut": false, - "duration": 112, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, + "duration": 1, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "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();", - "err": {}, - "uuid": "93991a2c-1fa5-4cac-8af8-26eebb4687ae", - "parentUUID": "13b7dd54-073d-4052-8f0e-405c36bbcb35", + "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();", + "err": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "caca6ebe-267a-4151-a024-8371cd368039", + "parentUUID": "bb6f707a-2035-41b7-bf84-2cf19dcc2556", + "isHook": false, + "skipped": false + } + ], + "suites": [], + "passes": [], + "failures": [ + "caca6ebe-267a-4151-a024-8371cd368039" + ], + "pending": [], + "skipped": [], + "duration": 1, + "root": false, + "rootEmpty": false, + "_timeout": 900000 + } + ], + "passes": [], + "failures": [], + "pending": [], + "skipped": [], + "duration": 0, + "root": false, + "rootEmpty": false, + "_timeout": 900000 + }, + { + "uuid": "85beb164-a6f7-4e74-a6ab-6dccabb411a4", + "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": "b8aa503f-a1c1-49d0-99d3-9eb81d34ff2f", + "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 \"Taxa\"", + "fullTitle": "tests for /v2.0/data/datasets/{datasetid}/taxa tests for get should respond 200 for \"Taxa\"", + "timedOut": false, + "duration": 0, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, + "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();", + "err": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "5c947028-851e-44d6-9255-5397b5a780e9", + "parentUUID": "b8aa503f-a1c1-49d0-99d3-9eb81d34ff2f", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "93991a2c-1fa5-4cac-8af8-26eebb4687ae" + "passes": [], + "failures": [ + "5c947028-851e-44d6-9255-5397b5a780e9" ], - "failures": [], "pending": [], "skipped": [], - "duration": 112, + "duration": 0, "root": false, "rootEmpty": false, "_timeout": 900000 @@ -5443,49 +5829,53 @@ "_timeout": 900000 }, { - "uuid": "da45889e-f0a3-4603-8141-84a2190e7975", - "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", + "uuid": "7ac7eecd-ba28-4481-81a1-16eab5aaebdd", + "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": "8c755e8f-4df1-4965-a807-243b1ed5fafd", + "uuid": "47db416d-93f7-4e7a-b68f-1b710ecb963d", "title": "tests for get", - "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", + "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 \"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 \"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": 729, - "state": "passed", - "speed": "medium", - "pass": true, - "fail": false, + "duration": 0, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/sites', { \n 'qs': {\"sitename\":\"ex ea nostrud\",\"database\":\"Indo-Pacific Pollen Database\",\"datasettype\":\"energy dispersive X-ray spectroscopy (EDS/EDX)\",\"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\":24072,\"datasetid\":1420415,\"doi\":\"10s728234426/YV6:IWR;;\",\"gpid\":5392,\"keyword\":\"interglacial\",\"contactid\":20081,\"taxa\":\"eu\",\"ageyoung\": 1000,\"ageold\": 10000,\"ageof\":15801863,\"limit\": 10,\"offset\": 0},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", - "err": {}, - "uuid": "55184b95-0451-4062-8d40-33d33d6990ab", - "parentUUID": "8c755e8f-4df1-4965-a807-243b1ed5fafd", + "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();", + "err": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "25bd3977-e93c-4963-82cb-c554ce5d2e3b", + "parentUUID": "47db416d-93f7-4e7a-b68f-1b710ecb963d", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "55184b95-0451-4062-8d40-33d33d6990ab" + "passes": [], + "failures": [ + "25bd3977-e93c-4963-82cb-c554ce5d2e3b" ], - "failures": [], "pending": [], "skipped": [], - "duration": 729, + "duration": 0, "root": false, "rootEmpty": false, "_timeout": 900000 @@ -5501,49 +5891,53 @@ "_timeout": 900000 }, { - "uuid": "bc4de0c9-9126-40ad-9922-dac2d506460f", - "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", + "uuid": "bd74aa99-080c-4d9f-8e50-8029fba69fdb", + "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": "960d6443-c628-4d3e-966d-812c904521aa", + "uuid": "8746f9ed-2ba7-48a9-8f5e-af6d4c7f546a", "title": "tests for get", - "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", + "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": 91, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, + "duration": 0, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/spatial/faunal', { \n 'qs': {\"sciname\":\"esse\",\"proj\": 4326,\"prec\": 1000},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", - "err": {}, - "uuid": "fb3877c1-f4a6-48a2-a787-97e76e030411", - "parentUUID": "960d6443-c628-4d3e-966d-812c904521aa", + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/sites/500/chronologies', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "err": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "dadc1dfd-698f-457a-9263-447e7dfc74cd", + "parentUUID": "8746f9ed-2ba7-48a9-8f5e-af6d4c7f546a", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "fb3877c1-f4a6-48a2-a787-97e76e030411" + "passes": [], + "failures": [ + "dadc1dfd-698f-457a-9263-447e7dfc74cd" ], - "failures": [], "pending": [], "skipped": [], - "duration": 91, + "duration": 0, "root": false, "rootEmpty": false, "_timeout": 900000 @@ -5559,49 +5953,53 @@ "_timeout": 900000 }, { - "uuid": "fa08e4dc-ec68-4c23-b05c-0c642d59175c", - "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", + "uuid": "f1271ee6-0989-4e4e-970f-48c5ec6dac29", + "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": "6a3bd9f1-5958-4979-9e49-e727e7aa9488", + "uuid": "36bf1068-2edf-4717-ad22-4a4332530bea", "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", + "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 \"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 \"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": 68, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, + "duration": 1, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "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": "1f2fb06a-c172-46eb-830f-3905051e783b", - "parentUUID": "6a3bd9f1-5958-4979-9e49-e727e7aa9488", + "code": "var response = request('get', 'http://localhost:3001/v2.0/apps/taphonomysystems', { \n 'qs': {\"datasettypeid\":26},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "err": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "24fe7ef4-b6f0-49d7-8d02-a6cb605f5185", + "parentUUID": "36bf1068-2edf-4717-ad22-4a4332530bea", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "1f2fb06a-c172-46eb-830f-3905051e783b" + "passes": [], + "failures": [ + "24fe7ef4-b6f0-49d7-8d02-a6cb605f5185" ], - "failures": [], "pending": [], "skipped": [], - "duration": 68, + "duration": 1, "root": false, "rootEmpty": false, "_timeout": 900000 @@ -5617,49 +6015,53 @@ "_timeout": 900000 }, { - "uuid": "2063622c-a231-4e42-9fe6-be3dc0debba5", - "title": "tests for /v2.0/data/aedna/sequences/{datasetid}", - "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-aedna-sequences-{datasetid}-test.js", - "file": "/test/v2.0-data-aedna-sequences-{datasetid}-test.js", + "uuid": "001f3a4e-6c54-41b2-bff0-d4d419294342", + "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": "c4ac23cb-f524-4def-a31c-5247968892c3", + "uuid": "a60cbf4b-ba96-4627-b572-951473a1d7b1", "title": "tests for get", - "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-aedna-sequences-{datasetid}-test.js", - "file": "/test/v2.0-data-aedna-sequences-{datasetid}-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 \"aeDNA sequences grouped by taxon for the dataset.\"", - "fullTitle": "tests for /v2.0/data/aedna/sequences/{datasetid} tests for get should respond 200 for \"aeDNA sequences grouped by taxon for the dataset.\"", + "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": 93, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, + "duration": 1, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/aedna/sequences/500', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", - "err": {}, - "uuid": "f92dc5e7-2404-4371-8858-6c7ec87afbeb", - "parentUUID": "c4ac23cb-f524-4def-a31c-5247968892c3", + "code": "var response = request('get', 'http://localhost:3001/v1.5/data/contacts/-71846374', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "err": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "749551c6-d035-4b91-b5dd-90f3dc189a0c", + "parentUUID": "a60cbf4b-ba96-4627-b572-951473a1d7b1", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "f92dc5e7-2404-4371-8858-6c7ec87afbeb" + "passes": [], + "failures": [ + "749551c6-d035-4b91-b5dd-90f3dc189a0c" ], - "failures": [], "pending": [], "skipped": [], - "duration": 93, + "duration": 1, "root": false, "rootEmpty": false, "_timeout": 900000 @@ -5675,49 +6077,53 @@ "_timeout": 900000 }, { - "uuid": "db26b31a-67a2-493f-8378-0a95f6235f05", - "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", + "uuid": "9a5f38e0-7ad9-40a1-9f52-8cdc4dbc5f80", + "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": "2ce11dbf-4752-4b02-bd87-baeda722da7b", + "uuid": "7f05bfd6-a2f2-477f-864a-8c307f4efb60", "title": "tests for get", - "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", + "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 \"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 \"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": 749, - "state": "passed", - "speed": "medium", - "pass": true, - "fail": false, + "duration": 0, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "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();", - "err": {}, - "uuid": "49a3be2f-1d51-4e72-8b74-1216ac8050ce", - "parentUUID": "2ce11dbf-4752-4b02-bd87-baeda722da7b", + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/spatial/lakes', { \n 'qs': {\"siteid\":26056,\"buffer\":8474,\"prec\": 1000,\"proj\": 4326},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "err": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "9a79db24-8450-492f-9902-4331067c7f41", + "parentUUID": "7f05bfd6-a2f2-477f-864a-8c307f4efb60", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "49a3be2f-1d51-4e72-8b74-1216ac8050ce" + "passes": [], + "failures": [ + "9a79db24-8450-492f-9902-4331067c7f41" ], - "failures": [], "pending": [], "skipped": [], - "duration": 749, + "duration": 0, "root": false, "rootEmpty": false, "_timeout": 900000 @@ -5733,49 +6139,53 @@ "_timeout": 900000 }, { - "uuid": "6eee8822-364e-435a-89ca-f066732cac0e", - "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", + "uuid": "0de0fbc9-95c7-4ba2-82fc-e561644cfc94", + "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": "fe17e7a6-49e6-475e-b584-8b3bb8df66e5", + "uuid": "888f5522-227d-46de-b395-e486387d0fe3", "title": "tests for get", - "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", + "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 \"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 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": 75, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, + "duration": 0, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v1.5/data/sites/660', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", - "err": {}, - "uuid": "73556f3e-413e-47e9-a8af-9e740f5f1f21", - "parentUUID": "fe17e7a6-49e6-475e-b584-8b3bb8df66e5", + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/datasets_elc', { \n 'qs': {\"siteid\":5842,\"contactid\":15659,\"datasettype\":\"diatom surface sample\",\"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\":8754269},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "err": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "ee0725b1-6b0a-4df8-b688-c618786e68d5", + "parentUUID": "888f5522-227d-46de-b395-e486387d0fe3", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "73556f3e-413e-47e9-a8af-9e740f5f1f21" + "passes": [], + "failures": [ + "ee0725b1-6b0a-4df8-b688-c618786e68d5" ], - "failures": [], "pending": [], "skipped": [], - "duration": 75, + "duration": 0, "root": false, "rootEmpty": false, "_timeout": 900000 @@ -5791,49 +6201,53 @@ "_timeout": 900000 }, { - "uuid": "8a49fc15-d96c-4df2-aa44-094c46fe017c", - "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", + "uuid": "76afe5f2-1d59-4582-9545-88e6197ebd13", + "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": "5f5d8c06-a296-438f-b95d-166b0243cbd5", + "uuid": "3b687dcd-eb12-4c34-a52b-9ca7a6e49128", "title": "tests for get", - "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", + "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 \"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 \"occurrence\"", + "fullTitle": "tests for /v2.0/data/occurrences tests for get should respond 200 for \"occurrence\"", "timedOut": false, - "duration": 76, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, + "duration": 1, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/apps/taphonomysystems', { \n 'qs': {\"datasettypeid\":28},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", - "err": {}, - "uuid": "d813fea9-11c4-4589-84f9-449be4f0b8db", - "parentUUID": "5f5d8c06-a296-438f-b95d-166b0243cbd5", + "code": "var response = request('get', 'http://localhost:3001/v2.0/data/occurrences', { \n 'qs': {\"taxonname\":\"pariatur eu cillum laboris\",\"taxonid\":27771,\"siteid\":30886,\"sitename\":\"eiusmod\",\"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]]]}\",\"ageof\":1083090,\"ageyoung\": 1000,\"ageold\": 10000,\"limit\": 10,\"offset\": 0},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", + "err": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "d3d8d275-36f7-4bc1-8555-42c8dcb26f82", + "parentUUID": "3b687dcd-eb12-4c34-a52b-9ca7a6e49128", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "d813fea9-11c4-4589-84f9-449be4f0b8db" + "passes": [], + "failures": [ + "d3d8d275-36f7-4bc1-8555-42c8dcb26f82" ], - "failures": [], "pending": [], "skipped": [], - "duration": 76, + "duration": 1, "root": false, "rootEmpty": false, "_timeout": 900000 @@ -5849,49 +6263,53 @@ "_timeout": 900000 }, { - "uuid": "cb1d6f03-f0eb-44e8-b8e0-0f27b0ef60a4", - "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", + "uuid": "26a9fdc0-fe55-4ae7-a501-49141836e239", + "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": "f4fca9e6-585e-4ef2-9884-066484d15f87", + "uuid": "00b82459-aca9-47aa-8320-a39e186eedaf", "title": "tests for get", - "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", + "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 \"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 \"contact\"", + "fullTitle": "tests for /v2.0/data/datasets/{datasetid}/contacts tests for get should respond 200 for \"contact\"", "timedOut": false, - "duration": 132, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, + "duration": 1, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "pending": false, "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/geopoliticalunits/4173/datasets', { \n 'qs': {\"limit\": 10,\"offset\": 0},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", - "err": {}, - "uuid": "33984b99-d0eb-42fd-be96-6a55270cb914", - "parentUUID": "f4fca9e6-585e-4ef2-9884-066484d15f87", + "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();", + "err": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "7ccd2c04-4476-4f59-8b79-da048e4e6fed", + "parentUUID": "00b82459-aca9-47aa-8320-a39e186eedaf", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "33984b99-d0eb-42fd-be96-6a55270cb914" + "passes": [], + "failures": [ + "7ccd2c04-4476-4f59-8b79-da048e4e6fed" ], - "failures": [], "pending": [], "skipped": [], - "duration": 132, + "duration": 1, "root": false, "rootEmpty": false, "_timeout": 900000 @@ -5907,49 +6325,53 @@ "_timeout": 900000 }, { - "uuid": "7f9846bb-9243-45d0-bb79-691b308f8760", - "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", + "uuid": "a689a42e-6011-41ea-bdb4-2cd5cda3fd39", + "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": "89bf8e25-0c72-40cb-b0dd-9d66bcf637bd", + "uuid": "47770c2b-c5d0-4ad6-ba37-e01f7b82e887", "title": "tests for get", - "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", + "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 \"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 \"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": 117, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, + "duration": 0, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "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();", - "err": {}, - "uuid": "a5c010d8-4119-47c1-8149-24ece9986253", - "parentUUID": "89bf8e25-0c72-40cb-b0dd-9d66bcf637bd", + "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": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "cdef738a-5834-4a62-8e05-3693f22c61fe", + "parentUUID": "47770c2b-c5d0-4ad6-ba37-e01f7b82e887", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "a5c010d8-4119-47c1-8149-24ece9986253" + "passes": [], + "failures": [ + "cdef738a-5834-4a62-8e05-3693f22c61fe" ], - "failures": [], "pending": [], "skipped": [], - "duration": 117, + "duration": 0, "root": false, "rootEmpty": false, "_timeout": 900000 @@ -5965,49 +6387,53 @@ "_timeout": 900000 }, { - "uuid": "300c3efd-6920-41b5-bf98-9d2c19f43b69", - "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", + "uuid": "08a25127-e625-4390-a65c-51fc1fbfcd25", + "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": [], "suites": [ { - "uuid": "e608aa8e-0733-43ac-9f24-3a98a6cabb91", + "uuid": "6d9c7d5d-23b4-4a35-a06c-47a163fa147d", "title": "tests for get", - "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", + "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 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 \"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": 69, - "state": "passed", - "speed": "fast", - "pass": true, - "fail": false, + "duration": 0, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, "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();", - "err": {}, - "uuid": "196822e3-aa85-4cf7-bf51-83f9260950ef", - "parentUUID": "e608aa8e-0733-43ac-9f24-3a98a6cabb91", + "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();", + "err": { + "message": "TypeError: Cannot read properties of undefined (reading 'statusCode')", + "estack": "TypeError: Cannot read properties of undefined (reading 'statusCode')\n at Assertion. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/lib/assertions/statuscode.js:15:45)\n at ctx. (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai/lib/chai/utils/addMethod.js:41:25)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/chakram/node_modules/chai-as-promised/lib/chai-as-promised.js:308:26\n at _fulfilled (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:854:54)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:883:30\n at Promise.promise.promiseDispatch (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:816:13)\n at /Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:624:44\n at runSingle (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:137:13)\n at flush (/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/node_modules/q/q.js:125:13)\n at process.processTicksAndRejections (node:internal/process/task_queues:85:11)", + "diff": null + }, + "uuid": "206fea48-76f2-4ecd-86d8-49825b15c58a", + "parentUUID": "6d9c7d5d-23b4-4a35-a06c-47a163fa147d", "isHook": false, "skipped": false } ], "suites": [], - "passes": [ - "196822e3-aa85-4cf7-bf51-83f9260950ef" + "passes": [], + "failures": [ + "206fea48-76f2-4ecd-86d8-49825b15c58a" ], - "failures": [], "pending": [], "skipped": [], - "duration": 69, + "duration": 0, "root": false, "rootEmpty": false, "_timeout": 900000 @@ -6023,178 +6449,343 @@ "_timeout": 900000 }, { - "uuid": "3355fe9b-8ec3-4c17-bca1-903b851b027b", - "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", + "uuid": "26e20343-4c54-4d2a-88f6-27f39b6a824b", + "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": [ + { + "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": 1, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, + "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": { + "message": "AggregateError [ECONNREFUSED]: ", + "estack": "AggregateError [ECONNREFUSED]: \n at internalConnectMultiple (node:net:1139:18)\n at afterConnectMultiple (node:net:1712:7)", + "diff": null + }, + "uuid": "33133530-4d62-43b7-a5fa-71aefc1dfb20", + "parentUUID": "26e20343-4c54-4d2a-88f6-27f39b6a824b", + "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": 0, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, + "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": { + "message": "AggregateError [ECONNREFUSED]: ", + "estack": "AggregateError [ECONNREFUSED]: \n at internalConnectMultiple (node:net:1139:18)\n at afterConnectMultiple (node:net:1712:7)", + "diff": null + }, + "uuid": "fe8edae3-5a84-4502-b4a8-0fdfebc70901", + "parentUUID": "26e20343-4c54-4d2a-88f6-27f39b6a824b", + "isHook": false, + "skipped": false + }, + { + "title": "Contact queries should be case insensitive:", + "fullTitle": "Get contact data: Contact queries should be case insensitive:", + "timedOut": false, + "duration": 0, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, + "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": { + "message": "AggregateError [ECONNREFUSED]: ", + "estack": "AggregateError [ECONNREFUSED]: \n at internalConnectMultiple (node:net:1139:18)\n at afterConnectMultiple (node:net:1712:7)", + "diff": null + }, + "uuid": "416d94b0-782c-4cb5-879a-694d37391f3a", + "parentUUID": "26e20343-4c54-4d2a-88f6-27f39b6a824b", + "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": 0, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, + "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": { + "message": "AggregateError [ECONNREFUSED]: ", + "estack": "AggregateError [ECONNREFUSED]: \n at internalConnectMultiple (node:net:1139:18)\n at afterConnectMultiple (node:net:1712:7)", + "diff": null + }, + "uuid": "2b0e1e2b-e04a-449d-b5c1-f63cf048d4f5", + "parentUUID": "26e20343-4c54-4d2a-88f6-27f39b6a824b", + "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": 0, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, + "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": { + "message": "AggregateError [ECONNREFUSED]: ", + "estack": "AggregateError [ECONNREFUSED]: \n at internalConnectMultiple (node:net:1139:18)\n at afterConnectMultiple (node:net:1712:7)", + "diff": null + }, + "uuid": "a59f112e-c7c2-4b97-90a1-0b7f9891e568", + "parentUUID": "26e20343-4c54-4d2a-88f6-27f39b6a824b", + "isHook": false, + "skipped": false + }, { - "uuid": "acc3e0a7-a314-48f1-b192-f2bce7772cc0", - "title": "tests for get", - "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 \"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": 1563, - "state": "passed", - "speed": "slow", - "pass": true, - "fail": false, - "pending": false, - "context": null, - "code": "var response = request('get', 'http://localhost:3001/v2.0/data/sites/500/datasets', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", - "err": {}, - "uuid": "82ae4cd2-b7a0-4357-b16a-ad4e7f4ce26e", - "parentUUID": "acc3e0a7-a314-48f1-b192-f2bce7772cc0", - "isHook": false, - "skipped": false - } - ], - "suites": [], - "passes": [ - "82ae4cd2-b7a0-4357-b16a-ad4e7f4ce26e" - ], - "failures": [], - "pending": [], - "skipped": [], - "duration": 1563, - "root": false, - "rootEmpty": false, - "_timeout": 900000 - } - ], - "passes": [], - "failures": [], - "pending": [], - "skipped": [], - "duration": 0, - "root": false, - "rootEmpty": false, - "_timeout": 900000 - }, - { - "uuid": "1d462c53-67dc-4b86-bfb8-145a81a2ae6d", - "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": [ + "title": "All contacts from datasets should be returned.", + "fullTitle": "Get contact data: All contacts from datasets should be returned.", + "timedOut": false, + "duration": 0, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, + "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": { + "message": "AggregateError [ECONNREFUSED]: ", + "estack": "AggregateError [ECONNREFUSED]: \n at internalConnectMultiple (node:net:1139:18)\n at afterConnectMultiple (node:net:1712:7)", + "diff": null + }, + "uuid": "8c77e93f-18f3-40e3-9a9b-0c9b8bf4319c", + "parentUUID": "26e20343-4c54-4d2a-88f6-27f39b6a824b", + "isHook": false, + "skipped": false + }, { - "uuid": "17c636ae-f677-45c1-8c6f-bbd4b0643965", - "title": "tests for get", - "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 \"occurrence\"", - "fullTitle": "tests for /v2.0/data/occurrences/{occurrenceid} tests for get should respond 200 for \"occurrence\"", - "timedOut": false, - "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/occurrences/500', { \n 'qs': {\"limit\": 10,\"offset\": 0},\n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", - "err": {}, - "uuid": "46835e7d-508d-4b39-9ad8-c9df1868ae16", - "parentUUID": "17c636ae-f677-45c1-8c6f-bbd4b0643965", - "isHook": false, - "skipped": false - } - ], - "suites": [], - "passes": [ - "46835e7d-508d-4b39-9ad8-c9df1868ae16" - ], - "failures": [], - "pending": [], - "skipped": [], - "duration": 81, - "root": false, - "rootEmpty": false, - "_timeout": 900000 + "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": 1, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, + "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": { + "message": "AggregateError [ECONNREFUSED]: ", + "estack": "AggregateError [ECONNREFUSED]: \n at internalConnectMultiple (node:net:1139:18)\n at afterConnectMultiple (node:net:1712:7)", + "diff": null + }, + "uuid": "276b9317-6a31-442e-98d3-d7325590d8b1", + "parentUUID": "26e20343-4c54-4d2a-88f6-27f39b6a824b", + "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": 0, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, + "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": { + "message": "AggregateError [ECONNREFUSED]: ", + "estack": "AggregateError [ECONNREFUSED]: \n at internalConnectMultiple (node:net:1139:18)\n at afterConnectMultiple (node:net:1712:7)", + "diff": null + }, + "uuid": "324e4110-9186-41f5-8fa5-6dd7159aee86", + "parentUUID": "26e20343-4c54-4d2a-88f6-27f39b6a824b", + "isHook": false, + "skipped": false } ], + "suites": [], "passes": [], - "failures": [], + "failures": [ + "33133530-4d62-43b7-a5fa-71aefc1dfb20", + "fe8edae3-5a84-4502-b4a8-0fdfebc70901", + "416d94b0-782c-4cb5-879a-694d37391f3a", + "2b0e1e2b-e04a-449d-b5c1-f63cf048d4f5", + "a59f112e-c7c2-4b97-90a1-0b7f9891e568", + "8c77e93f-18f3-40e3-9a9b-0c9b8bf4319c", + "276b9317-6a31-442e-98d3-d7325590d8b1", + "324e4110-9186-41f5-8fa5-6dd7159aee86" + ], "pending": [], "skipped": [], - "duration": 0, + "duration": 2, "root": false, "rootEmpty": false, - "_timeout": 900000 + "_timeout": 5000 }, { - "uuid": "c5654fdb-5d38-4a54-bd8b-e432251becc6", - "title": "tests for /v2.0/data/datasets/{datasetid}/assays", - "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-datasets-{datasetid}-assays-test.js", - "file": "/test/v2.0-data-datasets-{datasetid}-assays-test.js", + "uuid": "7ae8febd-9fc6-4101-8471-e2c4e0acc58e", + "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": [], - "suites": [ + "tests": [ { - "uuid": "2272f730-4e77-417f-906c-b5e8b5cf2933", - "title": "tests for get", - "fullFile": "/Users/sedv8808/HT-Data/UWisc/01_API/api_nodetest/test/v2.0-data-datasets-{datasetid}-assays-test.js", - "file": "/test/v2.0-data-datasets-{datasetid}-assays-test.js", - "beforeHooks": [], - "afterHooks": [], - "tests": [ - { - "title": "should respond 200 for \"Assays\"", - "fullTitle": "tests for /v2.0/data/datasets/{datasetid}/assays tests for get should respond 200 for \"Assays\"", - "timedOut": false, - "duration": 79, - "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/assays', { \n 'time': true\n});\nexpect(response).to.have.status(200);\nreturn chakram.wait();", - "err": {}, - "uuid": "5c8d3d61-6435-4747-b571-cc8053555741", - "parentUUID": "2272f730-4e77-417f-906c-b5e8b5cf2933", - "isHook": false, - "skipped": false - } - ], - "suites": [], - "passes": [ - "5c8d3d61-6435-4747-b571-cc8053555741" - ], - "failures": [], - "pending": [], - "skipped": [], - "duration": 79, - "root": false, - "rootEmpty": false, - "_timeout": 900000 + "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": 0, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, + "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": { + "message": "AggregateError [ECONNREFUSED]: ", + "estack": "AggregateError [ECONNREFUSED]: \n at internalConnectMultiple (node:net:1139:18)\n at afterConnectMultiple (node:net:1712:7)", + "diff": null + }, + "uuid": "03eff3e1-bc64-4d42-af3c-8b3d909f23e9", + "parentUUID": "7ae8febd-9fc6-4101-8471-e2c4e0acc58e", + "isHook": false, + "skipped": false + }, + { + "title": "Get site by altitude:", + "fullTitle": "Get site data any number of ways: Get site by altitude:", + "timedOut": false, + "duration": 1, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, + "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": { + "message": "AggregateError [ECONNREFUSED]: ", + "estack": "AggregateError [ECONNREFUSED]: \n at internalConnectMultiple (node:net:1139:18)\n at afterConnectMultiple (node:net:1712:7)", + "diff": null + }, + "uuid": "2ee5acee-cc53-4d66-8285-d5a693fdd711", + "parentUUID": "7ae8febd-9fc6-4101-8471-e2c4e0acc58e", + "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": 0, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, + "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": { + "message": "AggregateError [ECONNREFUSED]: ", + "estack": "AggregateError [ECONNREFUSED]: \n at internalConnectMultiple (node:net:1139:18)\n at afterConnectMultiple (node:net:1712:7)", + "diff": null + }, + "uuid": "7516eace-275a-46dc-94b6-97589175a3da", + "parentUUID": "7ae8febd-9fc6-4101-8471-e2c4e0acc58e", + "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": 1, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, + "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": { + "message": "AggregateError [ECONNREFUSED]: ", + "estack": "AggregateError [ECONNREFUSED]: \n at internalConnectMultiple (node:net:1139:18)\n at afterConnectMultiple (node:net:1712:7)", + "diff": null + }, + "uuid": "7781d720-f292-4cbe-980a-45817e86cf2d", + "parentUUID": "7ae8febd-9fc6-4101-8471-e2c4e0acc58e", + "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": 0, + "state": "failed", + "speed": null, + "pass": false, + "fail": true, + "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": { + "message": "AggregateError [ECONNREFUSED]: ", + "estack": "AggregateError [ECONNREFUSED]: \n at internalConnectMultiple (node:net:1139:18)\n at afterConnectMultiple (node:net:1712:7)", + "diff": null + }, + "uuid": "9c1b1631-a54b-459a-b7d8-8269488416d2", + "parentUUID": "7ae8febd-9fc6-4101-8471-e2c4e0acc58e", + "isHook": false, + "skipped": false } ], + "suites": [], "passes": [], - "failures": [], + "failures": [ + "03eff3e1-bc64-4d42-af3c-8b3d909f23e9", + "2ee5acee-cc53-4d66-8285-d5a693fdd711", + "7516eace-275a-46dc-94b6-97589175a3da", + "7781d720-f292-4cbe-980a-45817e86cf2d", + "9c1b1631-a54b-459a-b7d8-8269488416d2" + ], "pending": [], "skipped": [], - "duration": 0, + "duration": 2, "root": false, "rootEmpty": false, - "_timeout": 900000 + "_timeout": 5000 } ], "passes": [], diff --git a/test/assays.js b/test/assays.js index 13b8d1ba..53b0393b 100644 --- a/test/assays.js +++ b/test/assays.js @@ -28,7 +28,7 @@ describe('Get aeDNA assays by datasetid:', function() { this.timeout(5000); it('every assay carries the FAIRe project terms:', function(done) { - api.get('v2.0/data/datasets/74666/assays') + api.get('v2.0/data/datasets/500/assays') .set('Accept', 'application/json') .expect(200) .expect(function(res) { diff --git a/test/v1.5-data-contacts-{contactid}-test.js b/test/v1.5-data-contacts-{contactid}-test.js index 247b4a9b..5232f623 100644 --- a/test/v1.5-data-contacts-{contactid}-test.js +++ b/test/v1.5-data-contacts-{contactid}-test.js @@ -7,7 +7,7 @@ var expect = chakram.expect; describe('tests for /v1.5/data/contacts/{contactid}', function() { describe('tests for get', function() { it('should respond 200 for "Contact"', function() { - var response = request('get', 'http://localhost:3001/v1.5/data/contacts/-90664163', { + var response = request('get', 'http://localhost:3001/v1.5/data/contacts/-71846374', { 'time': true }); diff --git a/test/v1.5-data-geopoliticalunits-test.js b/test/v1.5-data-geopoliticalunits-test.js index 96689a0e..06a471c5 100644 --- a/test/v1.5-data-geopoliticalunits-test.js +++ b/test/v1.5-data-geopoliticalunits-test.js @@ -8,7 +8,7 @@ describe('tests for /v1.5/data/geopoliticalunits', function() { describe('tests for get', function() { it('should respond 200 for "An array of geopolitical units."', function() { var response = request('get', 'http://localhost:3001/v1.5/data/geopoliticalunits', { - 'qs': {"gpid":5392,"gpname":"Canada","rank":3,"lower":false}, + 'qs': {"gpid":5392,"gpname":"Canada","rank":4,"lower":true}, 'time': true }); diff --git a/test/v1.5-data-geopoliticalunits-{gpid}-test.js b/test/v1.5-data-geopoliticalunits-{gpid}-test.js index bf077dc8..f33b511f 100644 --- a/test/v1.5-data-geopoliticalunits-{gpid}-test.js +++ b/test/v1.5-data-geopoliticalunits-{gpid}-test.js @@ -7,7 +7,7 @@ var expect = chakram.expect; describe('tests for /v1.5/data/geopoliticalunits/{gpid}', function() { describe('tests for get', function() { it('should respond 200 for "An array of geopolitical units."', function() { - var response = request('get', 'http://localhost:3001/v1.5/data/geopoliticalunits/4789', { + var response = request('get', 'http://localhost:3001/v1.5/data/geopoliticalunits/5027', { 'time': true }); diff --git a/test/v2.0-apps-constdb-datasetages-test.js b/test/v2.0-apps-constdb-datasetages-test.js index 728a91ba..20e27a7b 100644 --- a/test/v2.0-apps-constdb-datasetages-test.js +++ b/test/v2.0-apps-constdb-datasetages-test.js @@ -8,7 +8,7 @@ describe('tests for /v2.0/apps/constdb/datasetages', function() { describe('tests for get', function() { it('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. "', function() { var response = request('get', 'http://localhost:3001/v2.0/apps/constdb/datasetages', { - 'qs': {"dbid":20}, + 'qs': {"dbid":33}, 'time': true }); diff --git a/test/v2.0-apps-constdb-datasets-test.js b/test/v2.0-apps-constdb-datasets-test.js index b6cee0a4..70607675 100644 --- a/test/v2.0-apps-constdb-datasets-test.js +++ b/test/v2.0-apps-constdb-datasets-test.js @@ -8,7 +8,7 @@ describe('tests for /v2.0/apps/constdb/datasets', function() { describe('tests for get', function() { it('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. "', function() { var response = request('get', 'http://localhost:3001/v2.0/apps/constdb/datasets', { - 'qs': {"dbid":26}, + 'qs': {"dbid":29}, 'time': true }); diff --git a/test/v2.0-apps-constdb-datasetuploads-test.js b/test/v2.0-apps-constdb-datasetuploads-test.js index b0f812f0..6111928c 100644 --- a/test/v2.0-apps-constdb-datasetuploads-test.js +++ b/test/v2.0-apps-constdb-datasetuploads-test.js @@ -8,7 +8,7 @@ describe('tests for /v2.0/apps/constdb/datasetuploads', function() { describe('tests for get', function() { it('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. "', function() { var response = request('get', 'http://localhost:3001/v2.0/apps/constdb/datasetuploads', { - 'qs': {"dbid":25}, + 'qs': {"dbid":4}, 'time': true }); diff --git a/test/v2.0-apps-depenvt-test.js b/test/v2.0-apps-depenvt-test.js index 6224bead..0597c972 100644 --- a/test/v2.0-apps-depenvt-test.js +++ b/test/v2.0-apps-depenvt-test.js @@ -8,7 +8,7 @@ describe('tests for /v2.0/apps/depenvt', function() { describe('tests for get', function() { it('should respond 200 for "This returns the information about depositional environment for selected dataset/collection unit/site."', function() { var response = request('get', 'http://localhost:3001/v2.0/apps/depenvt', { - 'qs': {"siteid":1610,"datasetid":80118037,"collectionunitid":46745}, + 'qs': {"siteid":29633,"datasetid":16224114,"collectionunitid":7475}, 'time': true }); diff --git a/test/v2.0-apps-taphonomysystems-test.js b/test/v2.0-apps-taphonomysystems-test.js index becf6f14..ea8b92f2 100644 --- a/test/v2.0-apps-taphonomysystems-test.js +++ b/test/v2.0-apps-taphonomysystems-test.js @@ -8,7 +8,7 @@ describe('tests for /v2.0/apps/taphonomysystems', function() { describe('tests for get', function() { it('should respond 200 for "A table of Neotoma collection types."', function() { var response = request('get', 'http://localhost:3001/v2.0/apps/taphonomysystems', { - 'qs': {"datasettypeid":30}, + 'qs': {"datasettypeid":26}, 'time': true }); diff --git a/test/v2.0-data-chronologies-{chronid}-test.js b/test/v2.0-data-chronologies-{chronid}-test.js index 19e8cf57..ac8ac9dd 100644 --- a/test/v2.0-data-chronologies-{chronid}-test.js +++ b/test/v2.0-data-chronologies-{chronid}-test.js @@ -7,7 +7,7 @@ var expect = chakram.expect; describe('tests for /v2.0/data/chronologies/{chronid}', function() { describe('tests for get', function() { it('should respond 200 for "A Neotoma chronology object."', function() { - var response = request('get', 'http://localhost:3001/v2.0/data/chronologies/500', { + var response = request('get', 'http://localhost:3001/v2.0/data/chronologies/4270', { 'time': true }); diff --git a/test/v2.0-data-contacts-test.js b/test/v2.0-data-contacts-test.js index 32119697..17681ab3 100644 --- a/test/v2.0-data-contacts-test.js +++ b/test/v2.0-data-contacts-test.js @@ -8,7 +8,7 @@ describe('tests for /v2.0/data/contacts', function() { describe('tests for get', function() { it('should respond 200 for "contact"', function() { var response = request('get', 'http://localhost:3001/v2.0/data/contacts', { - 'qs': {"contactid":5583,"familyname":"Uum-WPAgUA","contactname":"m","contactstatus":"unknown","limit": 10,"offset": 0}, + 'qs': {"contactid":3930,"familyname":"MGqwj","contactname":"JoaJZgLpAM","contactstatus":"extant","limit": 10,"offset": 0}, 'time': true }); diff --git a/test/v2.0-data-contacts-{contactid}-sites-test.js b/test/v2.0-data-contacts-{contactid}-sites-test.js index 158e71ed..384f07f3 100644 --- a/test/v2.0-data-contacts-{contactid}-sites-test.js +++ b/test/v2.0-data-contacts-{contactid}-sites-test.js @@ -7,7 +7,7 @@ var expect = chakram.expect; describe('tests for /v2.0/data/contacts/{contactid}/sites', function() { describe('tests for get', function() { it('should respond 200 for "A Neotoma sites object."', function() { - var response = request('get', 'http://localhost:3001/v2.0/data/contacts/9929/sites', { + var response = request('get', 'http://localhost:3001/v2.0/data/contacts/8319/sites', { 'time': true }); diff --git a/test/v2.0-data-datasets-db-test.js b/test/v2.0-data-datasets-db-test.js index 37030550..e37e91f7 100644 --- a/test/v2.0-data-datasets-db-test.js +++ b/test/v2.0-data-datasets-db-test.js @@ -8,7 +8,7 @@ describe('tests for /v2.0/data/datasets/db', function() { describe('tests for get', function() { it('should respond 200 for "Datasets"', function() { var response = request('get', 'http://localhost:3001/v2.0/data/datasets/db', { - 'qs': {"limit": 10,"offset": 0,"database":"Neotoma Testate Amoebae Database"}, + 'qs': {"limit": 10,"offset": 0,"database":"North American Pollen Database"}, 'time': true }); diff --git a/test/v2.0-data-datasets-test.js b/test/v2.0-data-datasets-test.js index 57902bc0..fcfcf882 100644 --- a/test/v2.0-data-datasets-test.js +++ b/test/v2.0-data-datasets-test.js @@ -8,7 +8,7 @@ describe('tests for /v2.0/data/datasets', function() { describe('tests for get', function() { it('should respond 200 for "An array of datasets."', function() { var response = request('get', 'http://localhost:3001/v2.0/data/datasets', { - 'qs': {"sitename":"in nisi amet deserunt ea","database":"Chinese Pollen Database","datasettype":"chironomid","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":26747,"datasetid":69182564,"doi":"10A45156150/-","gpid":5392,"keyword":"bottom","contactid":6816,"taxa":"adipisicing laborum deserunt sunt","ageyoung": 1000,"ageold": 10000,"ageof":1987576,"limit": 10,"offset": 0}, + 'qs': {"sitename":"pariatur tempor","database":"Pollen Monitoring Programme","datasettype":"vertebrate fauna","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":37798,"datasetid":20069323,"doi":"10$930055/_.4HBW:Q(Y","gpid":5392,"keyword":"bottom","contactid":4719,"taxa":"sit in et culpa deserunt","ageyoung": 1000,"ageold": 10000,"ageof":8142805,"limit": 10,"offset": 0}, 'time': true }); diff --git a/test/v2.0-data-datasets_elc-test.js b/test/v2.0-data-datasets_elc-test.js index ee4155ff..aaad71c0 100644 --- a/test/v2.0-data-datasets_elc-test.js +++ b/test/v2.0-data-datasets_elc-test.js @@ -8,7 +8,7 @@ describe('tests for /v2.0/data/datasets_elc', function() { describe('tests for get', function() { it('should respond 200 for "A Neotoma datasets object suitable for the EarthLife Consortium API."', function() { var response = request('get', 'http://localhost:3001/v2.0/data/datasets_elc', { - 'qs': {"siteid":24832,"contactid":6896,"datasettype":"geochemistry","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":6017958}, + 'qs': {"siteid":5842,"contactid":15659,"datasettype":"diatom surface sample","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":8754269}, 'time': true }); diff --git a/test/v2.0-data-dbtables-test.js b/test/v2.0-data-dbtables-test.js index 6993f456..e3eee3aa 100644 --- a/test/v2.0-data-dbtables-test.js +++ b/test/v2.0-data-dbtables-test.js @@ -8,7 +8,7 @@ describe('tests for /v2.0/data/dbtables', function() { describe('tests for get', function() { it('should respond 200 for "Returned table."', function() { var response = request('get', 'http://localhost:3001/v2.0/data/dbtables', { - 'qs': {"table":"fugiat","count":false,"limit": 10,"offset": 0}, + 'qs': {"table":"minim adipisicing","count":true,"limit": 10,"offset": 0}, 'time': true }); diff --git a/test/v2.0-data-dbtables-{table}-test.js b/test/v2.0-data-dbtables-{table}-test.js index df532120..4ecf00f3 100644 --- a/test/v2.0-data-dbtables-{table}-test.js +++ b/test/v2.0-data-dbtables-{table}-test.js @@ -7,8 +7,8 @@ var expect = chakram.expect; describe('tests for /v2.0/data/dbtables/{table}', function() { describe('tests for get', function() { it('should respond 200 for "Returned table."', function() { - var response = request('get', 'http://localhost:3001/v2.0/data/dbtables/deseruntaliquapariatur', { - 'qs': {"count":false,"limit": 10,"offset": 0}, + var response = request('get', 'http://localhost:3001/v2.0/data/dbtables/fugiatincididuntexid', { + 'qs': {"count":true,"limit": 10,"offset": 0}, 'time': true }); diff --git a/test/v2.0-data-geopoliticalunits-test.js b/test/v2.0-data-geopoliticalunits-test.js index a2901a69..27453522 100644 --- a/test/v2.0-data-geopoliticalunits-test.js +++ b/test/v2.0-data-geopoliticalunits-test.js @@ -8,7 +8,7 @@ describe('tests for /v2.0/data/geopoliticalunits', function() { describe('tests for get', function() { it('should respond 200 for "An array of geopolitical units."', function() { var response = request('get', 'http://localhost:3001/v2.0/data/geopoliticalunits', { - 'qs': {"gpid":5392,"gpname":"Canada","rank":4,"lower":true}, + 'qs': {"gpid":5392,"gpname":"Canada","rank":3,"lower":false}, 'time': true }); diff --git a/test/v2.0-data-geopoliticalunits-{gpid}-datasets-test.js b/test/v2.0-data-geopoliticalunits-{gpid}-datasets-test.js index 2cdb76b2..2ba8193d 100644 --- a/test/v2.0-data-geopoliticalunits-{gpid}-datasets-test.js +++ b/test/v2.0-data-geopoliticalunits-{gpid}-datasets-test.js @@ -7,7 +7,7 @@ var expect = chakram.expect; describe('tests for /v2.0/data/geopoliticalunits/{gpid}/datasets', function() { describe('tests for get', function() { it('should respond 200 for "An array of datasets."', function() { - var response = request('get', 'http://localhost:3001/v2.0/data/geopoliticalunits/500/datasets', { + var response = request('get', 'http://localhost:3001/v2.0/data/geopoliticalunits/7445/datasets', { 'qs': {"limit": 10,"offset": 0}, 'time': true }); diff --git a/test/v2.0-data-geopoliticalunits-{gpid}-sites-test.js b/test/v2.0-data-geopoliticalunits-{gpid}-sites-test.js index b8e17269..b6daea62 100644 --- a/test/v2.0-data-geopoliticalunits-{gpid}-sites-test.js +++ b/test/v2.0-data-geopoliticalunits-{gpid}-sites-test.js @@ -7,7 +7,7 @@ var expect = chakram.expect; describe('tests for /v2.0/data/geopoliticalunits/{gpid}/sites', function() { describe('tests for get', function() { it('should respond 200 for "An array of sites."', function() { - var response = request('get', 'http://localhost:3001/v2.0/data/geopoliticalunits/1467/sites', { + var response = request('get', 'http://localhost:3001/v2.0/data/geopoliticalunits/2029/sites', { 'qs': {"limit": 10,"offset": 0}, 'time': true }); diff --git a/test/v2.0-data-geopoliticalunits-{gpid}-test.js b/test/v2.0-data-geopoliticalunits-{gpid}-test.js index c74eaf77..d642bbe5 100644 --- a/test/v2.0-data-geopoliticalunits-{gpid}-test.js +++ b/test/v2.0-data-geopoliticalunits-{gpid}-test.js @@ -7,7 +7,7 @@ var expect = chakram.expect; describe('tests for /v2.0/data/geopoliticalunits/{gpid}', function() { describe('tests for get', function() { it('should respond 200 for "An array of geopolitical units."', function() { - var response = request('get', 'http://localhost:3001/v2.0/data/geopoliticalunits/5778', { + var response = request('get', 'http://localhost:3001/v2.0/data/geopoliticalunits/1434', { 'time': true }); diff --git a/test/v2.0-data-occurrences-test.js b/test/v2.0-data-occurrences-test.js index 2efbc808..17b4122e 100644 --- a/test/v2.0-data-occurrences-test.js +++ b/test/v2.0-data-occurrences-test.js @@ -8,7 +8,7 @@ describe('tests for /v2.0/data/occurrences', function() { describe('tests for get', function() { it('should respond 200 for "occurrence"', function() { var response = request('get', 'http://localhost:3001/v2.0/data/occurrences', { - 'qs': {"taxonname":"magna irure anim consectetur ullamco","taxonid":21012,"siteid":49855,"sitename":"mollit","datasettype":"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]]]}","ageof":2647566,"ageyoung": 1000,"ageold": 10000,"limit": 10,"offset": 0}, + 'qs': {"taxonname":"pariatur eu cillum laboris","taxonid":27771,"siteid":30886,"sitename":"eiusmod","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]]]}","ageof":1083090,"ageyoung": 1000,"ageold": 10000,"limit": 10,"offset": 0}, 'time': true }); diff --git a/test/v2.0-data-pollen-test.js b/test/v2.0-data-pollen-test.js index b18144c1..52cfe6bc 100644 --- a/test/v2.0-data-pollen-test.js +++ b/test/v2.0-data-pollen-test.js @@ -8,7 +8,7 @@ describe('tests for /v2.0/data/pollen', function() { describe('tests for get', function() { it('should respond 200 for "A record of all pollen samples in time/space for a particular taxon."', function() { var response = request('get', 'http://localhost:3001/v2.0/data/pollen', { - 'qs': {"taxonname":"et ad non irure quis","taxonid":45362,"siteid":39084,"sitename":"eiusmod esse ipsum","datasettype":"geochronologic","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":5395162,"ageyoung": 1000,"ageold": 10000,"limit": 10,"offset": 0}, + 'qs': {"taxonname":"esse incididunt dolor eu","taxonid":39814,"siteid":23882,"sitename":"in officia nulla","datasettype":"geochronologic","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":23767246,"ageyoung": 1000,"ageold": 10000,"limit": 10,"offset": 0}, 'time': true }); diff --git a/test/v2.0-data-publications-test.js b/test/v2.0-data-publications-test.js index 7763d668..05fab038 100644 --- a/test/v2.0-data-publications-test.js +++ b/test/v2.0-data-publications-test.js @@ -8,7 +8,7 @@ describe('tests for /v2.0/data/publications', function() { describe('tests for get', function() { it('should respond 200 for "A list of publications."', function() { var response = request('get', 'http://localhost:3001/v2.0/data/publications', { - 'qs': {"publicationid":3227,"datasetid":62171686,"siteid":15473,"familyname":"Tm-","pubtype":"Other Edited","year":1958,"search":"dolor laboris ullamco ut","limit": 10,"offset": 0}, + 'qs': {"publicationid":9035,"datasetid":12074338,"siteid":31854,"familyname":"%qP","pubtype":"Master's Thesis","year":1622,"search":"ipsum aliqua tempor commodo","limit": 10,"offset": 0}, 'time': true }); diff --git a/test/v2.0-data-publications-{publicationid}-test.js b/test/v2.0-data-publications-{publicationid}-test.js index 71265131..f79f9672 100644 --- a/test/v2.0-data-publications-{publicationid}-test.js +++ b/test/v2.0-data-publications-{publicationid}-test.js @@ -7,7 +7,7 @@ var expect = chakram.expect; describe('tests for /v2.0/data/publications/{publicationid}', function() { describe('tests for get', function() { it('should respond 200 for "A list of publications."', function() { - var response = request('get', 'http://localhost:3001/v2.0/data/publications/500', { + var response = request('get', 'http://localhost:3001/v2.0/data/publications/5598', { 'time': true }); diff --git a/test/v2.0-data-sites-test.js b/test/v2.0-data-sites-test.js index f49834cc..e903de5c 100644 --- a/test/v2.0-data-sites-test.js +++ b/test/v2.0-data-sites-test.js @@ -8,7 +8,7 @@ describe('tests for /v2.0/data/sites', function() { describe('tests for get', function() { it('should respond 200 for "An array of sites."', function() { var response = request('get', 'http://localhost:3001/v2.0/data/sites', { - 'qs': {"sitename":"dolore","database":"Alpine Pollen Database","datasettype":"vertebrate fauna","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":34594,"datasetid":20523832,"doi":"10u7613/HNFJAT","gpid":5392,"keyword":"beyond radiocarbon","contactid":17893,"taxa":"laborum Excepteur ut enim","ageyoung": 1000,"ageold": 10000,"ageof":608776,"limit": 10,"offset": 0}, + 'qs': {"sitename":"eiusmod magna ea non","database":"Canadian Museum of Nature-Delorme Ostracoda-Surface Samples","datasettype":"physical sedimentology","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":12024,"datasetid":10862338,"doi":"108997793/60W554Q","gpid":5392,"keyword":"pre-European","contactid":8422,"taxa":"cillum aliqua ex","ageyoung": 1000,"ageold": 10000,"ageof":15621576,"limit": 10,"offset": 0}, 'time': true }); diff --git a/test/v2.0-data-sites-{siteid}-datasets_elc-test.js b/test/v2.0-data-sites-{siteid}-datasets_elc-test.js index a7ad1521..7150e27f 100644 --- a/test/v2.0-data-sites-{siteid}-datasets_elc-test.js +++ b/test/v2.0-data-sites-{siteid}-datasets_elc-test.js @@ -7,7 +7,7 @@ var expect = chakram.expect; describe('tests for /v2.0/data/sites/{siteid}/datasets_elc', function() { describe('tests for get', function() { it('should respond 200 for "An array of datasets."', function() { - var response = request('get', 'http://localhost:3001/v2.0/data/sites/8024/datasets_elc', { + var response = request('get', 'http://localhost:3001/v2.0/data/sites/500/datasets_elc', { 'time': true }); diff --git a/test/v2.0-data-spatial-faunal-test.js b/test/v2.0-data-spatial-faunal-test.js index d0d8cfff..7d65da9a 100644 --- a/test/v2.0-data-spatial-faunal-test.js +++ b/test/v2.0-data-spatial-faunal-test.js @@ -8,7 +8,7 @@ describe('tests for /v2.0/data/spatial/faunal', function() { describe('tests for get', function() { it('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) "', function() { var response = request('get', 'http://localhost:3001/v2.0/data/spatial/faunal', { - 'qs': {"sciname":"irure","proj": 4326,"prec": 1000}, + 'qs': {"sciname":"minim Excepteur","proj": 4326,"prec": 1000}, 'time': true }); diff --git a/test/v2.0-data-spatial-icesheet-test.js b/test/v2.0-data-spatial-icesheet-test.js index 394d00b4..4dd742d9 100644 --- a/test/v2.0-data-spatial-icesheet-test.js +++ b/test/v2.0-data-spatial-icesheet-test.js @@ -8,7 +8,7 @@ describe('tests for /v2.0/data/spatial/icesheet', function() { describe('tests for get', function() { it('should respond 200 for "An object containing glacial extents for the selected time period (in **calibrated radiocarbon years**). "', function() { var response = request('get', 'http://localhost:3001/v2.0/data/spatial/icesheet', { - 'qs': {"age":16220,"proj": 4326,"prec": 1000}, + 'qs': {"age":9672,"proj": 4326,"prec": 1000}, 'time': true }); diff --git a/test/v2.0-data-spatial-lakes-test.js b/test/v2.0-data-spatial-lakes-test.js index ad5b3241..a1bfc2a9 100644 --- a/test/v2.0-data-spatial-lakes-test.js +++ b/test/v2.0-data-spatial-lakes-test.js @@ -8,7 +8,7 @@ describe('tests for /v2.0/data/spatial/lakes', function() { describe('tests for get', function() { it('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) "', function() { var response = request('get', 'http://localhost:3001/v2.0/data/spatial/lakes', { - 'qs': {"siteid":48315,"buffer":8389,"prec": 1000,"proj": 4326}, + 'qs': {"siteid":26056,"buffer":8474,"prec": 1000,"proj": 4326}, 'time': true }); diff --git a/test/v2.0-data-taxa-test.js b/test/v2.0-data-taxa-test.js index c8892aed..019251ee 100644 --- a/test/v2.0-data-taxa-test.js +++ b/test/v2.0-data-taxa-test.js @@ -8,7 +8,7 @@ describe('tests for /v2.0/data/taxa', function() { describe('tests for get', function() { it('should respond 200 for "A taxon or array of taxa."', function() { var response = request('get', 'http://localhost:3001/v2.0/data/taxa', { - 'qs': {"taxonname":"ullamco amet","taxagroup":"veniam adipisicing labore dolor nisi","ecolgroup":"esse voluptate cupidatat dolor","status":0,"limit": 10,"offset": 0}, + 'qs': {"taxonname":"ut culpa eiusmod laborum","taxagroup":"ut et aliqua","ecolgroup":"velit consectetur ea in minim","status":true,"limit": 10,"offset": 0}, 'time': true }); diff --git a/v2.0/handlers/apps_handlers.js b/v2.0/handlers/apps_handlers.js index 33dbc771..86fe69f4 100755 --- a/v2.0/handlers/apps_handlers.js +++ b/v2.0/handlers/apps_handlers.js @@ -89,7 +89,8 @@ function collectiontypes(req, res, next) { res.status(500) .json({ status: 'failure', - data: err.message, + data: null, + message: err.message, }); }); } @@ -115,7 +116,8 @@ function datasettypes(req, res, next) { res.status(500) .json({ status: 'failure', - data: err.message, + data: null, + message: err.message, }); }); } @@ -141,7 +143,8 @@ function taxaindatasets(req, res, next) { res.status(500) .json({ status: 'failure', - data: err.message, + data: null, + message: err.message, }); }); } @@ -167,7 +170,8 @@ function taxagrouptypes(req, res, next) { res.status(500) .json({ status: 'failure', - data: err.message, + data: null, + message: err.message, }); }); } @@ -193,7 +197,8 @@ function keywords(req, res, next) { res.status(500) .json({ status: 'failure', - data: err.message, + data: null, + message: err.message, }); }); } @@ -219,7 +224,8 @@ function authorpis(req, res, next) { res.status(500) .json({ status: 'failure', - data: err.message, + data: null, + message: err.message, }); }); } @@ -258,7 +264,8 @@ function taphonomysystems(req, res, next) { res.status(500) .json({ status: 'failure', - data: err.message, + data: null, + message: err.message, }); }); } @@ -286,7 +293,8 @@ function depositionalenvironments(req, res, next) { res.status(500) .json({ status: 'failure', - data: err.message, + data: null, + message: err.message, }); }); } diff --git a/v2.0/handlers/dbtables_handlers.js b/v2.0/handlers/dbtables_handlers.js index d18dee41..0064fb5a 100755 --- a/v2.0/handlers/dbtables_handlers.js +++ b/v2.0/handlers/dbtables_handlers.js @@ -61,7 +61,8 @@ function getNDBtable (req, res, next) { res.status(500) .json({ status: 'failure', - data: err.message + data: null, + message: err.message }); }); } @@ -81,7 +82,8 @@ function tablenames (req, res, next) { res.status(500) .json({ status: 'failure', - data: err.message + data: null, + message: err.message }); }); } diff --git a/v2.0/helpers/chronology/chronology.js b/v2.0/helpers/chronology/chronology.js index 018966fa..37e4224a 100755 --- a/v2.0/helpers/chronology/chronology.js +++ b/v2.0/helpers/chronology/chronology.js @@ -39,7 +39,8 @@ function chronologybyid (req, res, next) { res.status(500) .json({ status: 'failure', - data: err.message + data: null, + message: err.message }); }); } @@ -76,7 +77,8 @@ function chronologybydsid (req, res, next) { res.status(500) .json({ status: 'failure', - data: err.message + data: null, + message: err.message }); }); } @@ -111,7 +113,8 @@ function chronologybystid (req, res, next) { res.status(500) .json({ status: 'failure', - data: err.message + data: null, + message: err.message }); }); } diff --git a/v2.0/helpers/contacts/contacts.js b/v2.0/helpers/contacts/contacts.js index 8ff64ae3..d082285e 100755 --- a/v2.0/helpers/contacts/contacts.js +++ b/v2.0/helpers/contacts/contacts.js @@ -59,7 +59,8 @@ function contacts(req, res, next) { res.status(500) .json({ status: 'failure', - data: err.message, + data: null, + message: err.message, }); }); }; @@ -108,7 +109,8 @@ function contactsbyid(req, res, next) { res.status(500) .json({ status: 'failure', - data: err.message, + data: null, + message: err.message, }); }); } @@ -157,7 +159,8 @@ function contactsbydataid(req, res, next) { res.status(500) .json({ status: 'failure', - data: err.message, + data: null, + message: err.message, }); }); } @@ -205,7 +208,8 @@ function contactclassbydsid(req, res, next) { res.status(500) .json({ status: 'failure', - data: err.message, + data: null, + message: err.message, }); }); } @@ -252,7 +256,8 @@ function contactsbysiteid(req, res, next) { res.status(500) .json({ status: 'failure', - data: err.message, + data: null, + message: err.message, }); }); } @@ -286,7 +291,8 @@ function publicationsbycontactid(req, res, next) { .catch(function(err) { res.status(500).json({ status: 'failure', - data: err.message, + data: null, + message: err.message, }); }); } diff --git a/v2.0/helpers/dataset_elc/datasets.js b/v2.0/helpers/dataset_elc/datasets.js index ba84b046..23018e0e 100644 --- a/v2.0/helpers/dataset_elc/datasets.js +++ b/v2.0/helpers/dataset_elc/datasets.js @@ -158,7 +158,8 @@ function datasetquery (req, res, next) { res.status(500) .json({ status: 'failure', - data: err.message + data: null, + message: err.message }); }); } diff --git a/v2.0/helpers/datasets/datasets.js b/v2.0/helpers/datasets/datasets.js index 0c322450..449277c1 100755 --- a/v2.0/helpers/datasets/datasets.js +++ b/v2.0/helpers/datasets/datasets.js @@ -66,8 +66,8 @@ function datasetsbygeopol(req, res, next) { res.status(500) .json({ status: 'failure', - data: err.message, - message: 'Error in passing query.', + data: null, + message: err.message, }); }); } @@ -116,8 +116,8 @@ function datasetbyid(req, res, next) { res.status(500) .json({ status: 'failure', - data: err.message, - message: 'Must pass either queries or a comma separated integer sequence.' + data: null, + message: err.message }); next(err) }); @@ -168,8 +168,8 @@ function datasetsbyaggid(req, res, next) { res.status(500) .json({ status: 'failure', - data: err.message, - message: 'Must pass either queries or a comma separated integer sequence.', + data: null, + message: err.message, }); next(err); }); @@ -218,8 +218,8 @@ function datasetbydb(req, res, next) { res.status(500) .json({ status: 'failure', - data: err.message, - message: 'Must pass either queries or a comma separated integer sequence.' + data: null, + message: err.message }); next(err) }); @@ -267,8 +267,8 @@ function datasetbysiteid(req, res, next) { res.status(500) .json({ status: 'failure', - data: err.message, - message: 'Must pass either queries or a comma separated integer sequence.' + data: null, + message: err.message }); next(err) }); @@ -322,8 +322,8 @@ function datasetbypi(req, res, next) { res.status(500) .json({ status: 'failure', - data: err.message, - message: 'Must pass either queries or a comma separated integer sequence.', + data: null, + message: err.message, }); next(err); }); diff --git a/v2.0/helpers/dbtables/dbtables.js b/v2.0/helpers/dbtables/dbtables.js index 1e6d3d9a..39bd0f71 100755 --- a/v2.0/helpers/dbtables/dbtables.js +++ b/v2.0/helpers/dbtables/dbtables.js @@ -70,8 +70,8 @@ function dbtables(req, res, next) { res.status(500) .json({ status: 'failure', - data: err.message, - message: 'Ran into an error.', + data: null, + message: err.message, }); } }); diff --git a/v2.0/helpers/depenvt/depenvt.js b/v2.0/helpers/depenvt/depenvt.js index eafbb203..02a7f46d 100644 --- a/v2.0/helpers/depenvt/depenvt.js +++ b/v2.0/helpers/depenvt/depenvt.js @@ -42,7 +42,8 @@ function depenvbyid(req, res, next) { res.status(500) .json({ status: 'failure', - data: err.message, + data: null, + message: err.message, }); }); }; diff --git a/v2.0/helpers/download/download.js b/v2.0/helpers/download/download.js index de310413..089599d5 100644 --- a/v2.0/helpers/download/download.js +++ b/v2.0/helpers/download/download.js @@ -145,8 +145,8 @@ function downloadbyid (req, res, next) { res.status(500) .json({ status: 'failure', - data: err.message, - message: 'SQL Error.' + data: null, + message: err.message }); }); } diff --git a/v2.0/helpers/geopoliticalunits/geopoliticalunits.js b/v2.0/helpers/geopoliticalunits/geopoliticalunits.js index af8104b6..ba5989db 100755 --- a/v2.0/helpers/geopoliticalunits/geopoliticalunits.js +++ b/v2.0/helpers/geopoliticalunits/geopoliticalunits.js @@ -49,7 +49,8 @@ function geopoliticalbyid (req, res, next) { res.status(500) .json({ status: 'failure', - data: err.message + data: null, + message: err.message }); }); } @@ -112,7 +113,8 @@ function geopoliticalunits (req, res, next) { res.status(500) .json({ status: 'failure', - data: err.message + data: null, + message: err.message }); }); } @@ -155,7 +157,8 @@ function geopolbysite (req, res, next) { res.status(500) .json({ status: 'failure', - data: err.message + data: null, + message: err.message }); }); } else { diff --git a/v2.0/helpers/landing/dbsummary.sql b/v2.0/helpers/landing/dbsummary.sql index f330f464..b917f2de 100644 --- a/v2.0/helpers/landing/dbsummary.sql +++ b/v2.0/helpers/landing/dbsummary.sql @@ -7,18 +7,21 @@ WITH constdb AS ( 'url', cdb.url, 'contact',cnt.contactname, 'email', cnt.email) as database, - qt.siteid, - qt.datasetid, - qt.datasettype + cu.siteid, + ds.datasetid, + dst.datasettype from ndb.constituentdatabases AS cdb - left join ap.querytable as qt on cdb.databaseid = qt.databaseid + left join ndb.datasetdatabases as dsdb on cdb.databaseid = dsdb.databaseid + left join ndb.datasets as ds on ds.datasetid = dsdb.datasetid + left join ndb.collectionunits as cu on cu.collectionunitid = ds.collectionunitid + left join ndb.datasettypes as dst on dst.datasettypeid = ds.datasettypeid left join ndb.contacts as cnt on cdb.contactid = cnt.contactid WHERE (${dbid} IS NULL OR cdb.databaseid = ${dbid}) ), sites as ( select dst.databaseid, dst.database, - COUNT(dst.siteid) as sitecount + COUNT(DISTINCT dst.siteid)::int as sitecount from constdb as dst group by @@ -28,7 +31,9 @@ WITH constdb AS ( select st.database, st.sitecount, - jsonb_build_object('datasettype', cdb.datasettype, 'datasets', COUNT(*)) as datasettypes + CASE WHEN cdb.datasettype IS NULL THEN NULL + ELSE jsonb_build_object('datasettype', cdb.datasettype, 'datasets', COUNT(DISTINCT cdb.datasetid)::int) + END as datasettypes from sites as st inner join constdb as cdb on cdb.databaseid = st.databaseid group by cdb.datasettype, @@ -38,7 +43,7 @@ WITH constdb AS ( SELECT database, sitecount, - array_agg(datasettypes) AS datasettypes + array_agg(datasettypes) FILTER (WHERE datasettypes IS NOT NULL) AS datasettypes from grouped group by database, diff --git a/v2.0/helpers/landing/landing.js b/v2.0/helpers/landing/landing.js index b19cc968..f49bb974 100644 --- a/v2.0/helpers/landing/landing.js +++ b/v2.0/helpers/landing/landing.js @@ -193,7 +193,7 @@ function databasesummaries(req, res, next) { const paramgrab = getparam(req); if (!paramgrab.success) { - res.status(500) + return res.status(500) .json({ status: 'failure', data: null, diff --git a/v2.0/helpers/occurrence/occurrence.js b/v2.0/helpers/occurrence/occurrence.js index fb8762e6..45dbd94c 100755 --- a/v2.0/helpers/occurrence/occurrence.js +++ b/v2.0/helpers/occurrence/occurrence.js @@ -114,7 +114,8 @@ function occurrencequery(req, res, next) { res.status(500) .json({ status: 'failure', - data: err.message, + data: null, + message: err.message, params: outobj, }); }); @@ -132,7 +133,8 @@ function occurrencequery(req, res, next) { res.status(500) .json({ status: 'failure', - data: err.message, + data: null, + message: err.message, params: outobj, }); }); @@ -167,8 +169,8 @@ function occurrencebytaxon(req, res, next) { res.status(500) .json({ status: 'failure', - data: err.message, - message: 'Must pass either queries or a comma separated integer sequence.', + data: null, + message: err.message, }); }); }; diff --git a/v2.0/helpers/summary/summary.js b/v2.0/helpers/summary/summary.js index 1a9f0a37..b71939ba 100644 --- a/v2.0/helpers/summary/summary.js +++ b/v2.0/helpers/summary/summary.js @@ -39,8 +39,8 @@ function datasettypesbymonths(req, res, next) { res.status(500) .json({ status: 'failure', - data: err.message, - message: 'Must pass either queries or a comma separated integer sequence.', + data: null, + message: err.message, }); }); } @@ -82,8 +82,8 @@ function rawbymonth(req, res, next) { res.status(500) .json({ status: 'failure', - data: err.message, - message: 'Must pass either queries or a comma separated integer sequence.', + data: null, + message: err.message, }); }); } @@ -125,8 +125,8 @@ function datasetdbsbymonths(req, res, next) { res.status(500) .json({ status: 'failure', - data: err.message, - message: 'Must pass either queries or a comma separated integer sequence.', + data: null, + message: err.message, }); }); } @@ -170,8 +170,8 @@ function sparklines(req, res, next) { res.status(500) .json({ status: 'failure', - data: err.message, - message: 'Must pass either queries or a comma separated integer sequence.', + data: null, + message: err.message, }); }); } diff --git a/v2.0/helpers/taxa/taxa.js b/v2.0/helpers/taxa/taxa.js index 6a1bfff4..23adcdc5 100755 --- a/v2.0/helpers/taxa/taxa.js +++ b/v2.0/helpers/taxa/taxa.js @@ -47,7 +47,8 @@ function taxonbydsid(req, res, next) { res.status(500) .json({ status: 'failure', - data: err.message, + data: null, + message: err.message, }); }); } @@ -118,24 +119,18 @@ function taxonquery(req, res, next) { } } - db.any(taxonsql, outobj) + // Returned so a failure here reaches the .catch below. A .catch + // placed before the success .then would send a 500 and then try to + // send a 200 on the same response, which throws ERR_HTTP_HEADERS_SENT + // as an unhandled rejection and kills the process. + return db.any(taxonsql, outobj) .then(function(data) { if (outobj.lower) { outobj.taxonid = data.map((x) => x.taxonid); - data = db.any(taxonsqlr, outobj) - .then(function(data) { - return data; - }); + return db.any(taxonsqlr, outobj); } return data; }) - .catch(function(err) { - res.status(500) - .json({ - status: 'failure', - data: err.message, - }); - }) .then(function(data) { res.status(200) .json({ @@ -146,6 +141,7 @@ function taxonquery(req, res, next) { }); }) .catch(function(err) { + if (res.headersSent) return; res.status(500) .json({ status: 'failure', @@ -200,8 +196,8 @@ function externaltaxonquery (req, res, next) { res.status(500) .json({ status: 'failure', - data: err.message, - message: 'Must pass either queries or a comma separated integer sequence.' + data: null, + message: err.message }); next(err) }); diff --git a/v2.0/helpers/validation/expireotherlogins.sql b/v2.0/helpers/validation/expireotherlogins.sql new file mode 100644 index 00000000..3bc4cf57 --- /dev/null +++ b/v2.0/helpers/validation/expireotherlogins.sql @@ -0,0 +1,9 @@ +-- Expire every live session for an ORCID iD except `keep`. Pass keep = NULL to +-- expire all of them (used just before minting a replacement). +-- Only expiresat is set. loggedoutat is left alone on purpose: it means "the user +-- clicked Logout", so a NULL there on an expired row marks one the API retired. +UPDATE ap.orcidlogins +SET expiresat = now() +WHERE orcidid = ${orcidid} + AND expiresat > now() + AND sessionuuid IS DISTINCT FROM ${keep}::uuid; diff --git a/v2.0/helpers/validation/findactivelogin.sql b/v2.0/helpers/validation/findactivelogin.sql new file mode 100644 index 00000000..a9b676e4 --- /dev/null +++ b/v2.0/helpers/validation/findactivelogin.sql @@ -0,0 +1,16 @@ +-- The live session for an ORCID iD, if there is one. "Live" is expiresat > now(): +-- logout sets expiresat = now() as well, so that one condition covers expired, +-- logged-out and rotated-out sessions. LIMIT 1 + ORDER BY keeps this from +-- throwing if an older bug (or a bad restore) left duplicate live rows behind: +-- the one that lasts longest wins. +-- `reusable` is computed here, in the database's clock, so there is no skew +-- between the API host and Postgres: sessions with under 24h left are not handed +-- back, otherwise the user would be logged out in the middle of their work. +SELECT sessionuuid, + expiresat, + expiresat > now() + interval '24 hours' AS reusable +FROM ap.orcidlogins +WHERE orcidid = ${orcidid} + AND expiresat > now() +ORDER BY expiresat DESC, sessionuuid +LIMIT 1; diff --git a/v2.0/helpers/validation/sessionlogin.js b/v2.0/helpers/validation/sessionlogin.js new file mode 100644 index 00000000..391e6458 --- /dev/null +++ b/v2.0/helpers/validation/sessionlogin.js @@ -0,0 +1,75 @@ +'use strict'; +// Decides which session a successful ORCID login gets. +// +// This used to be "INSERT a new row every time", so anyone who didn't click Logout +// (or who logged in from a second tab or device) left another working 7-day key +// behind in ap.orcidlogins. Every live sessionuuid is a bearer credential, so the +// rule now is: one live session per ORCID iD. +// +// - A live session with more than 24h left is handed back as it is. No new key, +// and its expiry is not extended. +// - Otherwise (none, or about to expire) every live session for that iD is +// expired and one new session is minted. +// - On either path any other live sessions for the iD are expired, which also +// tidies up duplicates that already exist. +// +// It all runs in one transaction behind an advisory lock on the ORCID iD. Without +// the lock two simultaneous logins (a double click, two tabs) would both find +// nothing and both insert. + +const {sql} = require('../../../src/neotomaapi.js'); + +const findactivelogin = sql('../v2.0/helpers/validation/findactivelogin.sql'); +const expireotherlogins = sql('../v2.0/helpers/validation/expireotherlogins.sql'); +const insertuserlogin = sql('../v2.0/helpers/validation/newlogin.sql'); + +// Two-key form so this lock can't collide with an advisory lock taken elsewhere +// for an unrelated purpose that happens to hash to the same integer. +const LOCKSQL = 'SELECT pg_advisory_xact_lock(hashtext(\'ap.orcidlogins\'), ' + + 'hashtext($1))'; + +/** + * Get the session an ORCID iD should use, reusing a live one when possible. + * @param {object} db A pg-promise database object. + * @param {object} login The login details. + * @param {string} login.orcidid The full ORCID iD, as stored in ap.orcidlogins. + * @param {string} login.ipaddr The IP address the login came from. + * @param {string|null} login.orcidname The person's name, for the new row only. + * @return {Promise} {sessionuuid, expiresat, reused} + * **/ +async function getOrCreateSession(db, {orcidid, ipaddr, orcidname}) { + return db.tx(async (t) => { + // any(), not none(): a SELECT always returns its (void) row, and none() + // throws when handed one. + await t.any(LOCKSQL, [orcidid]); + + const existing = await t.oneOrNone(findactivelogin, {orcidid}); + + if (existing && existing.reusable) { + const retired = await t.result(expireotherlogins, + {orcidid: orcidid, keep: existing.sessionuuid}); + // Counts only: a sessionuuid is a credential and doesn't belong in logs. + console.log('session reused; ' + retired.rowCount + + ' duplicate live session(s) expired'); + return { + sessionuuid: existing.sessionuuid, + expiresat: existing.expiresat, + reused: true, + }; + } + + const retired = await t.result(expireotherlogins, + {orcidid: orcidid, keep: null}); + const created = await t.one(insertuserlogin, + {orcidid: orcidid, ipaddr: ipaddr, orcidname: orcidname}); + console.log('session created; ' + retired.rowCount + + ' earlier live session(s) expired'); + return { + sessionuuid: created.sessionuuid, + expiresat: created.expiresat, + reused: false, + }; + }); +} + +module.exports.getOrCreateSession = getOrCreateSession; diff --git a/v2.0/helpers/validation/validateuser.js b/v2.0/helpers/validation/validateuser.js index ac53d8b8..172957d5 100644 --- a/v2.0/helpers/validation/validateuser.js +++ b/v2.0/helpers/validation/validateuser.js @@ -9,10 +9,12 @@ // passed as `Authorization: Bearer ` and checked by sessionauth.js. // Session lifetime is set in newlogin.sql — currently 1 week — and its expiry is // returned alongside the UUID so clients don't have to guess. +// Logging in again does not mint another key: sessionlogin.js hands back the +// person's live session unless it is about to expire. const {sql} = require('../../../src/neotomaapi.js'); -const insertuserlogin = sql('../v2.0/helpers/validation/newlogin.sql'); +const {getOrCreateSession} = require('./sessionlogin.js'); const stewardbyorcid = sql('../v2.0/helpers/validation/stewardbyorcid.sql'); // How long we're willing to wait on orcid.org. fetch() has no overall timeout of @@ -93,7 +95,9 @@ const checktoken = async function(req, res, next) { }); } - const uuidres = await db.one(insertuserlogin, + // A returning user gets their live session back rather than a new key; only + // when there isn't one worth reusing is a new session minted. + const session = await getOrCreateSession(db, {'orcidid': orcidid, 'ipaddr': ipaddr, 'orcidname': result['name'] || [result['given_name'], result['family_name']].filter(Boolean).join(' ') || @@ -104,9 +108,13 @@ const checktoken = async function(req, res, next) { status: 'success', data: { user: result, - neotoken: uuidres, + neotoken: { + sessionuuid: session.sessionuuid, + expiresat: session.expiresat, + }, }, - message: 'Neotoma token expires in 1wk', + message: 'Neotoma session is valid until ' + + new Date(session.expiresat).toISOString(), }); } catch (err) { // An aborted fetch lands here rather than returning a response, so it needs @@ -121,11 +129,23 @@ const checktoken = async function(req, res, next) { message: 'ORCID did not respond in time. Please try again.', }); } - console.error(err); + // Log the detail, don't return it. This used to send `data: err` straight + // back to the caller, which meant a failed INSERT echoed the whole + // statement — ORCID iD, the person's name and their IP — to anyone who + // could reach the endpoint. CloudWatch already has everything needed. + console.error('validate failed: ' + JSON.stringify({ + message: err.message, + code: err.code, + detail: err.detail, + hint: err.hint, + schema: err.schema, + table: err.table, + column: err.column, + routine: err.routine, + })); return res.status(500) .json({ status: 'error', - data: err, message: 'Failed to generate token.', }); } diff --git a/v2.0/oxcal/oxcal.js b/v2.0/oxcal/oxcal.js index fe9c66cd..f5adddeb 100644 --- a/v2.0/oxcal/oxcal.js +++ b/v2.0/oxcal/oxcal.js @@ -74,8 +74,8 @@ function calibrate(req, res, next) { res.status(500) .json({ status: 'error', - data: err.message, - message: 'Hit an unexpected error' + data: null, + message: err.message }); next(err) }) @@ -127,8 +127,8 @@ function calibrate(req, res, next) { res.status(500) .json({ status: 'error', - data: err.message, - message: 'Hit an unexpected error' + data: null, + message: err.message }); next(err) })