1
0
forked from baron/baron-sso

코드 체크 개선

This commit is contained in:
2026-05-21 08:46:08 +09:00
parent 79f99757ee
commit 2d6ca2f66b
14 changed files with 104 additions and 17 deletions

View File

@@ -334,8 +334,7 @@ jobs:
- name: Get Playwright version - name: Get Playwright version
id: playwright-version id: playwright-version
run: | run: |
cd userfront-e2e node scripts/playwrightPackageVersion.cjs userfront-e2e >> "$GITHUB_OUTPUT"
echo "version=$(npm list @playwright/test | grep @playwright/test | awk -F@ '{print $NF}' | head -n 1)" >> "$GITHUB_OUTPUT"
- name: Cache Playwright Browsers - name: Cache Playwright Browsers
uses: actions/cache@v4 uses: actions/cache@v4
@@ -563,8 +562,7 @@ jobs:
- name: Get Playwright version - name: Get Playwright version
id: playwright-version id: playwright-version
run: | run: |
cd adminfront node scripts/playwrightPackageVersion.cjs adminfront >> "$GITHUB_OUTPUT"
echo "version=$(pnpm list -C ../common @playwright/test --depth 0 | grep @playwright/test | awk -F@ '{print $NF}' | head -n 1)" >> "$GITHUB_OUTPUT"
- name: Cache Playwright Browsers - name: Cache Playwright Browsers
uses: actions/cache@v4 uses: actions/cache@v4
@@ -657,7 +655,7 @@ jobs:
id: playwright-version id: playwright-version
working-directory: devfront working-directory: devfront
run: | run: |
echo "version=$(pnpm list -C ../common @playwright/test --depth 0 | grep @playwright/test | awk -F@ '{print $NF}' | head -n 1)" >> "$GITHUB_OUTPUT" node ../scripts/playwrightPackageVersion.cjs . >> "$GITHUB_OUTPUT"
- name: Cache Playwright Browsers - name: Cache Playwright Browsers
uses: actions/cache@v4 uses: actions/cache@v4
@@ -834,8 +832,7 @@ jobs:
- name: Get Playwright version - name: Get Playwright version
id: playwright-version id: playwright-version
run: | run: |
cd orgfront node scripts/playwrightPackageVersion.cjs orgfront >> "$GITHUB_OUTPUT"
echo "version=$(pnpm list -C ../common @playwright/test --depth 0 | grep @playwright/test | awk -F@ '{print $NF}' | head -n 1)" >> "$GITHUB_OUTPUT"
- name: Cache Playwright Browsers - name: Cache Playwright Browsers
uses: actions/cache@v4 uses: actions/cache@v4

View File

@@ -517,8 +517,7 @@ function UserListPage() {
</DropdownMenuItem> </DropdownMenuItem>
<DropdownMenuSeparator /> <DropdownMenuSeparator />
<DropdownMenuItem <DropdownMenuItem
onSelect={(e) => { onSelect={() => {
e.preventDefault();
setBulkUploadOpen(true); setBulkUploadOpen(true);
}} }}
className="cursor-pointer" className="cursor-pointer"

View File

@@ -1279,6 +1279,7 @@ type = "TYPE"
updated = "UPDATED" updated = "UPDATED"
[ui.admin.users] [ui.admin.users]
csv_template = "Download Template"
[ui.admin.users.bulk] [ui.admin.users.bulk]
create_missing_tenant = "Create new" create_missing_tenant = "Create new"

View File

@@ -1282,6 +1282,7 @@ type = "유형"
updated = "UPDATED" updated = "UPDATED"
[ui.admin.users] [ui.admin.users]
csv_template = "템플릿 다운로드"
[ui.admin.users.bulk] [ui.admin.users.bulk]
create_missing_tenant = "신규 생성" create_missing_tenant = "신규 생성"

View File

@@ -1294,6 +1294,7 @@ type = ""
updated = "" updated = ""
[ui.admin.users] [ui.admin.users]
csv_template = ""
[ui.admin.users.bulk] [ui.admin.users.bulk]
create_missing_tenant = "" create_missing_tenant = ""

View File

@@ -106,7 +106,7 @@ test.describe("Authentication", () => {
await page.goto("/"); await page.goto("/");
await expect(page.getByRole("link", { name: "조직도" })).toHaveAttribute( await expect(page.getByRole("link", { name: "조직도" })).toHaveAttribute(
"href", "href",
"http://localhost:5175/login?auto=1&returnTo=%2Fchart", "http://localhost:5175/login?auto=1&returnTo=%2Fchart%3FincludeInternal%3Dtrue",
); );
}); });

View File

