@be-link/smart-test 1.0.1-beta.4 → 1.0.1-beta.5

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/dist/cli/index.js CHANGED
@@ -828,16 +828,26 @@ class HARConverter {
828
828
  }
829
829
  }
830
830
  /**
831
- * 生成 Mock 数据的 key
831
+ * 生成 Mock 数据的 key(使用 camelCase)
832
832
  */
833
833
  generateMockKey(apiPath, method) {
834
- // 将路径转换为驼峰命名
835
- // /api/user/info -> apiUserInfo
834
+ // 将路径转换为驼峰命名,并移除所有特殊字符
835
+ // /api/user-info -> apiUserInfo
836
+ // /product-detail -> productDetail
836
837
  const parts = apiPath
837
838
  .split('/')
838
839
  .filter((p) => p)
839
- .map((p, index) => (index === 0 ? p : p.charAt(0).toUpperCase() + p.slice(1)));
840
- return `${method.toLowerCase()}${parts.map((p) => p.charAt(0).toUpperCase() + p.slice(1)).join('')}`;
840
+ .map((part) => {
841
+ // 移除特殊字符并转换为 PascalCase
842
+ return part
843
+ .split(/[-_\s]+/) // 按短横线、下划线、空格分割
844
+ .filter((word) => word) // 过滤空字符串
845
+ .map((word) => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())
846
+ .join('');
847
+ });
848
+ // 拼接方法名和路径:getProductDetail
849
+ const pathPart = parts.join('');
850
+ return method.toLowerCase() + pathPart;
841
851
  }
842
852
  /**
843
853
  * 生成 Playwright Mock 代码
@@ -1007,7 +1017,26 @@ ${requestSummary}
1007
1017
  6. 根据请求类型,生成合适的测试场景(如表单提交、数据加载等)
1008
1018
  7. 使用 Playwright 的最佳实践
1009
1019
  8. 包含有意义的断言
1010
- 9. 代码简洁清晰,有适当的注释
1020
+ 9. **所有注释必须使用中文**,代码简洁清晰
1021
+ 10. test.describe 和 test 的描述文本也使用中文
1022
+
1023
+ ## 示例格式
1024
+ \`\`\`typescript
1025
+ test.describe('产品详情页面测试', () => {
1026
+ test.beforeEach(async ({ page }) => {
1027
+ // 设置 Mock 数据
1028
+ await mockProductDetailApis(page);
1029
+ });
1030
+
1031
+ test('应该成功加载页面', async ({ page }) => {
1032
+ // 访问页面
1033
+ await page.goto('${url}');
1034
+
1035
+ // 验证页面加载
1036
+ await expect(page).toHaveURL('${url}');
1037
+ });
1038
+ });
1039
+ \`\`\`
1011
1040
 
1012
1041
  请直接返回测试代码,不需要额外的说明。
1013
1042
  `;
@@ -24,7 +24,7 @@ export declare class HARConverter {
24
24
  */
25
25
  private extractApiPath;
26
26
  /**
27
- * 生成 Mock 数据的 key
27
+ * 生成 Mock 数据的 key(使用 camelCase)
28
28
  */
29
29
  private generateMockKey;
30
30
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"har-converter.d.ts","sourceRoot":"","sources":["../../src/recorder/har-converter.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,OAAO,EAAY,MAAM,SAAS,CAAC;AAGjE;;GAEG;AACH,qBAAa,YAAY;IACvB;;OAEG;IACH,KAAK,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,OAAO;IAiB1C;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA8BzB;;OAEG;IACG,OAAO,CAAC,QAAQ,EAAE,cAAc,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAW9E;;OAEG;IACH,gBAAgB,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAyCjE;;OAEG;IACH,OAAO,CAAC,cAAc;IAStB;;OAEG;IACH,OAAO,CAAC,eAAe;IAWvB;;OAEG;IACH,gBAAgB,CAAC,QAAQ,EAAE,cAAc,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;IA2CtE;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAe1B;;OAEG;IACH,OAAO,CAAC,UAAU;IAIlB;;OAEG;IACH,OAAO,CAAC,YAAY;IAOpB;;OAEG;IACG,YAAY,CAAC,QAAQ,EAAE,cAAc,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAWtG"}
1
+ {"version":3,"file":"har-converter.d.ts","sourceRoot":"","sources":["../../src/recorder/har-converter.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,OAAO,EAAY,MAAM,SAAS,CAAC;AAGjE;;GAEG;AACH,qBAAa,YAAY;IACvB;;OAEG;IACH,KAAK,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,OAAO;IAiB1C;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA8BzB;;OAEG;IACG,OAAO,CAAC,QAAQ,EAAE,cAAc,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAW9E;;OAEG;IACH,gBAAgB,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAyCjE;;OAEG;IACH,OAAO,CAAC,cAAc;IAStB;;OAEG;IACH,OAAO,CAAC,eAAe;IAqBvB;;OAEG;IACH,gBAAgB,CAAC,QAAQ,EAAE,cAAc,EAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;IA2CtE;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAe1B;;OAEG;IACH,OAAO,CAAC,UAAU;IAIlB;;OAEG;IACH,OAAO,CAAC,YAAY;IAOpB;;OAEG;IACG,YAAY,CAAC,QAAQ,EAAE,cAAc,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAWtG"}
@@ -1 +1 @@
1
- {"version":3,"file":"test-generator.d.ts","sourceRoot":"","sources":["../../src/recorder/test-generator.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG/D;;GAEG;AACH,qBAAa,aAAa;IAGZ,OAAO,CAAC,MAAM;IAF1B,OAAO,CAAC,MAAM,CAAuB;gBAEjB,MAAM,EAAE,eAAe;IAW3C;;OAEG;IACG,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA+CpH;;OAEG;IACH,OAAO,CAAC,WAAW;IAgCnB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA2BzB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAmDzB;;OAEG;IACH,OAAO,CAAC,YAAY;IAOpB;;OAEG;IACG,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAWvF;;OAEG;IACH,OAAO,CAAC,UAAU;CAGnB"}
1
+ {"version":3,"file":"test-generator.d.ts","sourceRoot":"","sources":["../../src/recorder/test-generator.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAC9C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG/D;;GAEG;AACH,qBAAa,aAAa;IAGZ,OAAO,CAAC,MAAM;IAF1B,OAAO,CAAC,MAAM,CAAuB;gBAEjB,MAAM,EAAE,eAAe;IAW3C;;OAEG;IACG,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA+CpH;;OAEG;IACH,OAAO,CAAC,WAAW;IAmDnB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA2BzB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAmDzB;;OAEG;IACH,OAAO,CAAC,YAAY;IAOpB;;OAEG;IACG,QAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAWvF;;OAEG;IACH,OAAO,CAAC,UAAU;CAGnB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@be-link/smart-test",
3
- "version": "1.0.1-beta.4",
3
+ "version": "1.0.1-beta.5",
4
4
  "type": "module",
5
5
  "description": "AI-powered visual testing for Playwright - 基于 AI 视觉模型的 Playwright 测试工具",
6
6
  "homepage": "https://github.com/snowmountain-top/be-link",