diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 784d857ed0d..ae0c2f99ea1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -116,6 +116,11 @@ jobs: - name: Checkout sources uses: actions/checkout@v4 + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: 22 + - name: Install stable toolchain, tools, and restore cache uses: ./.github/workflows/actions/toolchain-and-cache with: @@ -158,7 +163,7 @@ jobs: - name: Test 'mithril-client-wasm' - NodeJS shell: bash run: | - wasm-pack test --node mithril-client-wasm --release + wasm-pack test --node mithril-client-wasm --release --features test-node - name: Publish Mithril Distribution (WASM) uses: actions/upload-artifact@v4 diff --git a/Cargo.lock b/Cargo.lock index 75ee5950e51..274d90e6e94 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3719,7 +3719,7 @@ dependencies = [ [[package]] name = "mithril-client-wasm" -version = "0.7.4" +version = "0.7.5" dependencies = [ "anyhow", "async-trait", diff --git a/examples/client-wasm-nodejs/package-lock.json b/examples/client-wasm-nodejs/package-lock.json index 4474a32fedb..789a06d2406 100644 --- a/examples/client-wasm-nodejs/package-lock.json +++ b/examples/client-wasm-nodejs/package-lock.json @@ -16,7 +16,7 @@ }, "../../mithril-client-wasm": { "name": "@mithril-dev/mithril-client-wasm", - "version": "0.7.3", + "version": "0.7.5", "license": "Apache-2.0" }, "node_modules/@mithril-dev/mithril-client-wasm": { diff --git a/examples/client-wasm-web/package-lock.json b/examples/client-wasm-web/package-lock.json index 8ac1eee6358..253e15cda8d 100644 --- a/examples/client-wasm-web/package-lock.json +++ b/examples/client-wasm-web/package-lock.json @@ -20,7 +20,7 @@ }, "../../mithril-client-wasm": { "name": "@mithril-dev/mithril-client-wasm", - "version": "0.7.3", + "version": "0.7.5", "license": "Apache-2.0" }, "node_modules/@discoveryjs/json-ext": { diff --git a/mithril-client-wasm/Cargo.toml b/mithril-client-wasm/Cargo.toml index baf9feea7e8..cafe1412dcc 100644 --- a/mithril-client-wasm/Cargo.toml +++ b/mithril-client-wasm/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "mithril-client-wasm" -version = "0.7.4" +version = "0.7.5" description = "Mithril client WASM" authors = { workspace = true } edition = { workspace = true } @@ -34,6 +34,7 @@ mithril-build-script = { path = "../internal/mithril-build-script" } [features] # Include nothing by default default = [] +test-node = [] [package.metadata.docs.rs] all-features = true diff --git a/mithril-client-wasm/Makefile b/mithril-client-wasm/Makefile index eddcbf4b6bc..81f270d3b6c 100644 --- a/mithril-client-wasm/Makefile +++ b/mithril-client-wasm/Makefile @@ -15,12 +15,15 @@ build: test: pkill -f "mithril-aggregator-fake" || true ${CARGO} run -p mithril-aggregator-fake -- -p 8000 & - if wasm-pack test --headless --firefox --chrome --node --release; then \ + if ! wasm-pack test --headless --firefox --chrome --release; then \ pkill -f "mithril-aggregator-fake" || true; \ - else \ + exit 1; \ + fi + if ! wasm-pack test --node --release --features test-node; then \ pkill -f "mithril-aggregator-fake" || true; \ exit 1; \ fi + pkill -f "mithril-aggregator-fake" || true check: ${CARGO} check --release --all-features --all-targets diff --git a/mithril-client-wasm/ci-test/package-lock.json b/mithril-client-wasm/ci-test/package-lock.json index 906d783cb29..f8358d60a44 100644 --- a/mithril-client-wasm/ci-test/package-lock.json +++ b/mithril-client-wasm/ci-test/package-lock.json @@ -21,7 +21,7 @@ }, "..": { "name": "@mithril-dev/mithril-client-wasm", - "version": "0.7.4", + "version": "0.7.5", "license": "Apache-2.0" }, "node_modules/@discoveryjs/json-ext": { diff --git a/mithril-client-wasm/package.json b/mithril-client-wasm/package.json index 97cec1c9c1b..43d8398afc3 100644 --- a/mithril-client-wasm/package.json +++ b/mithril-client-wasm/package.json @@ -1,6 +1,6 @@ { "name": "@mithril-dev/mithril-client-wasm", - "version": "0.7.4", + "version": "0.7.5", "description": "Mithril client WASM", "license": "Apache-2.0", "collaborators": [ diff --git a/mithril-client-wasm/src/certificate_verification_cache.rs b/mithril-client-wasm/src/certificate_verification_cache.rs index bf85e7084d9..b7966253fb2 100644 --- a/mithril-client-wasm/src/certificate_verification_cache.rs +++ b/mithril-client-wasm/src/certificate_verification_cache.rs @@ -151,7 +151,7 @@ impl CertificateVerifierCache for LocalStorageCertificateVerifierCache { } } -#[cfg(test)] +#[cfg(all(test, not(feature = "test-node")))] pub(crate) mod test_tools { use std::collections::HashMap; @@ -249,7 +249,7 @@ pub(crate) mod test_tools { } } -#[cfg(test)] +#[cfg(all(test, not(feature = "test-node")))] mod tests { use std::collections::HashMap; use wasm_bindgen_test::*; diff --git a/mithril-client-wasm/src/client_wasm.rs b/mithril-client-wasm/src/client_wasm.rs index a64e256720d..4d2ffff896e 100644 --- a/mithril-client-wasm/src/client_wasm.rs +++ b/mithril-client-wasm/src/client_wasm.rs @@ -42,9 +42,9 @@ impl JSBroadcastChannelFeedbackReceiver { impl FeedbackReceiver for JSBroadcastChannelFeedbackReceiver { async fn handle_event(&self, event: MithrilEvent) { let event = MithrilEventWasm::from(event); - let _ = web_sys::BroadcastChannel::new(&self.channel) - .unwrap() - .post_message(&serde_wasm_bindgen::to_value(&event).unwrap()); + let bc = web_sys::BroadcastChannel::new(&self.channel).unwrap(); + let _ = bc.post_message(&serde_wasm_bindgen::to_value(&event).unwrap()); + bc.close(); } } @@ -477,6 +477,7 @@ mod tests { get_mithril_client(options) } + #[cfg(not(feature = "test-node"))] wasm_bindgen_test_configure!(run_in_browser); #[wasm_bindgen_test] diff --git a/mithril-explorer/package-lock.json b/mithril-explorer/package-lock.json index 367b51a8b26..cb8aa911a55 100644 --- a/mithril-explorer/package-lock.json +++ b/mithril-explorer/package-lock.json @@ -36,7 +36,7 @@ }, "../mithril-client-wasm/dist/web": { "name": "mithril-client-wasm", - "version": "0.7.4", + "version": "0.7.5", "license": "Apache-2.0" }, "node_modules/@aashutoshrathi/word-wrap": {