@@ -423,7 +423,10 @@ test.describe("User Management", () => {
const [download] = await Promise.all([ const [download] = await Promise.all([
page.waitForEvent("download"), page.waitForEvent("download"),
page.getByTestId("user-export-without-ids-btn").click(), (async () => {
await page.getByTestId("user-data-mgmt-btn").click();
await page.getByTestId("user-export-menu-item").click();
})(),
]); ]);
expect(download.suggestedFilename()).toBe("users.csv"); expect(download.suggestedFilename()).toBe("users.csv");

View File

@@ -66,8 +66,10 @@ test.describe("Users Bulk Upload", () => {
{ timeout: 20000 }, { timeout: 20000 },
); );
const bulkBtn = page.getByTestId("bulk-import-btn"); await page.getByTestId("user-data-mgmt-btn").click();
await bulkBtn.click(); await page
.getByRole("menuitem", { name: /일괄 임포트|일괄 등록|Bulk Import/i })
.click();
await expect(page.getByTestId("bulk-upload-title")).toBeVisible({ await expect(page.getByTestId("bulk-upload-title")).toBeVisible({
timeout: 10000, timeout: 10000,
@@ -106,8 +108,10 @@ test.describe("Users Bulk Upload", () => {
{ timeout: 20000 }, { timeout: 20000 },
); );
const bulkBtn = page.getByTestId("bulk-import-btn"); await page.getByTestId("user-data-mgmt-btn").click();
await bulkBtn.click(); await page
.getByRole("menuitem", { name: /일괄 임포트|일괄 등록|Bulk Import/i })
.click();
const uploadBtn = page.getByTestId("bulk-start-btn"); const uploadBtn = page.getByTestId("bulk-start-btn");
await expect(uploadBtn).toBeDisabled(); await expect(uploadBtn).toBeDisabled();
@@ -168,7 +172,10 @@ test.describe("Users Bulk Upload", () => {
{ timeout: 20000 }, { timeout: 20000 },
); );
await page.getByTestId("bulk-import-btn").click(); await page.getByTestId("user-data-mgmt-btn").click();
await page
.getByRole("menuitem", { name: /일괄 임포트|일괄 등록|Bulk Import/i })
.click();
await page.locator('input[type="file"]').setInputFiles({ await page.locator('input[type="file"]').setInputFiles({
name: "users.csv", name: "users.csv",
mimeType: "text/csv", mimeType: "text/csv",
@@ -274,7 +281,10 @@ test.describe("Users Bulk Upload", () => {
{ timeout: 20000 }, { timeout: 20000 },
); );
await page.getByTestId("bulk-import-btn").click(); await page.getByTestId("user-data-mgmt-btn").click();
await page
.getByRole("menuitem", { name: /일괄 임포트|일괄 등록|Bulk Import/i })
.click();
await page.locator('input[type="file"]').setInputFiles({ await page.locator('input[type="file"]').setInputFiles({
name: "users.csv", name: "users.csv",
mimeType: "text/csv", mimeType: "text/csv",

View File

@@ -1428,6 +1428,7 @@ updated = "UPDATED"
created = "CREATED" created = "CREATED"
[ui.admin.users] [ui.admin.users]
csv_template = "Download Template"
[ui.admin.users.bulk] [ui.admin.users.bulk]
acknowledge_warning = "I acknowledge the warning and will proceed." acknowledge_warning = "I acknowledge the warning and will proceed."

View File

@@ -1892,6 +1892,7 @@ created = "CREATED"
created = "CREATED" created = "CREATED"
[ui.admin.users] [ui.admin.users]
csv_template = "템플릿 다운로드"
[ui.admin.users.bulk] [ui.admin.users.bulk]
acknowledge_warning = "경고를 확인했으며 계속 진행합니다." acknowledge_warning = "경고를 확인했으며 계속 진행합니다."

View File

@@ -1771,6 +1771,7 @@ updated = ""
created = "" created = ""
[ui.admin.users] [ui.admin.users]
csv_template = ""
[ui.admin.users.bulk] [ui.admin.users.bulk]
acknowledge_warning = "" acknowledge_warning = ""

View File

@@ -0,0 +1,24 @@
#!/usr/bin/env node
const fs = require("node:fs");
const path = require("node:path");
const packageDir = process.argv[2];
if (!packageDir) {
console.error("Usage: node scripts/playwrightPackageVersion.cjs <package-dir>");
process.exit(2);
}
const packageJsonPath = path.resolve(process.cwd(), packageDir, "package.json");
const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, "utf8"));
const version =
packageJson.devDependencies?.["@playwright/test"] ??
packageJson.dependencies?.["@playwright/test"];
if (!version) {
console.error(`@playwright/test version not found in ${packageJsonPath}`);
process.exit(1);
}
console.log(`version=${version.replace(/^[^0-9]*/, "")}`);

View File

@@ -0,0 +1,23 @@
#!/usr/bin/env bash
set -euo pipefail
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
WORKFLOW_FILE="$ROOT_DIR/.gitea/workflows/code_check.yml"
fail() {
echo "ERROR: $*" >&2
exit 1
}
grep -Fq -- "scripts/playwrightPackageVersion.cjs" "$WORKFLOW_FILE" || \
fail "Code Check workflow must compute Playwright cache versions through the shared package.json reader"
if grep -Fq -- "npm list @playwright/test" "$WORKFLOW_FILE"; then
fail "Code Check workflow must not call npm list before npm ci"
fi
if grep -Fq -- "pnpm list -C ../common @playwright/test" "$WORKFLOW_FILE"; then
fail "Code Check workflow must not call pnpm list before pnpm install"
fi
echo "OK: Code Check Playwright cache keys do not depend on preinstalled node_modules"

View File

@@ -0,0 +1,25 @@
#!/usr/bin/env bash
set -euo pipefail
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
fail() {
echo "ERROR: $*" >&2
exit 1
}
assert_version() {
local package_dir="$1"
local expected="$2"
local actual
actual="$(node "$ROOT_DIR/scripts/playwrightPackageVersion.cjs" "$package_dir")"
[ "$actual" = "version=$expected" ] || \
fail "$package_dir Playwright version must be $expected, got: $actual"
}
assert_version userfront-e2e 1.58.2
assert_version adminfront 1.60.0
assert_version devfront 1.60.0
assert_version orgfront 1.60.0
echo "OK: Playwright package versions are read from package.json"