1
0
mirror of https://github.com/google/comprehensive-rust.git synced 2025-12-23 06:56:25 +02:00
Files
comprehensive-rust/tests
Martin Geisler 1063356a1d Re-enable the red box to show available space (#2932)
Way back in #187, I introduced a hacky tool to show the available space
on a slide: it was a `mdbook` plugin which injected the necessary CSS on
each slide. Crude, but it got the job done.

The logic was moved from Python to a real CSS file with associated
JavaScript in #1842. In #1917, the functionality was moved to a
dedicated “instructor menu”, together with functionality for saving the
state of the Playground on each slide.

Unfortunately, the whole thing was disabled in #1935 since I found that
the Playgrounds lost their code with the saving logic. I was also not
100% happy with dedicating space on each slide for a menu only used by
instructors.

However, I really think we need a tool to let slide editors know about
the available space, so I would like to re-introduce the red box. This
time via a keyboard shortcut to make it easy to toggle as needed.

I’m suggesting enabling this for everyone, with the expectation that
most people won’t find the shortcut and will quickly disable the box if
they do (there is a dedicated button to hide it again).

End-to-end tests have been added for the new functionality.
2025-10-19 15:10:01 +00:00
..

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. 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.

Tip: Use cargo xtask web-tests to run the tests in this directory from anywhere in the repository.

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