Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .github/workflows/build_frontend.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,10 @@ jobs:
working-directory: frontend
run: pnpm install --frozen-lockfile

- name: Test
working-directory: frontend
run: pnpm test

- name: Build
working-directory: frontend
run: pnpm build
19 changes: 19 additions & 0 deletions frontend/lib/utils/search-data.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import assert from "node:assert/strict"
import test from "node:test"

import { searchItems } from "./search-data"

const routeCases = [
{ query: "积分配置", isAdmin: true, expectedUrl: "/admin/credit" },
{ query: "通知设置", isAdmin: false, expectedUrl: "/settings/notifications" },
{ query: "安全设置", isAdmin: false, expectedUrl: "/settings/security" },
]

for (const { query, isAdmin, expectedUrl } of routeCases) {
test(`search result for ${query} links to its page`, () => {
const result = searchItems(query, isAdmin).find((item) => item.title === query)

assert.ok(result, `expected an exact search result for ${query}`)
assert.equal(result.url, expectedUrl)
})
}
6 changes: 3 additions & 3 deletions frontend/lib/utils/search-data.ts
Original file line number Diff line number Diff line change
Expand Up @@ -452,15 +452,15 @@ export const searchData: SearchItem[] = [
id: 'settings-notification',
title: '通知设置',
description: '管理通知偏好',
url: '/settings',
url: '/settings/notifications',
category: 'setting',
keywords: ['settings', '设置', '通知', 'notification'],
},
{
id: 'settings-security',
title: '安全设置',
description: '账户安全和隐私设置',
url: '/settings',
url: '/settings/security',
category: 'setting',
keywords: ['settings', '设置', '安全', 'security', '隐私'],
},
Expand All @@ -478,7 +478,7 @@ export const searchData: SearchItem[] = [
id: 'admin-user-pay',
title: '积分配置',
description: '管理用户支付等级和配置',
url: '/admin/user_pay',
url: '/admin/credit',
category: 'admin',
keywords: ['admin', '管理', '积分', '配置', 'payment', 'config'],
},
Expand Down
4 changes: 3 additions & 1 deletion frontend/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@
"dev": "next dev --turbopack",
"build": "next build",
"start": "next start -p 3010",
"lint": "eslint"
"lint": "eslint",
"test": "jiti lib/utils/search-data.test.ts"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

这里只运行一个 test.ts
test 名称容易让别人误会成自动运行目录下全部 test.ts
建议改一下

},
"dependencies": {
"@dnd-kit/core": "^6.3.1",
Expand Down Expand Up @@ -79,6 +80,7 @@
"@types/react-dom": "^19",
"eslint": "^9",
"eslint-config-next": "15.5.6",
"jiti": "^2.6.1",
"tailwindcss": "^4",
"tw-animate-css": "^1.4.0",
"typescript": "^5"
Expand Down
3 changes: 3 additions & 0 deletions frontend/pnpm-lock.yaml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading