@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 +2 -0
- package/lib/browser.js +3 -7
- package/lib/index.js +14 -10
- package/package.json +4 -2
- package/types/src/gitWorktree.d.ts.map +1 -1
package/README.md
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
[](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
|
|
299
|
-
const envIdToIndex = new Map(
|
|
294
|
+
const uniqueEnvIds = [...gEnvs.keys()];
|
|
295
|
+
const envIdToIndex = new Map(uniqueEnvIds.map((envId, index) => [envId, index]));
|
|
300
296
|
return {
|
|
301
297
|
...report,
|
|
302
|
-
environments:
|
|
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
|
|
957
|
-
const envIdToIndex = new Map(
|
|
960
|
+
const uniqueEnvIds = [...gEnvs.keys()];
|
|
961
|
+
const envIdToIndex = new Map(uniqueEnvIds.map((envId, index) => [envId, index]));
|
|
958
962
|
return {
|
|
959
963
|
...report,
|
|
960
|
-
environments:
|
|
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.
|
|
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": "
|
|
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;
|
|
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"}
|