@flakiness/sdk 2.2.0 → 2.2.2

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
@@ -1,3 +1,5 @@
1
+ [![Tests](https://img.shields.io/endpoint?url=https%3A%2F%2Fflakiness.io%2Fapi%2Fbadge%3Finput%3D%257B%2522badgeToken%2522%253A%2522badge-5qUBbhdeYquEDJyBxGAv2X%2522%257D)](https://flakiness.io/flakiness/nodejs-sdk)
2
+
1
3
  # Flakiness Node.js SDK
2
4
 
3
5
  The Flakiness SDK provides a comprehensive set of tools for creating and managing [Flakiness JSON Reports](https://github.com/flakiness/flakiness-report) in Node.js.
package/lib/browser.js CHANGED
@@ -233,7 +233,6 @@ function deduplicateTestsSuitesEnvironments(report) {
233
233
  gEnvs.set(envId, env);
234
234
  gEnvIds.set(env, envId);
235
235
  }
236
- const usedEnvIds = /* @__PURE__ */ new Set();
237
236
  function visitTests2(tests, suiteId) {
238
237
  for (const test of tests ?? []) {
239
238
  const testId = computeTestId(test, suiteId);
@@ -241,9 +240,6 @@ function deduplicateTestsSuitesEnvironments(report) {
241
240
  gTestIds.set(test, testId);
242
241
  gSuiteTests.set(suiteId, test);
243
242
  for (const attempt of test.attempts) {
244
- const env = report.environments[attempt.environmentIdx ?? 0];
245
- const envId = gEnvIds.get(env);
246
- usedEnvIds.add(envId);
247
243
  if (attempt.annotations && !attempt.annotations.length)
248
244
  delete attempt.annotations;
249
245
  if (attempt.stdout && !attempt.stdout.length)
@@ -295,11 +291,11 @@ function deduplicateTestsSuitesEnvironments(report) {
295
291
  visitTests2(report.tests ?? [], "suiteless");
296
292
  for (const suite of report.suites ?? [])
297
293
  visitSuite(suite);
298
- const newEnvironments = [...usedEnvIds];
299
- const envIdToIndex = new Map(newEnvironments.map((envId, index) => [envId, index]));
294
+ const uniqueEnvIds = [...gEnvs.keys()];
295
+ const envIdToIndex = new Map(uniqueEnvIds.map((envId, index) => [envId, index]));
300
296
  return {
301
297
  ...report,
302
- environments: newEnvironments.map((envId) => gEnvs.get(envId)),
298
+ environments: uniqueEnvIds.map((envId) => gEnvs.get(envId)),
303
299
  suites: transformSuites(report.suites ?? []),
304
300
  tests: transformTests(report.tests ?? [])
305
301
  };
package/lib/index.js CHANGED
@@ -215,6 +215,12 @@ function randomUUIDBase62() {
215
215
  // src/gitWorktree.ts
216
216
  var log = debug("fk:git");
217
217
  var execAsync = promisify(exec);
218
+ var GIT_SAFE_ENV = {
219
+ ...process.env,
220
+ GIT_CONFIG_COUNT: "1",
221
+ GIT_CONFIG_KEY_0: "safe.directory",
222
+ GIT_CONFIG_VALUE_0: "*"
223
+ };
218
224
  var IS_WIN32_PATH = new RegExp("^[a-zA-Z]:\\\\", "i");
219
225
  var IS_ALMOST_POSIX_PATH = new RegExp("^[a-zA-Z]:/", "i");
220
226
  function toPosixAbsolutePath(absolutePath) {
@@ -259,7 +265,8 @@ var GitWorktree = class _GitWorktree {
259
265
  static create(somePathInsideGitRepo) {
260
266
  const root = shell(`git`, ["rev-parse", "--show-toplevel"], {
261
267
  cwd: somePathInsideGitRepo,
262
- encoding: "utf-8"
268
+ encoding: "utf-8",
269
+ env: GIT_SAFE_ENV
263
270
  });
264
271
  assert(root, `FAILED: git rev-parse --show-toplevel HEAD @ ${somePathInsideGitRepo}`);
265
272
  return new _GitWorktree(root);
@@ -297,7 +304,8 @@ var GitWorktree = class _GitWorktree {
297
304
  headCommitId() {
298
305
  const sha = shell(`git`, ["rev-parse", "HEAD"], {
299
306
  cwd: this._gitRoot,
300
- encoding: "utf-8"
307
+ encoding: "utf-8",
308
+ env: GIT_SAFE_ENV
301
309
  });
302
310
  assert(sha, `FAILED: git rev-parse HEAD @ ${this._gitRoot}`);
303
311
  return sha.trim();
@@ -390,7 +398,7 @@ async function listCommits(gitRoot, head, count) {
390
398
  ].join(FIELD_SEPARATOR);
391
399
  const command = `git log ${head} -n ${count} --pretty=format:"${prettyFormat}" -z`;
392
400
  try {
393
- const { stdout } = await execAsync(command, { cwd: gitRoot });
401
+ const { stdout } = await execAsync(command, { cwd: gitRoot, env: GIT_SAFE_ENV });
394
402
  if (!stdout) {
395
403
  return [];
396
404
  }
@@ -891,7 +899,6 @@ function deduplicateTestsSuitesEnvironments(report) {
891
899
  gEnvs.set(envId, env);
892
900
  gEnvIds.set(env, envId);
893
901
  }
894
- const usedEnvIds = /* @__PURE__ */ new Set();
895
902
  function visitTests2(tests, suiteId) {
896
903
  for (const test of tests ?? []) {
897
904
  const testId = computeTestId(test, suiteId);
@@ -899,9 +906,6 @@ function deduplicateTestsSuitesEnvironments(report) {
899
906
  gTestIds.set(test, testId);
900
907
  gSuiteTests.set(suiteId, test);
901
908
  for (const attempt of test.attempts) {
902
- const env = report.environments[attempt.environmentIdx ?? 0];
903
- const envId = gEnvIds.get(env);
904
- usedEnvIds.add(envId);
905
909
  if (attempt.annotations && !attempt.annotations.length)
906
910
  delete attempt.annotations;
907
911
  if (attempt.stdout && !attempt.stdout.length)
@@ -953,11 +957,11 @@ function deduplicateTestsSuitesEnvironments(report) {
953
957
  visitTests2(report.tests ?? [], "suiteless");
954
958
  for (const suite of report.suites ?? [])
955
959
  visitSuite(suite);
956
- const newEnvironments = [...usedEnvIds];
957
- const envIdToIndex = new Map(newEnvironments.map((envId, index) => [envId, index]));
960
+ const uniqueEnvIds = [...gEnvs.keys()];
961
+ const envIdToIndex = new Map(uniqueEnvIds.map((envId, index) => [envId, index]));
958
962
  return {
959
963
  ...report,
960
- environments: newEnvironments.map((envId) => gEnvs.get(envId)),
964
+ environments: uniqueEnvIds.map((envId) => gEnvs.get(envId)),
961
965
  suites: transformSuites(report.suites ?? []),
962
966
  tests: transformTests(report.tests ?? [])
963
967
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flakiness/sdk",
3
- "version": "2.2.0",
3
+ "version": "2.2.2",
4
4
  "private": false,
5
5
  "repository": {
6
6
  "type": "git",
@@ -26,6 +26,8 @@
26
26
  "license": "MIT",
27
27
  "devDependencies": {
28
28
  "@flakiness/flakiness-report": "^0.27.0",
29
+ "@flakiness/playwright": "^1.3.2",
30
+ "@playwright/test": "^1.58.2",
29
31
  "@types/debug": "^4.1.12",
30
32
  "@types/node": "^25.0.3",
31
33
  "esbuild": "^0.27.0",
@@ -34,7 +36,7 @@
34
36
  "typescript": "^5.6.2"
35
37
  },
36
38
  "peerDependencies": {
37
- "@flakiness/flakiness-report": "^0.27.0"
39
+ "@flakiness/flakiness-report": ">=0.26.0 <1.0.0"
38
40
  },
39
41
  "dependencies": {
40
42
  "chalk": "^5.6.2",
@@ -1 +1 @@
1
- {"version":3,"file":"gitWorktree.d.ts","sourceRoot":"","sources":["../../src/gitWorktree.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAY9D;;;;;GAKG;AACH,MAAM,MAAM,SAAS,GAAG;IACtB,8CAA8C;IAC9C,QAAQ,EAAE,eAAe,CAAC,QAAQ,CAAC;IACnC,wDAAwD;IACxD,SAAS,EAAE,eAAe,CAAC,eAAe,CAAC;IAC3C,yCAAyC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,gCAAgC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mHAAmH;IACnH,OAAO,EAAE,eAAe,CAAC,QAAQ,EAAE,CAAC;CACrC,CAAA;AAyCD;;;;GAIG;AACH,qBAAa,WAAW;IA4BV,OAAO,CAAC,QAAQ;IA3B5B;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CAAC,MAAM,CAAC,qBAAqB,EAAE,MAAM;IAS3C,OAAO,CAAC,aAAa,CAAoB;gBAErB,QAAQ,EAAE,MAAM;IAIpC;;;;;;;;;;;;OAYG;IACH,QAAQ,IAAI,MAAM;IAIlB;;;;;;;;;;;;OAYG;IACH,YAAY,IAAI,eAAe,CAAC,QAAQ;IASxC;;;;;;;;;;;;;;;;;;OAkBG;IACH,OAAO,CAAC,YAAY,EAAE,MAAM,GAAG,eAAe,CAAC,WAAW;IAI1D;;;;;;;;;;;;;;;;;;OAkBG;IACH,YAAY,CAAC,YAAY,EAAE,eAAe,CAAC,WAAW,GAAG,MAAM;IAI/D;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACG,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;CAGvD"}
1
+ {"version":3,"file":"gitWorktree.d.ts","sourceRoot":"","sources":["../../src/gitWorktree.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAwB9D;;;;;GAKG;AACH,MAAM,MAAM,SAAS,GAAG;IACtB,8CAA8C;IAC9C,QAAQ,EAAE,eAAe,CAAC,QAAQ,CAAC;IACnC,wDAAwD;IACxD,SAAS,EAAE,eAAe,CAAC,eAAe,CAAC;IAC3C,yCAAyC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,gCAAgC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mHAAmH;IACnH,OAAO,EAAE,eAAe,CAAC,QAAQ,EAAE,CAAC;CACrC,CAAA;AAyCD;;;;GAIG;AACH,qBAAa,WAAW;IA6BV,OAAO,CAAC,QAAQ;IA5B5B;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CAAC,MAAM,CAAC,qBAAqB,EAAE,MAAM;IAU3C,OAAO,CAAC,aAAa,CAAoB;gBAErB,QAAQ,EAAE,MAAM;IAIpC;;;;;;;;;;;;OAYG;IACH,QAAQ,IAAI,MAAM;IAIlB;;;;;;;;;;;;OAYG;IACH,YAAY,IAAI,eAAe,CAAC,QAAQ;IAUxC;;;;;;;;;;;;;;;;;;OAkBG;IACH,OAAO,CAAC,YAAY,EAAE,MAAM,GAAG,eAAe,CAAC,WAAW;IAI1D;;;;;;;;;;;;;;;;;;OAkBG;IACH,YAAY,CAAC,YAAY,EAAE,eAAe,CAAC,WAAW,GAAG,MAAM;IAI/D;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACG,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;CAGvD"}