원클릭으로
e2e-testing
Run E2E tests for Auth9 portal using Playwright with hybrid testing strategy.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Run E2E tests for Auth9 portal using Playwright with hybrid testing strategy.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Run tests, check logs, and troubleshoot Auth9 services in Docker and Kubernetes environments.
Run performance benchmarks for auth9-core API using hey load testing tool.
Execute scenario-based QA testing with browser automation, database validation, and automatic ticket creation for failures.
Reset Auth9 local Docker development environment to a clean state.
Rust coding conventions and patterns for auth9-core development.
Run tests and check coverage for Auth9 backend, frontend, and SDK with mock-based testing patterns.
| name | e2e-testing |
| description | Run E2E tests for Auth9 portal using Playwright with hybrid testing strategy. |
| Type | Directory | Target | Requirements | Purpose |
|---|---|---|---|---|
| Frontend isolation | tests/e2e/ | localhost:5173 | Vite dev only | UI rendering |
| Full-stack integration | tests/e2e-integration/ | localhost:3000 | Docker + all services | Login, API |
cd auth9-portal
# Full-stack tests (ALWAYS use reset)
npm run test:e2e:full:reset # Reset env + run tests (recommended)
npm run test:e2e:full # Run only (requires services)
npm run test:e2e:full -- --ui # With UI mode
npm run test:e2e:full -- --headed # See browser
# Frontend isolation tests (fast, no Docker)
npm run test:e2e
npm run test:e2e:ui
ALWAYS use test:e2e:full:reset for full-stack tests:
auth9-portal/tests/
├── e2e/ # Frontend isolation
│ └── login.spec.ts
└── e2e-integration/ # Full-stack
├── auth-flow.spec.ts
├── global-setup.ts # Creates test users
└── setup/
└── test-config.ts # URLs, credentials
// tests/e2e-integration/setup/test-config.ts
export const TEST_CONFIG = {
portalUrl: "http://localhost:3000",
auth9CoreUrl: "http://localhost:8080",
testUsers: {
standard: { username: "e2e-test-user", password: "TestPass1234!" },
admin: { username: "e2e-admin-user", password: "SecurePass123!" },
},
};
import { test, expect } from "@playwright/test";
import { TEST_CONFIG } from "./setup/test-config";
test.describe("Scenario: User Login", () => {
const testUser = TEST_CONFIG.testUsers.standard;
test("1. User can login", async ({ page }) => {
await page.goto("/login");
await page.getByRole("button", { name: /sign in/i }).click();
await page.waitForURL(/\/realms\/auth9/);
await page.getByLabel(/username/i).fill(testUser.username);
await page.getByLabel(/password/i).fill(testUser.password);
await page.getByRole("button", { name: /sign in/i }).click();
await page.waitForURL(/localhost:3000/);
});
});
test("Health endpoint accessible", async ({ request }) => {
const response = await request.get(`${TEST_CONFIG.auth9CoreUrl}/health`);
expect(response.ok()).toBeTruthy();
});
| Issue | Solution |
|---|---|
| Services not ready | docker-compose logs, ./scripts/reset-docker.sh |
| Dirty data failures | Always use test:e2e:full:reset |
| Login failures | Check auth9-oidc logs, verify test user exists |
npx playwright show-report playwright-report # Frontend tests
npx playwright show-report playwright-report-full # Full-stack tests