diff --git a/unmnemonic_devices_vrs/Cargo.lock b/unmnemonic_devices_vrs/Cargo.lock index 7add7475..2b522e0f 100644 --- a/unmnemonic_devices_vrs/Cargo.lock +++ b/unmnemonic_devices_vrs/Cargo.lock @@ -99,18 +99,19 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" [[package]] name = "axum" -version = "0.6.20" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b829e4e32b91e643de6eafe82b1d90675f5874230191a4ffbc1b336dec4d6bf" +checksum = "d09dbe0e490df5da9d69b36dca48a76635288a82f92eca90024883a56202026d" dependencies = [ "async-trait", "axum-core", - "bitflags 1.3.2", "bytes", "futures-util", - "http", - "http-body", - "hyper", + "http 1.0.0", + "http-body 1.0.0", + "http-body-util", + "hyper 1.1.0", + "hyper-util", "itoa", "matchit", "memchr", @@ -132,17 +133,20 @@ dependencies = [ [[package]] name = "axum-core" -version = "0.3.4" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c" +checksum = "e87c8503f93e6d144ee5690907ba22db7ba79ab001a932ab99034f0fe836b3df" dependencies = [ "async-trait", "bytes", "futures-util", - "http", - "http-body", + "http 1.0.0", + "http-body 1.0.0", + "http-body-util", "mime", + "pin-project-lite", "rustversion", + "sync_wrapper", "tower-layer", "tower-service", "tracing", @@ -150,20 +154,20 @@ dependencies = [ [[package]] name = "axum-extra" -version = "0.8.0" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ab90e7b70bea63a153137162affb6a0bce26b584c24a4c7885509783e2cf30b" +checksum = "881348a37b079994894b6e5e46edcc4b8a60e1c0333669a65b810abeed780598" dependencies = [ "axum", "axum-core", "bytes", "futures-util", - "http", - "http-body", + "http 1.0.0", + "http-body 1.0.0", + "http-body-util", "mime", "pin-project-lite", "serde", - "tokio", "tower", "tower-layer", "tower-service", @@ -171,9 +175,9 @@ dependencies = [ [[package]] name = "axum-macros" -version = "0.3.8" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdca6a10ecad987bda04e95606ef85a5417dcaac1a78455242d72e031e2b6b62" +checksum = "5a2edad600410b905404c594e2523549f1bcd4bded1e252c8f74524ccce0b867" dependencies = [ "heck", "proc-macro2", @@ -183,9 +187,9 @@ dependencies = [ [[package]] name = "axum-template" -version = "0.15.1" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f926c4ca412af0a88bd119a6d214b026a0c98d8c763eaead70032628d3d0a549" +checksum = "29e09d39390c641607a9aa85dab4f67f0bb5599866a614b6a66b938769315130" dependencies = [ "axum", "handlebars", @@ -797,7 +801,7 @@ dependencies = [ "futures-core", "futures-sink", "futures-util", - "http", + "http 0.2.9", "indexmap 1.9.3", "slab", "tokio", @@ -805,11 +809,30 @@ dependencies = [ "tracing", ] +[[package]] +name = "h2" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1d308f63daf4181410c242d34c11f928dcb3aa105852019e043c9d1f4e4368a" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http 1.0.0", + "indexmap 2.1.0", + "slab", + "tokio", + "tokio-util", + "tracing", +] + [[package]] name = "handlebars" -version = "4.3.6" +version = "5.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "035ef95d03713f2c347a72547b7cd38cbc9af7cd51e6099fb62d586d4a6dee3a" +checksum = "94eae21d01d20dabef65d8eda734d83df6e2dea8166788804be9bd6bc92448fa" dependencies = [ "log", "pest", @@ -820,16 +843,6 @@ dependencies = [ "walkdir", ] -[[package]] -name = "handlebars-concat" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d7f4fb2ed27a5dbf49a7a6928cadf981eacd68db44bf96f4ce0730af762b529" -dependencies = [ - "handlebars", - "serde_json", -] - [[package]] name = "hashbrown" version = "0.12.3" @@ -936,6 +949,17 @@ dependencies = [ "itoa", ] +[[package]] +name = "http" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b32afd38673a8016f7c9ae69e5af41a58f81b1d31689040f2f1959594ce194ea" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + [[package]] name = "http-body" version = "0.4.5" @@ -943,15 +967,38 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" dependencies = [ "bytes", - "http", + "http 0.2.9", + "pin-project-lite", +] + +[[package]] +name = "http-body" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1cac85db508abc24a2e48553ba12a996e87244a0395ce011e62b37158745d643" +dependencies = [ + "bytes", + "http 1.0.0", +] + +[[package]] +name = "http-body-util" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41cb79eb393015dadd30fc252023adb0b2400a0caee0fa2a077e6e21a551e840" +dependencies = [ + "bytes", + "futures-util", + "http 1.0.0", + "http-body 1.0.0", "pin-project-lite", ] [[package]] name = "http-range-header" -version = "0.3.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bfe8eed0a9285ef776bb792479ea3834e8b94e13d615c2f66d03dd50a435a29" +checksum = "3ce4ef31cda248bbdb6e6820603b82dfcd9e833db65a43e997a0ccec777d11fe" [[package]] name = "http-types" @@ -963,7 +1010,7 @@ dependencies = [ "async-channel", "base64 0.13.1", "futures-lite", - "http", + "http 0.2.9", "infer", "pin-project-lite", "rand 0.7.3", @@ -996,20 +1043,39 @@ dependencies = [ "futures-channel", "futures-core", "futures-util", - "h2", - "http", - "http-body", + "h2 0.3.18", + "http 0.2.9", + "http-body 0.4.5", "httparse", "httpdate", "itoa", "pin-project-lite", - "socket2", + "socket2 0.4.9", "tokio", "tower-service", "tracing", "want", ] +[[package]] +name = "hyper" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb5aa53871fc917b1a9ed87b683a5d86db645e23acb32c2e0785a353e522fb75" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "h2 0.4.0", + "http 1.0.0", + "http-body 1.0.0", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "tokio", +] + [[package]] name = "hyper-tls" version = "0.5.0" @@ -1017,12 +1083,30 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d6183ddfa99b85da61a140bea0efc93fdf56ceaa041b37d553518030827f9905" dependencies = [ "bytes", - "hyper", + "hyper 0.14.25", "native-tls", "tokio", "tokio-native-tls", ] +[[package]] +name = "hyper-util" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bdea9aac0dbe5a9240d68cfd9501e2db94222c6dc06843e06640b9e07f0fdc67" +dependencies = [ + "bytes", + "futures-channel", + "futures-util", + "http 1.0.0", + "http-body 1.0.0", + "hyper 1.1.0", + "pin-project-lite", + "socket2 0.5.5", + "tokio", + "tracing", +] + [[package]] name = "iana-time-zone" version = "0.1.54" @@ -1151,84 +1235,11 @@ dependencies = [ "spin 0.5.2", ] -[[package]] -name = "lexical" -version = "6.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7aefb36fd43fef7003334742cbf77b243fcd36418a1d1bdd480d613a67968f6" -dependencies = [ - "lexical-core", -] - -[[package]] -name = "lexical-core" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cde5de06e8d4c2faabc400238f9ae1c74d5412d03a7bd067645ccbc47070e46" -dependencies = [ - "lexical-parse-float", - "lexical-parse-integer", - "lexical-util", - "lexical-write-float", - "lexical-write-integer", -] - -[[package]] -name = "lexical-parse-float" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "683b3a5ebd0130b8fb52ba0bdc718cc56815b6a097e28ae5a6997d0ad17dc05f" -dependencies = [ - "lexical-parse-integer", - "lexical-util", - "static_assertions", -] - -[[package]] -name = "lexical-parse-integer" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d0994485ed0c312f6d965766754ea177d07f9c00c9b82a5ee62ed5b47945ee9" -dependencies = [ - "lexical-util", - "static_assertions", -] - -[[package]] -name = "lexical-util" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5255b9ff16ff898710eb9eb63cb39248ea8a5bb036bea8085b1a767ff6c4e3fc" -dependencies = [ - "static_assertions", -] - -[[package]] -name = "lexical-write-float" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accabaa1c4581f05a3923d1b4cfd124c329352288b7b9da09e766b0668116862" -dependencies = [ - "lexical-util", - "lexical-write-integer", - "static_assertions", -] - -[[package]] -name = "lexical-write-integer" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1b6f3d1f4422866b68192d62f77bc5c700bee84f3069f2469d7bc8c77852446" -dependencies = [ - "lexical-util", - "static_assertions", -] - [[package]] name = "libc" -version = "0.2.140" +version = "0.2.151" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99227334921fae1a979cf0bfdfcc6b3e5ce376ef57e16fb6fb3ea2ed6095f80c" +checksum = "302d7ab3130588088d277783b1e2d2e10c9e9e4a16dd9050e6ec93fb3e7048f4" [[package]] name = "libm" @@ -1946,10 +1957,10 @@ dependencies = [ "encoding_rs", "futures-core", "futures-util", - "h2", - "http", - "http-body", - "hyper", + "h2 0.3.18", + "http 0.2.9", + "http-body 0.4.5", + "hyper 0.14.25", "hyper-tls", "ipnet", "js-sys", @@ -2097,29 +2108,6 @@ dependencies = [ "serde_derive", ] -[[package]] -name = "serde-querystring" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce88f8e75d0920545b35b78775e0927137337401f65b01326ce299734885fd21" -dependencies = [ - "lexical", - "serde", -] - -[[package]] -name = "serde-querystring-axum" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a25072aece012bc63db3cd2e809ef2ee34677438b5c21e0431010461e0cbd77b" -dependencies = [ - "async-trait", - "axum-core", - "http", - "serde", - "serde-querystring", -] - [[package]] name = "serde_derive" version = "1.0.158" @@ -2264,6 +2252,16 @@ dependencies = [ "winapi", ] +[[package]] +name = "socket2" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b5fac59a5cb5dd637972e5fca70daf0523c9067fcdc4842f053dae04a18f8e9" +dependencies = [ + "libc", + "windows-sys 0.48.0", +] + [[package]] name = "speculoos" version = "0.11.0" @@ -2512,12 +2510,6 @@ dependencies = [ "uuid", ] -[[package]] -name = "static_assertions" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" - [[package]] name = "string_cache" version = "0.8.7" @@ -2681,7 +2673,7 @@ dependencies = [ "parking_lot", "pin-project-lite", "signal-hook-registry", - "socket2", + "socket2 0.4.9", "tokio-macros", "windows-sys 0.45.0", ] @@ -2784,16 +2776,16 @@ dependencies = [ [[package]] name = "tower-http" -version = "0.4.0" +version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d1d42a9b3f3ec46ba828e8d376aec14592ea199f70a06a548587ecd1c4ab658" +checksum = "09e12e6351354851911bdf8c2b8f2ab15050c567d70a8b9a37ae7b8301a4080d" dependencies = [ - "bitflags 1.3.2", + "bitflags 2.4.1", "bytes", - "futures-core", "futures-util", - "http", - "http-body", + "http 1.0.0", + "http-body 1.0.0", + "http-body-util", "http-range-header", "httpdate", "mime", @@ -2960,13 +2952,11 @@ dependencies = [ "bcrypt", "chrono", "handlebars", - "handlebars-concat", - "http", + "http 1.0.0", "mime", "reqwest", "select", "serde", - "serde-querystring-axum", "serde_json", "serde_urlencoded", "speculoos", @@ -3372,7 +3362,7 @@ dependencies = [ "futures", "futures-timer", "http-types", - "hyper", + "hyper 0.14.25", "log", "once_cell", "regex", diff --git a/unmnemonic_devices_vrs/Cargo.toml b/unmnemonic_devices_vrs/Cargo.toml index 48546441..d4e7f12f 100644 --- a/unmnemonic_devices_vrs/Cargo.toml +++ b/unmnemonic_devices_vrs/Cargo.toml @@ -11,17 +11,17 @@ path = "src/main.rs" name = "unmnemonic_devices_vrs" [dependencies] -axum = { version = "0.6", features = ["tracing"] } -axum-template = { version = "0.15", features = ["handlebars"] } +axum = { version = "0.7", features = ["tracing"] } +axum-template = { version = "2", features = ["handlebars"] } bcrypt = "0.15" chrono = { version = "0.4.22", default-features = false, features = ["clock"] } -handlebars = { version = "4", features = ["dir_source"] } -http = "0.2.9" +handlebars = { version = "5", features = ["dir_source"] } +http = "1" mime = "0.3.16" reqwest = { version = "0.11", features = ["json"] } tokio = { version = "1.0", features = ["full"] } toml = "0.7.3" -tower-http = { version = "0.4", features = ["fs", "trace"] } +tower-http = { version = "0.5", features = ["fs", "trace"] } tracing = "0.1.35" tracing-subscriber = { version = "0.3.17", features = ["env-filter"] } select = "0.6" @@ -37,10 +37,8 @@ sqlx = { version = "0.7.2", features = [ ] } urlencoding = "2.1.2" base64 = "0.21.4" -axum-macros = "0.3.8" -axum-extra = "0.8.0" -handlebars-concat = "0.1.2" -serde-querystring-axum = "0.2.0" +axum-macros = "0.4" +axum-extra = "0.9" url = { version = "2.4.1", features = ["serde"] } [dependencies.uuid] diff --git a/unmnemonic_devices_vrs/src/helpers.rs b/unmnemonic_devices_vrs/src/helpers.rs index fd2b747b..a3fa264d 100644 --- a/unmnemonic_devices_vrs/src/helpers.rs +++ b/unmnemonic_devices_vrs/src/helpers.rs @@ -3,7 +3,11 @@ use crate::Prompts; use crate::WrappedPrompts; use crate::WrappedPromptsSerialisation; use axum::response::Response; -use axum::{extract::State, http::StatusCode, middleware::Next}; +use axum::{ + extract::{Request, State}, + http::StatusCode, + middleware::Next, +}; use serde::{Deserialize, Serialize}; use sqlx::PgPool; use sqlx::Row; @@ -75,10 +79,10 @@ struct CallParams { call_sid: Option, } -pub async fn store_call_path_middleware( +pub async fn store_call_path_middleware( State(state): State, - req: axum::http::Request, - next: Next, + req: Request, + next: Next, ) -> Result { if req.method() == axum::http::Method::GET { if let Some(query) = req.uri().query() { diff --git a/unmnemonic_devices_vrs/src/lib.rs b/unmnemonic_devices_vrs/src/lib.rs index 2fbdbd44..5a283309 100644 --- a/unmnemonic_devices_vrs/src/lib.rs +++ b/unmnemonic_devices_vrs/src/lib.rs @@ -16,8 +16,7 @@ use axum::{ Router, }; use axum_template::engine::Engine; -use handlebars::Handlebars; -use handlebars_concat::HandlebarsConcat; +use handlebars::{DirectorySourceOptions, Handlebars}; use helpers::{get_all_prompts, store_call_path_middleware}; use serde::Deserialize; use sqlx::PgPool; @@ -75,9 +74,15 @@ pub struct Prompts { pub async fn app(services: InjectableServices) -> Router { let mut hbs = Handlebars::new(); - hbs.register_templates_directory(".hbs", "src/templates") - .expect("Failed to register templates directory"); - hbs.register_helper("concat", Box::new(HandlebarsConcat)); + hbs.register_templates_directory( + "src/templates", + DirectorySourceOptions { + tpl_extension: ".hbs".to_string(), + hidden: false, + temporary: false, + }, + ) + .expect("Failed to register templates directory"); let prompts_string = fs::read_to_string("src/prompts.toml").expect("Failed to read the prompts file"); diff --git a/unmnemonic_devices_vrs/src/main.rs b/unmnemonic_devices_vrs/src/main.rs index ff57bc93..aeb1e32f 100644 --- a/unmnemonic_devices_vrs/src/main.rs +++ b/unmnemonic_devices_vrs/src/main.rs @@ -1,7 +1,7 @@ -use axum::Server; use sqlx::PgPool; use std::env; -use std::net::{SocketAddr, TcpListener}; +use std::net::SocketAddr; +use tokio::net::TcpListener; use tracing_subscriber::{layer::SubscriberExt, util::SubscriberInitExt}; use unmnemonic_devices_vrs::config::{ConfigProvider, EnvVarProvider}; use unmnemonic_devices_vrs::{app, InjectableServices}; @@ -15,7 +15,9 @@ async fn main() { let db = PgPool::connect(database_url.as_str()).await.unwrap(); let listener_address = "127.0.0.1:3000"; - let listener = TcpListener::bind(listener_address.parse::().unwrap()).unwrap(); + let listener = TcpListener::bind(listener_address.parse::().unwrap()) + .await + .expect("Failed to bind port 3000"); println!("unmnemonic devices VRS listening on {}", listener_address); @@ -30,16 +32,15 @@ async fn main() { .with(tracing_subscriber::fmt::layer()) .init(); - Server::from_tcp(listener) - .expect("Failed to listen") - .serve( - app(InjectableServices { - db, - twilio_address: config.twilio_url.to_string(), - }) - .await - .into_make_service(), - ) + axum::serve( + listener, + app(InjectableServices { + db, + twilio_address: config.twilio_url.to_string(), + }) .await - .expect("Failed to start server") + .into_make_service(), + ) + .await + .expect("Failed to start server") } diff --git a/unmnemonic_devices_vrs/src/render_xml.rs b/unmnemonic_devices_vrs/src/render_xml.rs index 4276f7de..f5680ac0 100644 --- a/unmnemonic_devices_vrs/src/render_xml.rs +++ b/unmnemonic_devices_vrs/src/render_xml.rs @@ -1,6 +1,6 @@ use crate::{WrappedPrompts, WrappedPromptsSerialisation}; use axum::{ - body::{Bytes, Full}, + body::Body, response::{IntoResponse, Response}, }; use axum_template::TemplateEngine; @@ -14,7 +14,7 @@ pub struct Xml(pub T); impl IntoResponse for Xml where - T: Into>, + T: Into, { fn into_response(self) -> Response { ( diff --git a/unmnemonic_devices_vrs/src/routes/root.rs b/unmnemonic_devices_vrs/src/routes/root.rs index 476ba345..57d860b3 100644 --- a/unmnemonic_devices_vrs/src/routes/root.rs +++ b/unmnemonic_devices_vrs/src/routes/root.rs @@ -7,7 +7,6 @@ use axum::{ use axum_template::Key; use base64::{engine::general_purpose, Engine as _}; use serde::{Deserialize, Serialize}; -use serde_querystring_axum::QueryString; use crate::{helpers::TwilioParams, render_xml::RenderXml, twilio_form::TwilioForm, AppState}; @@ -88,7 +87,7 @@ pub struct RootData { pub async fn get_root( Key(key): Key, State(state): State, - params: QueryString, + params: Query, ) -> impl IntoResponse { sqlx::query!( r#" diff --git a/unmnemonic_devices_vrs/src/routes/teams.rs b/unmnemonic_devices_vrs/src/routes/teams.rs index f58bb982..8303cbb1 100644 --- a/unmnemonic_devices_vrs/src/routes/teams.rs +++ b/unmnemonic_devices_vrs/src/routes/teams.rs @@ -1,12 +1,11 @@ use axum::{ - extract::{Path, State}, + extract::{Path, Query, State}, response::{IntoResponse, Redirect}, Form, }; use axum_template::Key; use base64::{engine::general_purpose, Engine as _}; use serde::Serialize; -use serde_querystring_axum::QueryString; use sqlx::types::Uuid; use std::env; @@ -166,7 +165,7 @@ pub async fn get_team( Key(key): Key, Path(id): Path, State(state): State, - params: QueryString, + params: Query, ) -> impl IntoResponse { sqlx::query!( r#" diff --git a/unmnemonic_devices_vrs/tests/common.rs b/unmnemonic_devices_vrs/tests/common.rs index 86fb55f0..c16de394 100644 --- a/unmnemonic_devices_vrs/tests/common.rs +++ b/unmnemonic_devices_vrs/tests/common.rs @@ -1,9 +1,8 @@ pub mod helpers { - use axum::Server; use base64::{engine::general_purpose, Engine as _}; use sqlx::PgPool; use std::env; - use std::net::TcpListener; + use tokio::net::TcpListener; use unmnemonic_devices_vrs::config::{ConfigProvider, EnvVarProvider}; use unmnemonic_devices_vrs::{app, InjectableServices}; use wiremock::matchers::any; @@ -14,14 +13,17 @@ pub mod helpers { } pub async fn spawn_app(services: InjectableServices) -> TestApp { - let listener = TcpListener::bind("127.0.0.1:0").expect("Failed to bind random port"); + let listener = TcpListener::bind("127.0.0.1:0") + .await + .expect("Failed to bind random port"); let port = listener.local_addr().unwrap().port(); let address = format!("http://127.0.0.1:{}", port); - let server = Server::from_tcp(listener) - .expect("Failed to listen") - .serve(app(services).await.into_make_service()); - let _ = tokio::spawn(server); + tokio::spawn(async move { + axum::serve(listener, app(services).await.into_make_service()) + .await + .unwrap(); + }); TestApp { address } } diff --git a/unmnemonic_devices_vrs/tests/voice/recordings_prompts.rs b/unmnemonic_devices_vrs/tests/voice/recordings_prompts.rs index 47c1b5df..cf985e78 100644 --- a/unmnemonic_devices_vrs/tests/voice/recordings_prompts.rs +++ b/unmnemonic_devices_vrs/tests/voice/recordings_prompts.rs @@ -130,7 +130,7 @@ async fn get_character_prompts_404s_for_unknown_character(db: PgPool) { .await .expect("Failed to execute request."); - assert_eq!(response.status(), http::StatusCode::NOT_FOUND); + assert_eq!(response.status(), 404); } #[sqlx::test(fixtures("schema", "teams"))]