diff options
Diffstat (limited to 'rust/tests/test_api_server.rs')
-rw-r--r-- | rust/tests/test_api_server.rs | 73 |
1 files changed, 70 insertions, 3 deletions
diff --git a/rust/tests/test_api_server.rs b/rust/tests/test_api_server.rs index 4c16d4df..6126a0a2 100644 --- a/rust/tests/test_api_server.rs +++ b/rust/tests/test_api_server.rs @@ -2,7 +2,11 @@ extern crate fatcat; extern crate fatcat_api; extern crate iron; extern crate iron_test; +extern crate diesel; +use fatcat::database_schema::*; +use fatcat::api_helpers::*; +use diesel::prelude::*; use iron::{status, Headers}; use iron::mime::Mime; use iron::headers::ContentType; @@ -10,7 +14,7 @@ use iron_test::{request, response}; #[test] fn test_basics() { - let server = fatcat::server().unwrap(); + let server = fatcat::test_server().unwrap(); let router = fatcat_api::router(server); let response = request::get( @@ -32,7 +36,7 @@ fn test_basics() { #[test] fn test_lookups() { - let server = fatcat::server().unwrap(); + let server = fatcat::test_server().unwrap(); let router = fatcat_api::router(server); let response = request::get( @@ -56,7 +60,7 @@ fn test_lookups() { #[test] fn test_post_container() { - let server = fatcat::server().unwrap(); + let server = fatcat::test_server().unwrap(); let router = fatcat_api::router(server); let mut headers = Headers::new(); let mime: Mime = "application/json".parse().unwrap(); @@ -74,3 +78,66 @@ fn test_post_container() { println!("{}", body); //assert!(body.contains("test journal")); } + +#[test] +fn test_accept_editgroup() { + let server = fatcat::test_server().unwrap(); + let conn = server.db_pool.get().expect("db_pool error"); + let router = fatcat_api::router(server); + let mut headers = Headers::new(); + let mime: Mime = "application/json".parse().unwrap(); + headers.set(ContentType(mime)); + + let editgroup_id = get_or_create_editgroup(1, &conn).unwrap(); + + let c: i64 = container_ident::table + .filter(container_ident::is_live.eq(false)) + .count() + .get_result(&conn).unwrap(); + assert_eq!(c, 0); + let c: i64 = changelog::table + .filter(changelog::editgroup_id.eq(editgroup_id)) + .count() + .get_result(&conn).unwrap(); + assert_eq!(c, 0); + + let response = request::post( + "http://localhost:9411/v0/container", + headers.clone(), + &format!("{{\"name\": \"test journal 1\", \"editgroup_id\": {}}}", editgroup_id), + &router, + ).unwrap(); + assert_eq!(response.status, Some(status::Created)); + let response = request::post( + "http://localhost:9411/v0/container", + headers.clone(), + &format!("{{\"name\": \"test journal 2\", \"editgroup_id\": {}}}", editgroup_id), + &router, + ).unwrap(); + assert_eq!(response.status, Some(status::Created)); + + let c: i64 = container_ident::table + .filter(container_ident::is_live.eq(false)) + .count() + .get_result(&conn).unwrap(); + assert_eq!(c, 2); + + let response = request::post( + &format!("http://localhost:9411/v0/editgroup/{}/accept", editgroup_id), + headers.clone(), + "", + &router, + ).unwrap(); + assert_eq!(response.status, Some(status::Ok)); + + let c: i64 = container_ident::table + .filter(container_ident::is_live.eq(false)) + .count() + .get_result(&conn).unwrap(); + assert_eq!(c, 0); + let c: i64 = changelog::table + .filter(changelog::editgroup_id.eq(editgroup_id)) + .count() + .get_result(&conn).unwrap(); + assert_eq!(c, 1); +} |