fix fullstack playwright test features

This commit is contained in:
Evan Almloff 2024-02-05 15:04:49 -06:00
parent 1b7c31792e
commit b4f2a925c7
15 changed files with 93 additions and 66 deletions

3
Cargo.lock generated
View file

@ -2791,11 +2791,8 @@ dependencies = [
name = "dioxus-playwright-fullstack-test"
version = "0.1.0"
dependencies = [
"axum 0.6.20",
"dioxus",
"execute",
"serde",
"tokio",
]
[[package]]

View file

@ -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"]

View file

@ -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"]

View file

@ -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"]

View file

@ -2,7 +2,7 @@
//!
//! ```sh
//! dx build --features web
//! cargo run --features ssr
//! cargo run --features server
//! ```
#![allow(non_snake_case, unused)]

View file

@ -1,6 +1,6 @@
// Run with:
// ```bash
// cargo run --bin server --features ssr
// cargo run --bin server --features server
// ```
use axum_desktop::*;

View file

@ -2,7 +2,7 @@
//!
//! ```sh
//! dx build --features web --release
//! cargo run --features ssr
//! cargo run --features server
//! ```
#![allow(unused)]

View file

@ -1,2 +1,3 @@
.dioxus
dist
target

View file

@ -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"]

View file

@ -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! {

File diff suppressed because one or more lines are too long

View file

@ -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,

View file

@ -1 +1,2 @@
dist/
dist
target

View file

@ -24,4 +24,4 @@ proc-macro = true
[features]
default = []
ssr = ["server_fn_macro/ssr"]
server = ["server_fn_macro/ssr"]

View file

@ -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,