test: Add trybuild tests for codegen visibility

This commit is contained in:
Cobalt 2022-03-29 00:07:39 +02:00
parent 1613f830e6
commit b2cc95292d
No known key found for this signature in database
GPG Key ID: B62E03F0AD0E3B92
4 changed files with 55 additions and 0 deletions

View File

@ -6,6 +6,9 @@ fn compile_macros() {
t.pass("tests/trybuild/simple.rs");
t.compile_fail("tests/trybuild/simple-fail.rs");
t.pass("tests/trybuild/visibility-ok.rs");
t.compile_fail("tests/trybuild/visibility-fail.rs");
t.pass("tests/trybuild/route-ok.rs");
t.compile_fail("tests/trybuild/route-missing-method-fail.rs");
t.compile_fail("tests/trybuild/route-duplicate-method-fail.rs");

View File

@ -0,0 +1,20 @@
use actix_web::App;
mod config {
use actix_web_codegen::*;
use actix_web::{Responder, HttpResponse};
#[get("/config")]
async fn config() -> impl Responder {
HttpResponse::Ok()
}
}
#[actix_web::main]
async fn main() {
let srv = actix_test::start(|| App::new().service(config::config));
let request = srv.get("/config");
let response = request.send().await.unwrap();
assert!(response.status().is_success());
}

View File

@ -0,0 +1,12 @@
error[E0603]: unit struct `config` is private
--> tests/trybuild/visibility-fail.rs:15:63
|
15 | let srv = actix_test::start(|| App::new().service(config::config));
| ^^^^^^ private unit struct
|
note: the unit struct `config` is defined here
--> tests/trybuild/visibility-fail.rs:7:5
|
7 | #[get("/config")]
| ^^^^^^^^^^^^^^^^^
= note: this error originates in the attribute macro `get` (in Nightly builds, run with -Z macro-backtrace for more info)

View File

@ -0,0 +1,20 @@
use actix_web::App;
mod config {
use actix_web_codegen::*;
use actix_web::{Responder, HttpResponse};
#[get("/config")]
pub async fn config() -> impl Responder {
HttpResponse::Ok()
}
}
#[actix_web::main]
async fn main() {
let srv = actix_test::start(|| App::new().service(config::config));
let request = srv.get("/config");
let response = request.send().await.unwrap();
assert!(response.status().is_success());
}