mirror of
https://github.com/docsifyjs/docsify.git
synced 2025-12-08 19:55:52 +00:00
* Fix: Cannot serve off `/.../index.html` Docsify must be hosted on a server that supports a default directory index (i.e. maps `/.../` -> `/.../index.html`). Some platforms do not support this, however. For example, HTML apps hosted on the popular game/software platform, Itch.io. This change supports hosting Docsify off an explicit path file, such as `/index.html`. It does this by: 1. Adding handling for paths like `index.html#/blah`, and 2. Normalising paths with fragments back to markdown paths For example, `http://example.org/index.html#/blah` would be mapped to `http://example.org/blah.md`. This fixes: https://github.com/docsifyjs/docsify/issues/427 * Add end-to-end test for index file hosting * Add code comments for explicit file changes * Add additional tests for index file hosting * Add additional tests for index file hosting * [wip] Attempt to switch tests to Jest * Add e2e test for new Jest test framework * Verify sidebar links use file hosting * Fix: endsWith() not supported for IE11 * Refactor: utility method moved to utility file * Fix IE11 error from use of String.includes() Co-authored-by: John Hildenbiddle <jhildenbiddle@users.noreply.github.com>
Docsify Testing
Environment
- Jest: A test framework used for assertions, mocks, spies, etc.
- Playwright: A test automation tool for launching browsers and manipulating the DOM.
- Jest-Playwright: A Jest preset that simplifies using Jest and Playwright together
Test files
- E2E tests are located in
/test/e2e/and use Jest + Playwright. - Integration tests are located in
/test/integration/and use Jest. - Unit tests located in
/test/unit/and use Jest.
Global Variables
TEST_HOST: Test server ip:port
CLI commands
# Run all tests
npm run test
# Run test types
npm run test:e2e
npm run test:integration
npm run test:unit
# Run test file
npm run test -- -i /path/to/file.test.js
# Run matching test files
npm run test -- -i /path/to/*.test.js
# Run matching test name(s)
npm run test -- -t \"describe() or test() name\"
# Run matching test name(s) in file
npm run test -- -i /path/to/file.test.js -t \"describe() or test() name\"
# Run all example tests
npm run test -- -i /test/**/example.test.js
# Run specific example test file
npm run test -- -i /path/to/example.test.js
# ------------------------------------------------------------------------------
# Update snapshots for matching test files
npm run test -- -u -i /path/to/*.test.js
# Update snapshots for matching test name(s)
npm run test -- -u -t \"describe() or test() name\"
# Update snapshots for matching test name(s) in file
npm run test -- -u -i /path/to/file.test.js -t \"describe() or test() name\"
# ------------------------------------------------------------------------------
# Start manual test server instance. Useful for previewing test fixtures.
# Root: /test/e2e/fixtures/
# Routes: /docs, /lib,
node ./test/config/server.js --start