mirror of
https://github.com/google/comprehensive-rust.git
synced 2025-04-22 07:47:44 +02:00
10 Commits
Author | SHA1 | Message | Date | |
---|---|---|---|---|
|
53f7660e9b
|
Evaluate slide size and block if they grow above a certain treshold (with exemption mechanism) (#2693)
This enables a test for the width and height of slides (excluding some special cases completely). The mechanism has an exemption mechanism to temporarily exempt slides from the rules. Even exempted slides are checked for the rule violation and once the slides are compliant they must be removed from the exemption list to avoid future regression (the check fails in the CI if compliant slides are exempted!) This also provides a good opportunity to always have an up-to-date list of overlong slides in [slide-exemptions.list.ts](tests/src/slides/slide-exemptions.list.ts) that can be worked on. The slide list is always autogenerated in the CI environment. If you want to enable this for your local dev environment it has to be created manually. This avoids a time consuming local test if it is not necessary. On the CLI it can be locally used with `npm run test -- --spec=src/slide-size.test.ts` (after creating the list with `./src/slides/create-slide.list.sh ../book/html/`). The CI environment specifies the env var `TEST_BOOK_DIR` that is used to specifiy the html directory so it can create the list of slides on-the-fly, check against hardcoded exemptions and evaluate. This is a new solution for #1464 within the new test framework. This is related to #2234 and makes the mdbook-slide-evaluator from #2258 obsolete and should be removed as this is a not so powerful nor flexible framework. |
||
|
92d60b27e6
|
Bump the npm_and_yarn group across 1 directory with 2 updates (#2674)
Bumps the npm_and_yarn group with 2 updates in the /tests directory: [esbuild](https://github.com/evanw/esbuild) and [tsx](https://github.com/privatenumber/tsx). Updates `esbuild` from 0.23.1 to 0.25.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/evanw/esbuild/releases">esbuild's releases</a>.</em></p> <blockquote> <h2>v0.25.0</h2> <p><strong>This release deliberately contains backwards-incompatible changes.</strong> To avoid automatically picking up releases like this, you should either be pinning the exact version of <code>esbuild</code> in your <code>package.json</code> file (recommended) or be using a version range syntax that only accepts patch upgrades such as <code>^0.24.0</code> or <code>~0.24.0</code>. See npm's documentation about <a href="https://docs.npmjs.com/cli/v6/using-npm/semver/">semver</a> for more information.</p> <ul> <li> <p>Restrict access to esbuild's development server (<a href="https://github.com/evanw/esbuild/security/advisories/GHSA-67mh-4wv8-2f99">GHSA-67mh-4wv8-2f99</a>)</p> <p>This change addresses esbuild's first security vulnerability report. Previously esbuild set the <code>Access-Control-Allow-Origin</code> header to <code>*</code> to allow esbuild's development server to be flexible in how it's used for development. However, this allows the websites you visit to make HTTP requests to esbuild's local development server, which gives read-only access to your source code if the website were to fetch your source code's specific URL. You can read more information in <a href="https://github.com/evanw/esbuild/security/advisories/GHSA-67mh-4wv8-2f99">the report</a>.</p> <p>Starting with this release, <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS">CORS</a> will now be disabled, and requests will now be denied if the host does not match the one provided to <code>--serve=</code>. The default host is <code>0.0.0.0</code>, which refers to all of the IP addresses that represent the local machine (e.g. both <code>127.0.0.1</code> and <code>192.168.0.1</code>). If you want to customize anything about esbuild's development server, you can <a href="https://esbuild.github.io/api/#serve-proxy">put a proxy in front of esbuild</a> and modify the incoming and/or outgoing requests.</p> <p>In addition, the <code>serve()</code> API call has been changed to return an array of <code>hosts</code> instead of a single <code>host</code> string. This makes it possible to determine all of the hosts that esbuild's development server will accept.</p> <p>Thanks to <a href="https://github.com/sapphi-red"><code>@sapphi-red</code></a> for reporting this issue.</p> </li> <li> <p>Delete output files when a build fails in watch mode (<a href="https://redirect.github.com/evanw/esbuild/issues/3643">#3643</a>)</p> <p>It has been requested for esbuild to delete files when a build fails in watch mode. Previously esbuild left the old files in place, which could cause people to not immediately realize that the most recent build failed. With this release, esbuild will now delete all output files if a rebuild fails. Fixing the build error and triggering another rebuild will restore all output files again.</p> </li> <li> <p>Fix correctness issues with the CSS nesting transform (<a href="https://redirect.github.com/evanw/esbuild/issues/3620">#3620</a>, <a href="https://redirect.github.com/evanw/esbuild/issues/3877">#3877</a>, <a href="https://redirect.github.com/evanw/esbuild/issues/3933">#3933</a>, <a href="https://redirect.github.com/evanw/esbuild/issues/3997">#3997</a>, <a href="https://redirect.github.com/evanw/esbuild/issues/4005">#4005</a>, <a href="https://redirect.github.com/evanw/esbuild/pull/4037">#4037</a>, <a href="https://redirect.github.com/evanw/esbuild/pull/4038">#4038</a>)</p> <p>This release fixes the following problems:</p> <ul> <li> <p>Naive expansion of CSS nesting can result in an exponential blow-up of generated CSS if each nesting level has multiple selectors. Previously esbuild sometimes collapsed individual nesting levels using <code>:is()</code> to limit expansion. However, this collapsing wasn't correct in some cases, so it has been removed to fix correctness issues.</p> <pre lang="css"><code>/* Original code */ .parent { > .a, > .b1 > .b2 { color: red; } } <p>/* Old output (with --supported:nesting=false) */<br /> .parent > :is(.a, .b1 > .b2) {<br /> color: red;<br /> }</p> <p>/* New output (with --supported:nesting=false) */<br /> .parent > .a,<br /> .parent > .b1 > .b2 {<br /> color: red;<br /> }<br /> </code></pre></p> <p>Thanks to <a href="https://github.com/tim-we"><code>@tim-we</code></a> for working on a fix.</p> </li> <li> <p>The <code>&</code> CSS nesting selector can be repeated multiple times to increase CSS specificity. Previously esbuild ignored this possibility and incorrectly considered <code>&&</code> to have the same specificity as <code>&</code>. With this release, this should now work correctly:</p> <pre lang="css"><code>/* Original code (color should be red) */ </code></pre> </li> </ul> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/evanw/esbuild/blob/main/CHANGELOG-2024.md">esbuild's changelog</a>.</em></p> <blockquote> <h1>Changelog: 2024</h1> <p>This changelog documents all esbuild versions published in the year 2024 (versions 0.19.12 through 0.24.2).</p> <h2>0.24.2</h2> <ul> <li> <p>Fix regression with <code>--define</code> and <code>import.meta</code> (<a href="https://redirect.github.com/evanw/esbuild/issues/4010">#4010</a>, <a href="https://redirect.github.com/evanw/esbuild/issues/4012">#4012</a>, <a href="https://redirect.github.com/evanw/esbuild/pull/4013">#4013</a>)</p> <p>The previous change in version 0.24.1 to use a more expression-like parser for <code>define</code> values to allow quoted property names introduced a regression that removed the ability to use <code>--define:import.meta=...</code>. Even though <code>import</code> is normally a keyword that can't be used as an identifier, ES modules special-case the <code>import.meta</code> expression to behave like an identifier anyway. This change fixes the regression.</p> <p>This fix was contributed by <a href="https://github.com/sapphi-red"><code>@sapphi-red</code></a>.</p> </li> </ul> <h2>0.24.1</h2> <ul> <li> <p>Allow <code>es2024</code> as a target in <code>tsconfig.json</code> (<a href="https://redirect.github.com/evanw/esbuild/issues/4004">#4004</a>)</p> <p>TypeScript recently <a href="https://devblogs.microsoft.com/typescript/announcing-typescript-5-7/#support-for---target-es2024-and---lib-es2024">added <code>es2024</code></a> as a compilation target, so esbuild now supports this in the <code>target</code> field of <code>tsconfig.json</code> files, such as in the following configuration file:</p> <pre lang="json"><code>{ "compilerOptions": { "target": "ES2024" } } </code></pre> <p>As a reminder, the only thing that esbuild uses this field for is determining whether or not to use legacy TypeScript behavior for class fields. You can read more in <a href="https://esbuild.github.io/content-types/#tsconfig-json">the documentation</a>.</p> <p>This fix was contributed by <a href="https://github.com/billyjanitsch"><code>@billyjanitsch</code></a>.</p> </li> <li> <p>Allow automatic semicolon insertion after <code>get</code>/<code>set</code></p> <p>This change fixes a grammar bug in the parser that incorrectly treated the following code as a syntax error:</p> <pre lang="ts"><code>class Foo { get *x() {} set *y() {} } </code></pre> <p>The above code will be considered valid starting with this release. This change to esbuild follows a <a href="https://redirect.github.com/microsoft/TypeScript/pull/60225">similar change to TypeScript</a> which will allow this syntax starting with TypeScript 5.7.</p> </li> <li> <p>Allow quoted property names in <code>--define</code> and <code>--pure</code> (<a href="https://redirect.github.com/evanw/esbuild/issues/4008">#4008</a>)</p> <p>The <code>define</code> and <code>pure</code> API options now accept identifier expressions containing quoted property names. Previously all identifiers in the identifier expression had to be bare identifiers. This change now makes <code>--define</code> and <code>--pure</code> consistent with <code>--global-name</code>, which already supported quoted property names. For example, the following is now possible:</p> <pre lang="js"><code></code></pre> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
0134568034
|
Bump dprint plugins to their latest versions (#2402) | ||
|
4ec257942e
|
Tests for playground are using a mock response (#2611)
The official playground quite often provides a timeout error as in https://github.com/google/comprehensive-rust/issues/2549 This is mocking/overriding the response from the playground for success and failure messages to avoid the server provided timeouts. As far as I see most responses from the playground are delivered below 10 seconds (but varies a lot...) There still might be timeouts and I know of the following knobs that can be tuned - wdio waits for 10 seconds until it aborts the current attemp (e.g. to wait for the text to be as expected) |
||
|
153bd63cc0
|
tests: rename to generic-page.test.ts as only *.test.js is tested (#2625)
the filename without .test. was introduced in #2621 |
||
|
2cf9a35b23
|
Check if menu bar buttons are display and functionality works (#2621)
Test the main page for existence of - theme button visible - clicking shows the list of themes - search button visible - and tests successful search for "Welcome" - language button visible - clicking shows the list of languages this is testing functionality missing in dev environments in https://github.com/google/comprehensive-rust/issues/2588 and is relevant for https://github.com/google/comprehensive-rust/issues/2620 |
||
|
7f712b5292
|
Bump undici from 6.21.0 to 6.21.1 in /tests in the npm_and_yarn group across 1 directory (#2580)
Bumps the npm_and_yarn group with 1 update in the /tests directory: [undici](https://github.com/nodejs/undici). Updates `undici` from 6.21.0 to 6.21.1 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/nodejs/undici/releases">undici's releases</a>.</em></p> <blockquote> <h2>v6.21.1</h2> <h1>⚠️ Security Release ⚠️</h1> <p>Fixes CVE CVE-2025-22150 <a href="https://github.com/nodejs/undici/security/advisories/GHSA-c76h-2ccp-4975">https://github.com/nodejs/undici/security/advisories/GHSA-c76h-2ccp-4975</a> (embargoed until 22-01-2025).</p> <h2>What's Changed</h2> <ul> <li>fix(<a href="https://redirect.github.com/nodejs/undici/issues/3736">#3736</a>): back-port 183f8e9 to v6.x by <a href="https://github.com/ggoodman"><code>@ggoodman</code></a> in <a href="https://redirect.github.com/nodejs/undici/pull/3855">nodejs/undici#3855</a></li> <li>fix(<a href="https://redirect.github.com/nodejs/undici/issues/3817">#3817</a>): send servername for SNI on TLS (<a href="https://redirect.github.com/nodejs/undici/issues/3821">#3821</a>) [backport] by <a href="https://github.com/metcoder95"><code>@metcoder95</code></a> in <a href="https://redirect.github.com/nodejs/undici/pull/3864">nodejs/undici#3864</a></li> <li>fix: sending formdata bodies with http2 (<a href="https://redirect.github.com/nodejs/undici/issues/3863">#3863</a>) [backport] by <a href="https://github.com/metcoder95"><code>@metcoder95</code></a> in <a href="https://redirect.github.com/nodejs/undici/pull/3866">nodejs/undici#3866</a></li> <li>[Backport v6.x] fix: Fixed the issue that there is no running request when http2 goaway by <a href="https://github.com/github-actions"><code>@github-actions</code></a> in <a href="https://redirect.github.com/nodejs/undici/pull/3877">nodejs/undici#3877</a></li> <li>types: [backport] Update return type of RetryCallback (<a href="https://redirect.github.com/nodejs/undici/issues/3851">#3851</a>) by <a href="https://github.com/metcoder95"><code>@metcoder95</code></a> in <a href="https://redirect.github.com/nodejs/undici/pull/3876">nodejs/undici#3876</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/nodejs/undici/compare/v6.21.0...v6.21.1">https://github.com/nodejs/undici/compare/v6.21.0...v6.21.1</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href=" |
||
|
1c709efac0
|
Remove flaky JS test (#2551)
This should stop the test failures, but of course it won’t fix the underlying problem. Reverts part of #2513. Related to #2549. |
||
|
34920c76e6
|
tests: hello world playground run with success and failure tests (#2513)
Implement two tests for the rust playground: - successful run of the hello world example with the hello world message in stdout and a hidden stderr - on purpose compilation error is shown in stderr and "No output" in stdout |
||
|
48b2b5c312
|
Add a test framework to test the JS part of the course (#2471)
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> |