pub fn gen(_pascal: &str, snake: &str) -> String {
format!(
r#"mod common;
#[tokio::test]
#[ignore = "requires running database"]
async fn test_{snake}_index() {{
let app = common::TestApp::boot().await;
let res = app.client.get("/api/v1/{snake}s").await;
res.assert_status(200);
}}
#[tokio::test]
#[ignore = "requires running database"]
async fn test_{snake}_show() {{
let app = common::TestApp::boot().await;
let res = app.client.get("/api/v1/{snake}s/1").await;
res.assert_status(200);
}}
#[tokio::test]
#[ignore = "requires running database"]
async fn test_{snake}_store() {{
let app = common::TestApp::boot().await;
let res = app.client.post("/api/v1/{snake}s", serde_json::json!({{}})).await;
res.assert_status(201);
}}
#[tokio::test]
#[ignore = "requires running database"]
async fn test_{snake}_update() {{
let app = common::TestApp::boot().await;
let res = app.client.put("/api/v1/{snake}s/1", serde_json::json!({{}})).await;
res.assert_status(200);
}}
#[tokio::test]
#[ignore = "requires running database"]
async fn test_{snake}_destroy() {{
let app = common::TestApp::boot().await;
let res = app.client.delete("/api/v1/{snake}s/1").await;
res.assert_status(204);
}}
"#
)
}