feat(apitest): 新增 API 测试环境与安全配置
- 新增 apitest 专用 MySQL 配置与 Docker 编排(docker/apitest-mysql.yml、docker/apitest-mysql/) - 增加 ApiTestSecurityConfig / ApiTestSecurityProperties 与 ApiTestAuthenticationFilter - 新增 application-apitest.yml 与相关测试目录(play-admin/src/test/java/com/starry/admin/api/) - 调整根 pom 与 play-admin/pom 依赖,优化 SpringSecurityConfig 以兼容 apitest
This commit is contained in:
27
docker/apitest-mysql.yml
Normal file
27
docker/apitest-mysql.yml
Normal file
@@ -0,0 +1,27 @@
|
||||
version: "3.9"
|
||||
|
||||
services:
|
||||
mysql-apitest:
|
||||
image: mysql:8.0.32
|
||||
container_name: peipei-mysql-apitest
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: root
|
||||
MYSQL_DATABASE: peipei_apitest
|
||||
MYSQL_USER: apitest
|
||||
MYSQL_PASSWORD: apitest
|
||||
ports:
|
||||
- "33306:3306"
|
||||
volumes:
|
||||
- ./apitest-mysql/init:/docker-entrypoint-initdb.d:ro
|
||||
healthcheck:
|
||||
test: ["CMD", "mysqladmin", "ping", "-h", "127.0.0.1", "-uroot", "-proot"]
|
||||
interval: 10s
|
||||
timeout: 5s
|
||||
retries: 10
|
||||
command:
|
||||
- "--default-authentication-plugin=mysql_native_password"
|
||||
- "--lower_case_table_names=1"
|
||||
- "--explicit_defaults_for_timestamp=1"
|
||||
- "--character-set-server=utf8mb4"
|
||||
- "--collation-server=utf8mb4_unicode_ci"
|
||||
@@ -0,0 +1,2 @@
|
||||
GRANT SELECT ON performance_schema.* TO 'apitest'@'%';
|
||||
FLUSH PRIVILEGES;
|
||||
10
docker/apitest-mysql/init/README.md
Normal file
10
docker/apitest-mysql/init/README.md
Normal file
@@ -0,0 +1,10 @@
|
||||
# API Test MySQL Seed Files
|
||||
|
||||
将初始化 schema 和种子数据的 SQL 文件放在此目录下,文件会在 `mysql-apitest` 容器启动时自动执行。
|
||||
|
||||
推荐约定:
|
||||
- `000-schema.sql`:创建数据库/表结构(可复用 Flyway 生成的整库脚本)。
|
||||
- `100-seed-*.sql`:插入基础租户、用户、商品、优惠券等测试数据。
|
||||
- `900-cleanup.sql`:可选的清理脚本,用于重置状态。
|
||||
|
||||
容器销毁(`docker-compose down -v`)后数据会一起删除,保证每次测试环境一致。
|
||||
Reference in New Issue
Block a user