mirror of
https://github.com/fafhrd91/actix-web
synced 2025-01-18 05:41:50 +01:00
When using codegen with paths that have parameters then only the first endpoint resolves (#842)
This commit is contained in:
parent
bba90d7f22
commit
80f4ef9aac
@ -1,7 +1,7 @@
|
|||||||
use actix_http::HttpService;
|
use actix_http::HttpService;
|
||||||
use actix_http_test::TestServer;
|
use actix_http_test::TestServer;
|
||||||
use actix_web::{http, App, HttpResponse, Responder};
|
use actix_web::{http, App, HttpResponse, Responder, web::{Path}};
|
||||||
use actix_web_codegen::{get, post, put};
|
use actix_web_codegen::{get, post, put, delete};
|
||||||
use futures::{future, Future};
|
use futures::{future, Future};
|
||||||
|
|
||||||
#[get("/test")]
|
#[get("/test")]
|
||||||
@ -29,6 +29,45 @@ fn auto_sync() -> impl Future<Item = HttpResponse, Error = actix_web::Error> {
|
|||||||
future::ok(HttpResponse::Ok().finish())
|
future::ok(HttpResponse::Ok().finish())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[put("/test/{param}")]
|
||||||
|
fn put_param_test(_: Path<String>) -> impl Responder {
|
||||||
|
HttpResponse::Created()
|
||||||
|
}
|
||||||
|
|
||||||
|
#[delete("/test/{param}")]
|
||||||
|
fn delete_param_test(_: Path<String>) -> impl Responder {
|
||||||
|
HttpResponse::NoContent()
|
||||||
|
}
|
||||||
|
|
||||||
|
#[get("/test/{param}")]
|
||||||
|
fn get_param_test(_: Path<String>) -> impl Responder {
|
||||||
|
HttpResponse::Ok()
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn test_params() {
|
||||||
|
let mut srv = TestServer::new(|| {
|
||||||
|
HttpService::new(
|
||||||
|
App::new()
|
||||||
|
.service(get_param_test)
|
||||||
|
.service(put_param_test)
|
||||||
|
.service(delete_param_test),
|
||||||
|
)
|
||||||
|
});
|
||||||
|
|
||||||
|
let request = srv.request(http::Method::GET, srv.url("/test/it"));
|
||||||
|
let response = srv.block_on(request.send()).unwrap();
|
||||||
|
assert_eq!(response.status(), http::StatusCode::OK);
|
||||||
|
|
||||||
|
let request = srv.request(http::Method::PUT, srv.url("/test/it"));
|
||||||
|
let response = srv.block_on(request.send()).unwrap();
|
||||||
|
assert_eq!(response.status(), http::StatusCode::CREATED);
|
||||||
|
|
||||||
|
let request = srv.request(http::Method::DELETE, srv.url("/test/it"));
|
||||||
|
let response = srv.block_on(request.send()).unwrap();
|
||||||
|
assert_eq!(response.status(), http::StatusCode::NO_CONTENT);
|
||||||
|
}
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_body() {
|
fn test_body() {
|
||||||
let mut srv = TestServer::new(|| {
|
let mut srv = TestServer::new(|| {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user