- Add ESLint configuration for Next.js and TypeScript support. - Create Next.js configuration file with standalone output option. - Initialize package.json with scripts for development, build, and linting. - Set up PostCSS configuration for Tailwind CSS. - Add SVG assets for UI components. - Create TypeScript configuration for strict type checking and module resolution.
31 lines
945 B
Rust
31 lines
945 B
Rust
use axum::{http::StatusCode, Router};
|
|
use http_body_util::BodyExt;
|
|
use serde_json::Value;
|
|
|
|
use utils::testing::{make_get_request, make_post_request};
|
|
|
|
pub(super) async fn test_post_blogs(app: Router) {
|
|
let response = make_post_request(
|
|
app,
|
|
"/blogs",
|
|
r#"{"author_id": 1, "title": "title", "content": "test"}"#.to_owned(),
|
|
)
|
|
.await;
|
|
|
|
assert_eq!(response.status(), StatusCode::CREATED);
|
|
}
|
|
|
|
pub(super) async fn test_get_blogs(app: Router) {
|
|
let response = make_get_request(app, "/blogs").await;
|
|
assert_eq!(response.status(), StatusCode::OK);
|
|
|
|
let body = response.into_body().collect().await.unwrap().to_bytes();
|
|
let result: Value = serde_json::from_slice(&body).unwrap();
|
|
assert_eq!(result["blogs"].as_array().unwrap().len(), 1);
|
|
|
|
let blog = &result["blogs"][0];
|
|
assert_eq!(blog["author_id"], 1);
|
|
assert_eq!(blog["title"], "title");
|
|
assert_eq!(blog["content"], "test");
|
|
}
|