Skip to content

Commit d1d3241

Browse files
committed
add tests for examples (pre rocket 0.6)
1 parent 465e14b commit d1d3241

File tree

18 files changed

+157
-7
lines changed

18 files changed

+157
-7
lines changed

examples/custom_schema/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,6 @@ rocket_okapi = { path = "../../rocket-okapi", features = [
1010
"swagger",
1111
"rapidoc",
1212
] }
13-
serde = { workspace = true }
13+
serde = { workspace = true, features = ["derive"] }
1414
serde_json = { workspace = true }
1515
schemars = "1.1.0"

examples/custom_schema/src/main.rs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,3 +131,23 @@ fn custom_openapi_spec() -> OpenApi {
131131
..Default::default()
132132
}
133133
}
134+
135+
#[cfg(test)]
136+
mod tests {
137+
use super::*;
138+
use rocket_okapi::openapi_get_spec;
139+
140+
#[test]
141+
fn custom_spec_contains_home_path() {
142+
let spec = custom_openapi_spec();
143+
assert!(spec.info.title.contains("The best API ever"));
144+
assert!(spec.paths.keys().any(|k| k.contains("/home")));
145+
}
146+
147+
#[test]
148+
fn post_routes_spec_contains_post_path() {
149+
let settings = rocket_okapi::settings::OpenApiSettings::default();
150+
let spec = rocket_okapi::openapi_get_spec![settings: post::create_post, post::get_post];
151+
assert!(spec.paths.keys().any(|k| k.contains("/")));
152+
}
153+
}

examples/dyn_templates/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,6 @@ rocket_okapi = { path = "../../rocket-okapi", features = [
1212
"rapidoc",
1313
"rocket_dyn_templates",
1414
] }
15-
serde = { workspace = true }
15+
serde = { workspace = true, features = ["derive"] }
1616
rocket_dyn_templates = { workspace = true, features = ["handlebars"] }
1717
handlebars = "5.0.0"

examples/dyn_templates/src/main.rs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,3 +46,15 @@ async fn main() {
4646
Err(err) => println!("Rocket had an error: {err}"),
4747
};
4848
}
49+
50+
#[cfg(test)]
51+
mod tests {
52+
use super::*;
53+
use rocket_okapi::openapi_get_spec;
54+
55+
#[test]
56+
fn spec_contains_page_route() {
57+
let spec = openapi_get_spec![get_page];
58+
assert!(spec.paths.keys().any(|k| k.contains("/page")));
59+
}
60+
}

examples/json-web-api/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,5 +10,5 @@ rocket_okapi = { path = "../../rocket-okapi", features = [
1010
"swagger",
1111
"rapidoc",
1212
] }
13-
serde = { workspace = true }
13+
serde = { workspace = true, features = ["derive"] }
1414
schemars = "1.1.0"

examples/json-web-api/src/main.rs

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,3 +135,24 @@ async fn main() {
135135
Err(err) => println!("Rocket had an error: {err}"),
136136
};
137137
}
138+
139+
#[cfg(test)]
140+
mod tests {
141+
use super::*;
142+
use rocket_okapi::openapi_get_spec;
143+
144+
#[test]
145+
fn generated_spec_contains_user_routes() {
146+
let spec = openapi_get_spec![
147+
get_all_users,
148+
get_user,
149+
get_user_by_name,
150+
create_user,
151+
create_post_by_query
152+
];
153+
assert!(spec.paths.keys().any(|k| k.contains("/user")));
154+
assert!(spec.paths.keys().any(|k| k.contains("post_by_query")));
155+
// The `hidden` endpoint is marked skip
156+
assert!(!spec.paths.keys().any(|k| k.contains("/hidden")));
157+
}
158+
}

examples/nested/Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,6 @@ edition = "2021"
1010
[dependencies]
1111
rocket = { workspace = true }
1212
rocket_okapi = { path = "../../rocket-okapi", features = ["rapidoc"] }
13-
serde = { workspace = true }
13+
serde = { workspace = true, features = ["derive"] }
1414
serde_json = { workspace = true }
1515
schemars = "1.1.0"

examples/nested/src/main.rs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,3 +121,17 @@ fn custom_openapi_spec() -> OpenApi {
121121
..Default::default()
122122
}
123123
}
124+
125+
#[cfg(test)]
126+
mod tests {
127+
use super::*;
128+
use rocket_okapi::openapi_get_spec;
129+
use rocket_okapi::settings::OpenApiSettings;
130+
131+
#[test]
132+
fn nested_api_spec_contains_paths() {
133+
let settings = OpenApiSettings::default();
134+
let (_routes, spec) = api::get_routes_and_docs(&settings);
135+
assert!(spec.paths.keys().any(|k| k.contains("/")));
136+
}
137+
}

examples/raw_identifiers/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,4 +8,5 @@ edition = "2021"
88

99
[dependencies]
1010
rocket = { workspace = true }
11+
serde = { workspace = true, features = ["derive"] }
1112
rocket_okapi = { path = "../../rocket-okapi", features = ["rapidoc", "swagger"] }

examples/raw_identifiers/src/main.rs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,3 +37,15 @@ fn rocket() -> _ {
3737
}),
3838
)
3939
}
40+
41+
#[cfg(test)]
42+
mod tests {
43+
use super::*;
44+
use rocket_okapi::openapi_get_spec;
45+
46+
#[test]
47+
fn raw_identifier_route_present() {
48+
let spec = openapi_get_spec![hello];
49+
assert!(spec.paths.keys().any(|k| k.contains("/hello")));
50+
}
51+
}

0 commit comments

Comments
 (0)