zentao-api 0.6.7 → 0.6.9

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.
package/README.md CHANGED
@@ -236,13 +236,20 @@ const config = await client.getZentaoConfig(); // 复用有效缓存,缺失或
236
236
  const freshConfig = await client.getZentaoConfig({ forceRefresh: true });
237
237
  ```
238
238
 
239
+ `getZentaoConfig()` 只需站点地址,无需登录或 profile;未提供 Token 或 Token 已过期时都可调用。请求不发送 API Token,浏览器中还会显式省略 Cookie 等凭据,因此可以在登录前查询版本:
240
+
241
+ ```ts
242
+ const siteClient = new ZentaoClient('https://zentao.example.com');
243
+ const { version } = await siteClient.getZentaoConfig();
244
+ ```
245
+
239
246
  强制刷新不会改写全局 `version`。未指定全局版本时,使用不超过 24 小时的缓存;缓存缺失、过期或时间异常时访问站点根地址的 `/?mode=getconfig`。登录验证成功后也会强制获取一次,即使已设置全局版本。
240
247
 
241
248
  配置获取失败默认停止调用;可以通过全局或单次 `skipVersionCheckOnConfigError: true` 跳过本次检查。该选项不忽略版本不匹配、版本格式错误、取消或 profile 存储错误。版本不匹配抛出 `E_UNSUPPORTED_ZENTAO_VERSION`。
242
249
 
243
250
  ### 持久化 Profile
244
251
 
245
- Profile 默认不会写入。先启用 `persistProfiles`,登录成功后才会保存站点、账号、token、客户端配置,以及 `serverConfig` 和获取时间 `serverConfigFetchedAt`:
252
+ `login()` 默认不会自动写入 Profile。先启用 `persistProfiles`,登录成功后才会保存站点、账号、token、客户端配置,以及 `serverConfig` 和获取时间 `serverConfigFetchedAt`:
246
253
 
247
254
  ```ts
248
255
  import { ZentaoClient, setGlobalOptions } from 'zentao-api';
@@ -266,6 +273,11 @@ setGlobalOptions({ client });
266
273
  const another = await ZentaoClient.fromProfile(
267
274
  'admin@https://zentao.example.com',
268
275
  );
276
+
277
+ // 只读取并恢复,不切换当前 Profile、不更新使用时间、不写存储。
278
+ const isolated = await ZentaoClient.fromProfile(
279
+ 'admin@https://zentao.example.com', { activate: false },
280
+ );
269
281
  ```
270
282
 
271
283
  | 环境 | 存储位置 |
@@ -407,6 +419,19 @@ bun run check # 完整 CI:测试、类型检查、注册表、构
407
419
 
408
420
  `bun run test:real` 会依次读取 `.env.local` 和 `env.local`,需要配置 `ZENTAO_URL`(或 `ZENTAO_BASE_URL`),以及 `ZENTAO_TOKEN` 或 `ZENTAO_ACCOUNT` / `ZENTAO_PASSWORD`。使用 `bun run test:real -- --keep-test-data` 可保留测试创建的数据。
409
421
 
422
+ 测试创建和更新项目时会复用现有 Scrum 项目的有效项目流程,也可通过 `ZENTAO_WORKFLOW_GROUP` 显式指定流程 ID。没有可复用流程时默认使用开源版的 `0`;付费版需要指定有效的流程 ID。
423
+
424
+ 真实环境测试按场景执行,覆盖以下流程:
425
+
426
+ - 产品、项目集、项目、执行、计划,以及用户和团队成员维护。
427
+ - 研发需求、业务需求、用户需求、任务、Bug、测试用例和模块目录的增删改查、状态流转,以及产品/项目/执行范围的列表。
428
+ - 应用查询和修改、构建、测试单、发布、反馈、工单、转化操作和待办。
429
+ - 个人、团队、产品、项目四类文档空间中的文档库、目录、文档,以及个人工作列表;可用时还会测试会议和自定义合同工作流。
430
+
431
+ 测试使用唯一名称创建临时数据,按依赖顺序清理;使用 Token 时仍需设置 `ZENTAO_ACCOUNT` 或 `ZENTAO_REVIEWER`,供负责人、成员和评审人字段使用。`--keep-test-data` 会保留新增场景的数据;原有生命周期场景中的“删除第二个任务”仍会执行。
432
+
433
+ 每次运行会输出接口统计并写入 `coverage/real-env.json`(已被 Git 忽略),列出已执行、成功、失败、排除原因、尚未测试的动作及实际访问的不同路径,同时记录退出码、耗时和清理错误。动作只要出现一次失败就归入失败,即使另一组参数调用成功;动作统计不能替代场景断言结果。只有探测到明确缺失的可选服务端模块才跳过对应测试;权限、SQL、缺失控制器方法、HTML 错误页和断言失败仍会让命令以非零状态退出。没有删除 API 的问题/风险写入和额外应用创建不自动执行;应用修改只使用临时产品自动生成的应用。
434
+
410
435
  模块注册表由 `data/zentao-openapi.json` 生成。请勿手动编辑 `src/modules/generated.ts`;更新规范后运行:
411
436
 
412
437
  ```sh