This is a first draft for a test framework for testing the JS part of the book that is discussed in #2462 It is using [webdriverIO](https://webdriver.io/) and the webdriverIO [Expect API](https://webdriver.io/docs/api/expect-webdriverio/) in combination with [Mocha](https://mochajs.org/). WebdriverIO is taking care of accessing the webpage with a real browser and can access the state of the page so behavior can be asserted. Currently only a small test for the speaker-notes implementation demos the functionality. The [Static Server Service](https://webdriver.io/docs/static-server-service/) is used to serve the book in a way that the test runner can access it. A CI integration can look like https://webdriver.io/docs/githubactions/ and is implemented with a headless setup. In CI it uses the language variable to set environment variable that configures where the built book should be mounted from --------- Co-authored-by: Martin Geisler <martin@geisler.net>
Testing Comprehensive Rust
The course material contains JS code that can break and needs to be checked for
functionality. Examples are theme/speaker-notes.js
or theme/book.js
.
Comprehensive Rust is using webdriverIO and the webdriverIO Expect API in combination with [Mocha] (https://mochajs.org/). WebdriverIO is taking care of accessing the webpage with a real browser and can access the state of the page so behavior can be asserted.
The Static Server Service is
used mainly in the CI to serve the book on port
localhost:8080
such that the test runner can access it. This mode is used when
npm start
or npm test
is executed.
For local testing and quick iterations it is possible to use mdbook serve
which creates a small HTTP server on port 3000 by default. There is a special
config that is invoked with npm run test-mdbook
that uses
http://localhost:3000