Skip to content

Commit 3a4ec77

Browse files
committed
e2eテストで#[sql::test]を使うようにした
1 parent aadf9ca commit 3a4ec77

12 files changed

+101
-79
lines changed

atcoder-problems-backend/Cargo.lock

Lines changed: 23 additions & 11 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

atcoder-problems-backend/Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ futures-util = "0.3.23"
3434

3535
[dev-dependencies]
3636
httpmock = "0.6.6"
37+
sqlx = { version = "0.6.2", features = ["postgres", "runtime-tokio-rustls"] }
3738

3839
[workspace]
3940
members = ["sql-client", "atcoder-client"]

atcoder-problems-backend/tests/test_server_e2e_ac_ranking.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,13 @@ use actix_web::{test, web, App};
33
use atcoder_problems_backend::server::config_services;
44
use serde_json::{json, Value};
55

6+
use sql_client::PgPool;
7+
68
pub mod utils;
79

8-
#[actix_web::test]
9-
async fn test_ac_ranking() {
10-
let pg_pool = utils::initialize_and_connect_to_test_sql().await;
10+
#[sqlx::test]
11+
async fn test_ac_ranking(pg_pool: PgPool) {
12+
utils::initialize(&pg_pool).await;
1113

1214
sql_client::query(
1315
r"INSERT INTO accepted_count (user_id, problem_count) VALUES ('u1', 1), ('u2', 2), ('u3', 1)",

atcoder-problems-backend/tests/test_server_e2e_language_count.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,10 @@ async fn insert_data_set2(conn: &PgPool) {
3131
.unwrap();
3232
}
3333

34-
#[actix_web::test]
35-
async fn test_language_count() {
36-
let conn = utils::initialize_and_connect_to_test_sql().await;
34+
#[sqlx::test]
35+
async fn test_language_count(conn: PgPool) {
36+
utils::initialize(&conn).await;
37+
3738
let app = test::init_service(
3839
App::new()
3940
.app_data(web::Data::new(conn.clone()))

atcoder-problems-backend/tests/test_server_e2e_language_ranking.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,9 @@ async fn prepare_data_set(conn: &PgPool) {
2222
.unwrap();
2323
}
2424

25-
#[actix_web::test]
26-
async fn test_language_ranking() {
27-
let conn = utils::initialize_and_connect_to_test_sql().await;
25+
#[sqlx::test]
26+
async fn test_language_ranking(conn: PgPool) {
27+
utils::initialize(&conn).await;
2828
prepare_data_set(&conn).await;
2929
let app = test::init_service(
3030
App::new()

atcoder-problems-backend/tests/test_server_e2e_problem_list.rs

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,21 @@ use atcoder_problems_backend::server::middleware::github_auth::{
33
GithubAuthentication, GithubClient, GithubToken,
44
};
55
use serde_json::{json, Value};
6+
use sql_client::PgPool;
67

78
pub mod utils;
89

910
const VALID_CODE: &str = "valid-code";
1011
const VALID_TOKEN: &str = "valid-token";
1112

12-
#[actix_web::test]
13-
async fn test_list() {
13+
#[sqlx::test]
14+
async fn test_list(pg_pool: PgPool) {
1415
let mock_server = utils::start_mock_github_server(VALID_TOKEN);
1516
let mock_server_base_url = mock_server.base_url();
1617
let mock_api_server = utils::start_mock_github_api_server(VALID_TOKEN, GithubToken { id: 0 });
1718
let mock_api_server_base_url = mock_api_server.base_url();
1819

19-
let pg_pool = utils::initialize_and_connect_to_test_sql().await;
20+
utils::initialize(&pg_pool).await;
2021

2122
let github =
2223
GithubClient::new("", "", &mock_server_base_url, &mock_api_server_base_url).unwrap();
@@ -146,8 +147,8 @@ async fn test_list() {
146147

147148
assert_eq!(response, json!([]));
148149
}
149-
#[actix_web::test]
150-
async fn test_invalid_token() {
150+
#[sqlx::test]
151+
async fn test_invalid_token(pg_pool: PgPool) {
151152
let mock_server = utils::start_mock_github_server(VALID_TOKEN);
152153
let mock_server_base_url = mock_server.base_url();
153154
let mock_api_server = utils::start_mock_github_api_server(VALID_TOKEN, GithubToken { id: 0 });
@@ -156,7 +157,7 @@ async fn test_invalid_token() {
156157
let github =
157158
GithubClient::new("", "", &mock_server_base_url, &mock_api_server_base_url).unwrap();
158159

159-
let pg_pool = utils::initialize_and_connect_to_test_sql().await;
160+
utils::initialize(&pg_pool).await;
160161

161162
let app = test::init_service(
162163
actix_web::App::new()
@@ -186,14 +187,14 @@ async fn test_invalid_token() {
186187
assert!(!response.status().is_success());
187188
}
188189

189-
#[actix_web::test]
190-
async fn test_list_item() {
190+
#[sqlx::test]
191+
async fn test_list_item(pg_pool: PgPool) {
191192
let mock_server = utils::start_mock_github_server(VALID_TOKEN);
192193
let mock_server_base_url = mock_server.base_url();
193194
let mock_api_server = utils::start_mock_github_api_server(VALID_TOKEN, GithubToken { id: 0 });
194195
let mock_api_server_base_url = mock_api_server.base_url();
195196

196-
let pg_pool = utils::initialize_and_connect_to_test_sql().await;
197+
utils::initialize(&pg_pool).await;
197198

198199
let github =
199200
GithubClient::new("", "", &mock_server_base_url, &mock_api_server_base_url).unwrap();
@@ -320,14 +321,14 @@ async fn test_list_item() {
320321
);
321322
}
322323

323-
#[actix_web::test]
324-
async fn test_list_delete() {
324+
#[sqlx::test]
325+
async fn test_list_delete(pg_pool: PgPool) {
325326
let mock_server = utils::start_mock_github_server(VALID_TOKEN);
326327
let mock_server_base_url = mock_server.base_url();
327328
let mock_api_server = utils::start_mock_github_api_server(VALID_TOKEN, GithubToken { id: 0 });
328329
let mock_api_server_base_url = mock_api_server.base_url();
329330

330-
let pg_pool = utils::initialize_and_connect_to_test_sql().await;
331+
utils::initialize(&pg_pool).await;
331332

332333
let github =
333334
GithubClient::new("", "", &mock_server_base_url, &mock_api_server_base_url).unwrap();
@@ -397,14 +398,14 @@ async fn test_list_delete() {
397398
assert!(list.is_empty());
398399
}
399400

400-
#[actix_web::test]
401-
async fn test_register_twice() {
401+
#[sqlx::test]
402+
async fn test_register_twice(pg_pool: PgPool) {
402403
let mock_server = utils::start_mock_github_server(VALID_TOKEN);
403404
let mock_server_base_url = mock_server.base_url();
404405
let mock_api_server = utils::start_mock_github_api_server(VALID_TOKEN, GithubToken { id: 0 });
405406
let mock_api_server_base_url = mock_api_server.base_url();
406407

407-
let pg_pool = utils::initialize_and_connect_to_test_sql().await;
408+
utils::initialize(&pg_pool).await;
408409

409410
let github =
410411
GithubClient::new("", "", &mock_server_base_url, &mock_api_server_base_url).unwrap();

atcoder-problems-backend/tests/test_server_e2e_progress_reset.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,19 @@ use atcoder_problems_backend::server::middleware::github_auth::{
33
GithubAuthentication, GithubClient, GithubToken,
44
};
55
use serde_json::{json, Value};
6+
use sql_client::PgPool;
67

78
pub mod utils;
89

9-
#[actix_web::test]
10-
async fn test_progress_reset() {
10+
#[sqlx::test]
11+
async fn test_progress_reset(pg_pool: PgPool) {
1112
let token = "access_token";
1213
let mock_server = utils::start_mock_github_server(token);
1314
let mock_server_base_url = mock_server.base_url();
1415
let mock_api_server = utils::start_mock_github_api_server(token, GithubToken { id: 0 });
1516
let mock_api_server_base_url = mock_api_server.base_url();
1617

17-
let pg_pool = utils::initialize_and_connect_to_test_sql().await;
18+
utils::initialize(&pg_pool).await;
1819

1920
let github =
2021
GithubClient::new("", "", &mock_server_base_url, &mock_api_server_base_url).unwrap();

atcoder-problems-backend/tests/test_server_e2e_rated_point_sum_ranking.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@ async fn prepare_data_set(conn: &PgPool) {
1414
.unwrap();
1515
}
1616

17-
#[actix_web::test]
18-
async fn test_rated_point_sum_ranking() {
19-
let pg_pool = utils::initialize_and_connect_to_test_sql().await;
17+
#[sqlx::test]
18+
async fn test_rated_point_sum_ranking(pg_pool: PgPool) {
19+
utils::initialize(&pg_pool).await;
2020
prepare_data_set(&pg_pool).await;
2121

2222
let app = test::init_service(
@@ -94,9 +94,9 @@ async fn test_rated_point_sum_ranking() {
9494
assert_eq!(response.status(), StatusCode::BAD_REQUEST);
9595
}
9696

97-
#[actix_web::test]
98-
async fn test_users_rated_point_sum_ranking() {
99-
let pg_pool = utils::initialize_and_connect_to_test_sql().await;
97+
#[sqlx::test]
98+
async fn test_users_rated_point_sum_ranking(pg_pool: PgPool) {
99+
utils::initialize(&pg_pool).await;
100100
prepare_data_set(&pg_pool).await;
101101

102102
let app = test::init_service(

atcoder-problems-backend/tests/test_server_e2e_streak_ranking.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,9 @@ async fn prepare_data_set(conn: &PgPool) {
1414
.unwrap();
1515
}
1616

17-
#[actix_web::test]
18-
async fn test_streak_ranking() {
19-
let pg_pool = utils::initialize_and_connect_to_test_sql().await;
17+
#[sqlx::test]
18+
async fn test_streak_ranking(pg_pool: PgPool) {
19+
utils::initialize(&pg_pool).await;
2020
prepare_data_set(&pg_pool).await;
2121

2222
let app = test::init_service(

0 commit comments

Comments
 (0)