Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 6 additions & 5 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -139,11 +139,12 @@ jobs:
clippy-target-v2-${{ runner.os }}-rust-1.98.1-
- name: Clippy
run: |
cargo +1.98.1 clippy --locked --workspace --all-targets -- -D warnings
cargo +1.98.1 clippy --locked -p live-search --features ssr --all-targets -- -D warnings
cargo +1.98.1 clippy --locked -p live-search --features ssr,otel --all-targets -- -D warnings
cargo +1.98.1 clippy --locked -p gateway-example --features otel --all-targets -- -D warnings
cargo +1.98.1 clippy --locked -p i18n-demo --features ssr --all-targets -- -D warnings
lint_args=(-D warnings -D clippy::pedantic -D clippy::nursery)
cargo +1.98.1 clippy --locked --workspace --all-targets -- "${lint_args[@]}"
cargo +1.98.1 clippy --locked -p live-search --features ssr --all-targets -- "${lint_args[@]}"
cargo +1.98.1 clippy --locked -p live-search --features ssr,otel --all-targets -- "${lint_args[@]}"
cargo +1.98.1 clippy --locked -p gateway-example --features otel --all-targets -- "${lint_args[@]}"
cargo +1.98.1 clippy --locked -p i18n-demo --features ssr --all-targets -- "${lint_args[@]}"
- name: Report Clippy cache footprint
if: always()
run: du -sh target/debug 2>/dev/null || true
Expand Down
27 changes: 0 additions & 27 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

13 changes: 7 additions & 6 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,13 @@
[workspace]
resolver = "3"
members = ["crates/config", "crates/domain", "crates/leptos-utils", "gateway", "live-search", "i18n-demo", "e2e-tests"]
exclude = ["third-party/manyhow", "third-party/proc-macro-error2"]

[patch.crates-io]
# Temporary source-compatible fixes for dependencies currently used by Leptos.
# Remove each patch once crates.io/upstream contains the corresponding fix.
manyhow = { path = "third-party/manyhow" }
proc-macro-error2 = { path = "third-party/proc-macro-error2" }

[workspace.package]
version = "0.1.0"
Expand Down Expand Up @@ -51,7 +58,6 @@ leptos-use = "0.19"
leptos-struct-table = "0.19"
lepticons = "0.13"
utoipa = "6"
utoipa-axum = "0.3"
# `axum` enables the SwaggerUi router builder; `vendored` bundles Swagger UI assets so Docker builds don't need network.
utoipa-swagger-ui = { version = "10", features = ["axum", "vendored"] }
opentelemetry = "0.32"
Expand All @@ -76,11 +82,6 @@ config = { version = "0.15", default-features = false, features = ["toml"] }
# Shared domain types (no framework dependencies).
rwf-domain = { path = "crates/domain" }

# Deprecated compatibility shim around `leptos_axum::handle_server_fns`.
# New code should call leptos_axum directly; this remains only for source
# compatibility until downstream users have migrated.
leptos-utils = { path = "crates/leptos-utils" }

[workspace.lints.rust]
unsafe_code = "deny"
rust_2024_compatibility = { level = "deny", priority = -1 }
Expand Down
12 changes: 3 additions & 9 deletions e2e-tests/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -78,19 +78,14 @@ opentelemetry_sdk = { workspace = true, optional = true, features = ["testing"]
# Test infrastructure
testcontainers = { workspace = true }

# Snapshot testing & property-based testing
insta = { workspace = true, features = ["json"] }
# Property-based test helpers are used by the shared test-support library.
proptest = { workspace = true }

# Shared domain types (SearchResult, etc.)
rwf-domain = { workspace = true }

# Import the real SearchResult type and SSR modules for in-process server
live-search = { path = "../live-search", features = ["ssr", "test-seams"] }
# Shared Leptos axum helpers (doubled-prefix server-fn probe) for in-process
# test launchers
leptos-utils = { workspace = true }

# Gateway example for in-process HTTP tests
gateway-example = { path = "../gateway" }

Expand All @@ -99,6 +94,5 @@ chrono = { workspace = true }
uuid = { workspace = true }

[dev-dependencies]
# Anything extra that only the integration tests need (not the lib helpers).
# Currently empty — every dep that test binaries need is already a regular
# dependency, reachable through the library crate.
# Snapshot assertions are used only by integration-test binaries.
insta = { workspace = true, features = ["json"] }
8 changes: 5 additions & 3 deletions e2e-tests/src/common/chromium.rs
Original file line number Diff line number Diff line change
Expand Up @@ -171,9 +171,11 @@ pub async fn setup() -> Result<TestContext> {
}

/// Tear down a [`TestContext`] by closing the page and browser in reverse
/// creation order. Cleanup errors are logged via `eprintln!` (stderr,
/// captured by the test harness per-test and displayed only on failure)
/// but never mask the test assertion that already ran.
/// creation order.
///
/// Cleanup errors are logged via `eprintln!` (stderr, captured by the test
/// harness per-test and displayed only on failure), but never mask the test
/// assertion that already ran.
pub async fn teardown(ctx: TestContext) {
let TestContext {
mut browser,
Expand Down
2 changes: 1 addition & 1 deletion e2e-tests/src/common/db.rs
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ impl std::fmt::Debug for TestEnv {
f.debug_struct("TestEnv")
.field("pool", &self.pool)
.field("connection_string", &self.connection_string)
.field("container", &"<container>")
.field("_container", &"<container>")
.finish()
}
}
Expand Down
2 changes: 1 addition & 1 deletion e2e-tests/tests/live_search_test.rs
Original file line number Diff line number Diff line change
Expand Up @@ -323,7 +323,7 @@ async fn server_fn_search_returns_results_via_http() -> anyhow::Result<()> {
let results = json
.as_array()
.context("server fn response should be a JSON array")?;
assert!(!results.is_empty());
assert_ne!(results.len(), 0, "search should return at least one result");
assert!(results.iter().any(|row| {
row.get("title")
.and_then(serde_json::Value::as_str)
Expand Down
Loading
Loading