From b4f2a925c7d8b7360aa296bf182c298633bbf572 Mon Sep 17 00:00:00 2001 From: Evan Almloff Date: Mon, 5 Feb 2024 15:04:49 -0600 Subject: [PATCH] fix fullstack playwright test features --- Cargo.lock | 3 - Cargo.toml | 2 +- packages/dioxus/Cargo.toml | 9 ++- packages/fullstack/Cargo.toml | 2 +- .../fullstack/examples/axum-auth/src/main.rs | 2 +- .../examples/axum-desktop/src/server.rs | 2 +- .../examples/static-hydrated/src/main.rs | 2 +- .../playwright-tests/fullstack/.gitignore | 1 + .../playwright-tests/fullstack/Cargo.toml | 7 +- .../playwright-tests/fullstack/src/main.rs | 51 ++------------ .../playwright-report/index.html | 69 +++++++++++++++++++ .../playwright-tests/playwright.config.js | 2 +- packages/playwright-tests/web/.gitignore | 3 +- packages/server-macro/Cargo.toml | 2 +- packages/server-macro/src/lib.rs | 2 +- 15 files changed, 93 insertions(+), 66 deletions(-) create mode 100644 packages/playwright-tests/playwright-report/index.html diff --git a/Cargo.lock b/Cargo.lock index 8e38597ed..593bb7b5b 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2791,11 +2791,8 @@ dependencies = [ name = "dioxus-playwright-fullstack-test" version = "0.1.0" dependencies = [ - "axum 0.6.20", "dioxus", - "execute", "serde", - "tokio", ] [[package]] diff --git a/Cargo.toml b/Cargo.toml index e6cf5cc29..59be2995b 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -150,7 +150,7 @@ fullstack = ["dioxus/fullstack"] axum = ["dioxus/axum"] salvo = ["dioxus/salvo"] rocket = ["dioxus/rocket"] -server = ["dioxus/server"] +server = ["dioxus/axum"] default = ["dioxus/desktop"] web = ["dioxus/web"] collect-assets = ["manganis"] diff --git a/packages/dioxus/Cargo.toml b/packages/dioxus/Cargo.toml index 2959ea63d..fa1d2a4f6 100644 --- a/packages/dioxus/Cargo.toml +++ b/packages/dioxus/Cargo.toml @@ -47,12 +47,11 @@ fullstack = ["dioxus-fullstack", "dioxus-config-macro/fullstack", "serde", "diox desktop = ["dioxus-desktop", "dioxus-fullstack?/desktop", "dioxus-config-macro/desktop"] mobile = ["dioxus-mobile", "dioxus-fullstack?/mobile", "dioxus-config-macro/mobile"] web = ["dioxus-web", "dioxus-fullstack?/web", "dioxus-config-macro/web", "dioxus-router?/web"] -server = ["dioxus-fullstack?/server", "dioxus-config-macro/ssr", "dioxus-router?/ssr"] -ssr = ["dioxus-ssr"] +ssr = ["dioxus-ssr", "dioxus-router?/ssr", "dioxus-config-macro/ssr"] liveview = ["dioxus-liveview", "dioxus-config-macro/liveview", "dioxus-router?/liveview"] -axum = ["dioxus-fullstack?/axum", "dioxus-liveview?/axum"] -salvo = ["dioxus-fullstack?/salvo", "dioxus-liveview?/salvo"] -warp = ["dioxus-fullstack?/warp", "dioxus-liveview?/warp"] +axum = ["dioxus-fullstack?/axum", "ssr", "dioxus-liveview?/axum"] +salvo = ["dioxus-fullstack?/salvo", "ssr", "dioxus-liveview?/salvo"] +warp = ["dioxus-fullstack?/warp", "ssr", "dioxus-liveview?/warp"] rocket = ["dioxus-liveview?/rocket"] tui = ["dioxus-tui", "dioxus-config-macro/tui"] diff --git a/packages/fullstack/Cargo.toml b/packages/fullstack/Cargo.toml index 8be611eca..8e77e84fe 100644 --- a/packages/fullstack/Cargo.toml +++ b/packages/fullstack/Cargo.toml @@ -78,6 +78,6 @@ mobile = ["dioxus-mobile"] warp = ["dep:warp", "server"] axum = ["dep:axum", "tower-http", "server"] salvo = ["dep:salvo", "server", "http-body-util"] -server = ["server_fn/ssr", "dioxus_server_macro/ssr", "tokio", "tokio-util", "tokio-stream", "dioxus-ssr", "dioxus-ssr/incremental", "tower", "hyper", "http", "tower-layer", "anymap", "tracing-futures", "pin-project", "thiserror", "dioxus-cli-config"] +server = ["server_fn/ssr", "dioxus_server_macro/server", "tokio", "tokio-util", "tokio-stream", "dioxus-ssr", "dioxus-ssr/incremental", "tower", "hyper", "http", "tower-layer", "anymap", "tracing-futures", "pin-project", "thiserror", "dioxus-cli-config"] default-tls = ["server_fn/default-tls"] rustls = ["server_fn/rustls"] diff --git a/packages/fullstack/examples/axum-auth/src/main.rs b/packages/fullstack/examples/axum-auth/src/main.rs index 1a701825e..6d9084b7c 100644 --- a/packages/fullstack/examples/axum-auth/src/main.rs +++ b/packages/fullstack/examples/axum-auth/src/main.rs @@ -2,7 +2,7 @@ //! //! ```sh //! dx build --features web -//! cargo run --features ssr +//! cargo run --features server //! ``` #![allow(non_snake_case, unused)] diff --git a/packages/fullstack/examples/axum-desktop/src/server.rs b/packages/fullstack/examples/axum-desktop/src/server.rs index 0024e6830..0781db5fb 100644 --- a/packages/fullstack/examples/axum-desktop/src/server.rs +++ b/packages/fullstack/examples/axum-desktop/src/server.rs @@ -1,6 +1,6 @@ // Run with: // ```bash -// cargo run --bin server --features ssr +// cargo run --bin server --features server // ``` use axum_desktop::*; diff --git a/packages/fullstack/examples/static-hydrated/src/main.rs b/packages/fullstack/examples/static-hydrated/src/main.rs index 6a412979a..72bd6894b 100644 --- a/packages/fullstack/examples/static-hydrated/src/main.rs +++ b/packages/fullstack/examples/static-hydrated/src/main.rs @@ -2,7 +2,7 @@ //! //! ```sh //! dx build --features web --release -//! cargo run --features ssr +//! cargo run --features server //! ``` #![allow(unused)] diff --git a/packages/playwright-tests/fullstack/.gitignore b/packages/playwright-tests/fullstack/.gitignore index 6047329c6..4a7bcb809 100644 --- a/packages/playwright-tests/fullstack/.gitignore +++ b/packages/playwright-tests/fullstack/.gitignore @@ -1,2 +1,3 @@ +.dioxus dist target \ No newline at end of file diff --git a/packages/playwright-tests/fullstack/Cargo.toml b/packages/playwright-tests/fullstack/Cargo.toml index 9fe435edb..a18e74649 100644 --- a/packages/playwright-tests/fullstack/Cargo.toml +++ b/packages/playwright-tests/fullstack/Cargo.toml @@ -7,13 +7,10 @@ publish = false # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -dioxus = { workspace = true } -axum = { version = "0.6.12", optional = true } -tokio = { version = "1.27.0", features = ["full"], optional = true } +dioxus = { workspace = true, features = ["fullstack"] } serde = "1.0.159" -execute = "0.2.12" [features] default = [] -server = ["axum", "tokio", "dioxus/axum"] +server = ["dioxus/axum"] web = ["dioxus/web"] diff --git a/packages/playwright-tests/fullstack/src/main.rs b/packages/playwright-tests/fullstack/src/main.rs index 9cff076d2..495fe31f6 100644 --- a/packages/playwright-tests/fullstack/src/main.rs +++ b/packages/playwright-tests/fullstack/src/main.rs @@ -6,55 +6,18 @@ #![allow(non_snake_case)] use dioxus::prelude::*; -use serde::{Deserialize, Serialize}; fn main() { - #[cfg(feature = "web")] - dioxus_web::launch_with_props( - app, - get_root_props_from_document().unwrap_or_default(), - dioxus_web::Config::new().hydrate(true), - ); - #[cfg(feature = "ssr")] - { - // Start hot reloading - hot_reload_init!(dioxus_hot_reload::Config::new().with_rebuild_callback(|| { - execute::shell("dx build --features web") - .spawn() - .unwrap() - .wait() - .unwrap(); - execute::shell("cargo run --features ssr").spawn().unwrap(); - true - })); - - tokio::runtime::Runtime::new() - .unwrap() - .block_on(async move { - let addr = std::net::SocketAddr::from(([127, 0, 0, 1], 3333)); - axum::Server::bind(&addr) - .serve( - axum::Router::new() - .serve_dioxus_application( - "", - ServeConfigBuilder::new(app, AppProps { count: 12345 }).build(), - ) - .into_make_service(), - ) - .await - .unwrap(); - }); - } -} - -#[derive(Props, PartialEq, Debug, Default, Serialize, Deserialize, Clone)] -struct AppProps { - count: i32, + LaunchBuilder::fullstack() + .with_cfg(ssr! { + dioxus::fullstack::Config::default().addr(std::net::SocketAddr::from(([127, 0, 0, 1], 3333))) + }) + .launch(app); } #[allow(unused)] -fn app(props: AppProps) -> Element { - let mut count = use_signal(|| props.count); +fn app() -> Element { + let mut count = use_signal(|| 12345); let mut text = use_signal(|| "...".to_string()); rsx! { diff --git a/packages/playwright-tests/playwright-report/index.html b/packages/playwright-tests/playwright-report/index.html new file mode 100644 index 000000000..93ebc03fb --- /dev/null +++ b/packages/playwright-tests/playwright-report/index.html @@ -0,0 +1,69 @@ + + + + + + + + + Playwright Test Report + + + + +
+ + + + \ No newline at end of file diff --git a/packages/playwright-tests/playwright.config.js b/packages/playwright-tests/playwright.config.js index dcee8f0e4..f3c45a5d1 100644 --- a/packages/playwright-tests/playwright.config.js +++ b/packages/playwright-tests/playwright.config.js @@ -90,7 +90,7 @@ module.exports = defineConfig({ }, { cwd: path.join(process.cwd(), 'fullstack'), - command: 'cargo run --package dioxus-cli --release -- build --features web --release --skip-assets\ncargo run --release --features ssr', + command: 'cargo run --package dioxus-cli --release -- serve --platform fullstack --skip-assets', port: 3333, timeout: 20 * 60 * 1000, reuseExistingServer: !process.env.CI, diff --git a/packages/playwright-tests/web/.gitignore b/packages/playwright-tests/web/.gitignore index 849ddff3b..283c01d61 100644 --- a/packages/playwright-tests/web/.gitignore +++ b/packages/playwright-tests/web/.gitignore @@ -1 +1,2 @@ -dist/ +dist +target diff --git a/packages/server-macro/Cargo.toml b/packages/server-macro/Cargo.toml index a91cc626a..0234a5373 100644 --- a/packages/server-macro/Cargo.toml +++ b/packages/server-macro/Cargo.toml @@ -24,4 +24,4 @@ proc-macro = true [features] default = [] -ssr = ["server_fn_macro/ssr"] +server = ["server_fn_macro/ssr"] diff --git a/packages/server-macro/src/lib.rs b/packages/server-macro/src/lib.rs index e7b51f79b..0f1908851 100644 --- a/packages/server-macro/src/lib.rs +++ b/packages/server-macro/src/lib.rs @@ -123,7 +123,7 @@ pub fn server(args: proc_macro::TokenStream, s: TokenStream) -> TokenStream { Err(e) => e.to_compile_error().into(), Ok(tokens) => quote::quote! { #tokens - #[cfg(feature = "ssr")] + #[cfg(feature = "server")] #server_fn_path::inventory::submit! { ::dioxus::fullstack::prelude::ServerFnMiddleware { prefix: #struct_name::PREFIX,