* Add `.nvmrc` → 14
* Fix package.json's URLs
* Update to Pa11y CI's version (`https` etc)
* Add Node 16 to matrix, and make linter run each time
* Standardise `.editorconfig`
* Upgrade to `actions/checkout@4` and `actions/setup-node@3`
* Replace `npm install` with `npm ci`
* Replace `wait-action` with `sleep 10s`
* Rewrite to detach config, use promises, and replace `request` with `fetch` (adding `node-fetch` until Node 18)
* Delete small single-use helper
* Bump to `pa11y-webservice@4.1` and use caret from here (we control the dep)
* Return to `this.last`, fix syntax errors
* Update copyright to 2023 and remove unused ref
* Fix troubleshooting link
* Remove symbols, since they could become outdated
* Remove missing link
* Replace emoji note with GitHub Markdown note
* Fix setup link
* Replace br with double space
* Replace `sh` with `console` for terminal output
* Rename Mongo DB used in integration tests to avoid clash locally
* Remove JSCS and references to other unused tools
* Remove tooling tasks update
* Compress definitions and layout where it makes sense or brings clarity
* Rename db used in tests to `pa11y-dashboard-integration-test`, to avoid clash with `pa11y-webservice`'s own test DB
* Use briefer syntax
* Fix integration test setup & config
* Reverse function order to return early
* Update to `pa11y-lint-config@3`, update `ecmaVersion` to 2020, remove some rule overrides
* Fix linting errors, remove cruft
* Move linting and broken integration test command into npm scripts (it remains broken)
* Revert `node-fetch` to `^2.7.0` (can't do ESM right now)
* Upgrade to `pa11y-webservice@^4.2` from `^4.1`
* Upgrade to `mocha@^9.2` from `^8.4` (can't do `10` yet because it drops Node 12)
* Use backticks for property names
* Fix anchor link for 'installing MongoDB'
* Reorganise test workflow and add Node `18` and `20` to test matrix
* Fix `lockfile-version` to `2`
* Apply support policy
* Replace Travis badge with one for Actions
* Define some more links, separate code blocks
* Reflect greater confidence in support for recent versions of MongoDB
* Test against MongoDB versions 3-7
* Remove Make tasks `all`, `ci`, `clean`, `install`, `node_modules`, `lint`
* Fix integration test command in workflow
* Restore shallow Mocha command for now
* Move linting into own step `lint` to avoid duplicated warnings
* Give the `test` workflow a better name now that it uses a bigger matrix
* Drop back to ES2019 from ES2020 for Node 12, remove use of `?.`
* Reduce `--slow` to `4000`
* Remove a `describe.only` 👀
* Fix broken test for add new item → standard
* Rename availability check function
* Fix task count check when testing task creation
* Return fully to the original `new` logic
* Use `127.0.0.1` consistently to fix (possible) IPV6 issue
* Fix Cheerio call in failing test
* Add MongoDB 2, and tweak other final versions
* Lower case and shorten test name, to sit well alongside lint job
* Replace `underscore(.groupBy)` with `lodash/groupby`
* Capitalise Puppeteer
* Say we test against MongoDB 2 as well
* Document two replacements of Make with npm scripts
* Revise requirements, permitting Node 16+ and describing Ubuntu issue
* Support Node 16, 18, 20
* Install `lodash.keys` and fix Lodash mistakes
* Fix rebase autoresolution error affecting `index.js` 👀
* This is Pa11y Dashboard not Webservice
* Fix MongoDB link
* Remove unused link def for Puppeteer
* Shush markdown linter
* Actually use `pa11y-webservice@4.3`
* Improve support table
* Don't `fail-fast`
* Remove dependency `underscore`
* Fix dashboard's port definition for integration test
* Set `NODE_ENV=test` for integration tests
* Use `mocha@10`
* Extend the sleep to rule out the service not starting in time
* Wait on port `4000` instead of sleeping
* Fix `wait-on-action` to `v1.1.0`
* Fix includes of `lodash.groupby` and `lodash.keys`
* Label the port waiting action
* Fix to `pa11y-webservice@4.2.0` until dep issue resolved
* Set waiter action to start after 1s, time out after 30s, and log
* Upgrade to `pa11y-webservice@^4.3.1` from `~4.2.0`
* Remove comment about recent versions of MongoDB, since we test with them now
* Bump webservice to require the latest 4.0.1 version
* Bump other dependencies
* Update linter conf to v2 which avoids the "Unsupported engine" warning when using node 12
* Keep all other devdependencies as they are so they stay consistent with the other repos
This commit adds request logging to the app using morgan.
Every request will now be logged not one but twice: one when the request is received, and a second time when the response is sent.
The response logging also prints out the time elapsed in processing the request, which will be useful to debug performance issues (calls to the dashboard home are currently taking 4 - 15s on a populated database).
The new code uses a tiny middleware that uses nanoid to generate a random request id that can be used to match requests in the logs.
This logging will help us determine which requests are successful, which requests are slow, and establish what requests may have contributed to causing an application crash, making future debugging easier.
* Bumps pa11y-webservice and client to the new versions requiring node 8+
* Update tests to account for the new URL. Integration tests now include a localhost URL, this updates the tests to reflect that.
* Increase test timeout to avoid travis failing