openxiangda-cli 2.0.0-alpha.67 → 2.0.0-alpha.68

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -40,6 +40,43 @@ test('standard surfaces keep authoritative directory/resource selectors and mobi
40
40
  const client = readFileSync(new URL('../src/platform-client.ts', import.meta.url), 'utf8');
41
41
  assert.match(client, /declaredFields\.has\(requestedSort\.field\)/);
42
42
  assert.match(client, /if \(!declaredFields\.has\(fieldCode\)\) continue/);
43
+ assert.match(client, /'\/api\/auth\/logout'/);
44
+ });
45
+
46
+ test('admin appearance is a bounded Ant Design theme with compact route chrome', () => {
47
+ const appearance = readFileSync(new URL('../src/appearance.tsx', import.meta.url), 'utf8');
48
+ const main = readFileSync(new URL('../src/main.tsx', import.meta.url), 'utf8');
49
+ const shell = readFileSync(new URL('../src/Shell.tsx', import.meta.url), 'utf8');
50
+ assert.match(appearance, /'system' \| 'light' \| 'dark'/);
51
+ assert.match(appearance, /antdTheme\.darkAlgorithm/);
52
+ assert.match(appearance, /antdTheme\.defaultAlgorithm/);
53
+ assert.match(appearance, /ConfigProvider/);
54
+ assert.match(appearance, /openxiangda\.admin\.appearance/);
55
+ assert.match(main, /<AppearanceProvider>/);
56
+ assert.match(main, /oxa-global-request-loading/);
57
+ assert.match(shell, /openxiangda\.admin\.route-history/);
58
+ assert.match(shell, /MAX_HISTORY_ITEMS = 8/);
59
+ assert.match(shell, /<Segmented/);
60
+ assert.match(shell, /跟随系统/);
61
+ assert.match(shell, /退出登录/);
62
+ assert.match(shell, /<Header className="oxa-topbar">\s*<Breadcrumb/);
63
+ assert.doesNotMatch(shell, /oxa-topbar-page/);
64
+ });
65
+
66
+ test('standard desktop CRUD exposes compact filters, table tools, and lazy audit history', () => {
67
+ const pages = readFileSync(new URL('../src/components/resource/StandardResourcePages.tsx', import.meta.url), 'utf8');
68
+ const crud = readFileSync(new URL('../src/components/resource/GeneratedResourceCrud.tsx', import.meta.url), 'utf8');
69
+ assert.match(pages, /className="oxa-list-surface"/);
70
+ assert.doesNotMatch(pages, /className="oxa-page-heading"/);
71
+ assert.match(crud, /filtersExpanded/);
72
+ assert.match(crud, /更多筛选/);
73
+ assert.match(crud, /columnMenu/);
74
+ assert.match(crud, /densityMenu/);
75
+ assert.match(crud, /列设置/);
76
+ assert.match(crud, /密度/);
77
+ assert.match(crud, /!auditExpanded/);
78
+ assert.match(crud, /<Collapse/);
79
+ assert.match(crud, /查看创建、更新和删除的字段变化/);
43
80
  });
44
81
 
45
82
  test('runtime metadata stays mount-scoped', () => {
@@ -21,7 +21,7 @@
21
21
  "build": "pnpm --recursive build"
22
22
  },
23
23
  "devDependencies": {
24
- "openxiangda-cli": "2.0.0-alpha.67",
24
+ "openxiangda-cli": "2.0.0-alpha.68",
25
25
  "openxiangda-contracts": "2.0.0-alpha.31",
26
26
  "openxiangda-devkit-core": "2.0.0-alpha.41",
27
27
  "typescript": "5.9.3"