@alwaysmeticulous/cli 2.305.0 → 2.307.0

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.
Files changed (126) hide show
  1. package/dist/commands/agent/index.js +8 -8
  2. package/dist/commands/agent/index.js.map +1 -1
  3. package/dist/commands/agent/js-coverage.command.d.ts +5 -0
  4. package/dist/commands/agent/js-coverage.command.d.ts.map +1 -1
  5. package/dist/commands/agent/js-coverage.command.js +120 -24
  6. package/dist/commands/agent/js-coverage.command.js.map +1 -1
  7. package/dist/commands/agent/js-coverage.command.spec.js +48 -2
  8. package/dist/commands/agent/js-coverage.command.spec.js.map +1 -1
  9. package/dist/commands/agent/screenshot-dom-diff.command.d.ts.map +1 -1
  10. package/dist/commands/agent/screenshot-dom-diff.command.js +3 -3
  11. package/dist/commands/agent/screenshot-dom-diff.command.js.map +1 -1
  12. package/dist/commands/agent/screenshot-image-files.command.d.ts.map +1 -1
  13. package/dist/commands/agent/screenshot-image-files.command.js +3 -3
  14. package/dist/commands/agent/screenshot-image-files.command.js.map +1 -1
  15. package/dist/commands/agent/screenshot-image.command.d.ts.map +1 -1
  16. package/dist/commands/agent/screenshot-image.command.js +3 -3
  17. package/dist/commands/agent/screenshot-image.command.js.map +1 -1
  18. package/dist/commands/agent/test-run-diffs.command.d.ts +1 -1
  19. package/dist/commands/agent/test-run-diffs.command.d.ts.map +1 -1
  20. package/dist/commands/agent/test-run-diffs.command.js +39 -31
  21. package/dist/commands/agent/test-run-diffs.command.js.map +1 -1
  22. package/dist/commands/agent/test-run-diffs.command.spec.d.ts +2 -0
  23. package/dist/commands/agent/test-run-diffs.command.spec.d.ts.map +1 -0
  24. package/dist/commands/agent/test-run-diffs.command.spec.js +148 -0
  25. package/dist/commands/agent/test-run-diffs.command.spec.js.map +1 -0
  26. package/dist/commands/agent/test-run-diffs.utils.d.ts +14 -26
  27. package/dist/commands/agent/test-run-diffs.utils.d.ts.map +1 -1
  28. package/dist/commands/agent/test-run-diffs.utils.js +23 -35
  29. package/dist/commands/agent/test-run-diffs.utils.js.map +1 -1
  30. package/dist/commands/agent/test-run-diffs.utils.spec.js +15 -58
  31. package/dist/commands/agent/test-run-diffs.utils.spec.js.map +1 -1
  32. package/dist/commands/agent/test-run-for-commit.command.d.ts +1 -0
  33. package/dist/commands/agent/test-run-for-commit.command.d.ts.map +1 -1
  34. package/dist/commands/agent/test-run-for-commit.command.js +11 -12
  35. package/dist/commands/agent/test-run-for-commit.command.js.map +1 -1
  36. package/dist/commands/agent/trigger-test-run.command.d.ts +1 -0
  37. package/dist/commands/agent/trigger-test-run.command.d.ts.map +1 -1
  38. package/dist/commands/agent/trigger-test-run.command.js +8 -6
  39. package/dist/commands/agent/trigger-test-run.command.js.map +1 -1
  40. package/dist/commands/agent/upload-build.command.js +3 -3
  41. package/dist/commands/agent/upload-build.command.js.map +1 -1
  42. package/dist/commands/auth/__tests__/get-project.command.spec.d.ts +2 -0
  43. package/dist/commands/auth/__tests__/get-project.command.spec.d.ts.map +1 -0
  44. package/dist/commands/auth/__tests__/get-project.command.spec.js +72 -0
  45. package/dist/commands/auth/__tests__/get-project.command.spec.js.map +1 -0
  46. package/dist/commands/auth/__tests__/login.command.spec.js +13 -29
  47. package/dist/commands/auth/__tests__/login.command.spec.js.map +1 -1
  48. package/dist/commands/auth/__tests__/logout.command.spec.js +3 -6
  49. package/dist/commands/auth/__tests__/logout.command.spec.js.map +1 -1
  50. package/dist/commands/auth/__tests__/set-project.command.spec.d.ts +2 -0
  51. package/dist/commands/auth/__tests__/set-project.command.spec.d.ts.map +1 -0
  52. package/dist/commands/auth/__tests__/set-project.command.spec.js +60 -0
  53. package/dist/commands/auth/__tests__/set-project.command.spec.js.map +1 -0
  54. package/dist/commands/auth/__tests__/whoami.command.spec.js +16 -8
  55. package/dist/commands/auth/__tests__/whoami.command.spec.js.map +1 -1
  56. package/dist/commands/auth/get-project.command.d.ts +10 -0
  57. package/dist/commands/auth/get-project.command.d.ts.map +1 -0
  58. package/dist/commands/auth/get-project.command.js +49 -0
  59. package/dist/commands/auth/get-project.command.js.map +1 -0
  60. package/dist/commands/auth/index.js +4 -4
  61. package/dist/commands/auth/index.js.map +1 -1
  62. package/dist/commands/auth/login.command.d.ts.map +1 -1
  63. package/dist/commands/auth/login.command.js +9 -24
  64. package/dist/commands/auth/login.command.js.map +1 -1
  65. package/dist/commands/auth/logout.command.d.ts.map +1 -1
  66. package/dist/commands/auth/logout.command.js +6 -4
  67. package/dist/commands/auth/logout.command.js.map +1 -1
  68. package/dist/commands/auth/whoami.command.d.ts.map +1 -1
  69. package/dist/commands/auth/whoami.command.js +10 -22
  70. package/dist/commands/auth/whoami.command.js.map +1 -1
  71. package/dist/commands/ci/__tests__/session-filter.utils.spec.d.ts +2 -0
  72. package/dist/commands/ci/__tests__/session-filter.utils.spec.d.ts.map +1 -0
  73. package/dist/commands/ci/__tests__/session-filter.utils.spec.js +66 -0
  74. package/dist/commands/ci/__tests__/session-filter.utils.spec.js.map +1 -0
  75. package/dist/commands/ci/run-with-uploaded-asset-chunks.command.d.ts +1 -0
  76. package/dist/commands/ci/run-with-uploaded-asset-chunks.command.d.ts.map +1 -1
  77. package/dist/commands/ci/run-with-uploaded-asset-chunks.command.js +29 -4
  78. package/dist/commands/ci/run-with-uploaded-asset-chunks.command.js.map +1 -1
  79. package/dist/commands/ci/session-filter.utils.d.ts +25 -0
  80. package/dist/commands/ci/session-filter.utils.d.ts.map +1 -0
  81. package/dist/commands/ci/session-filter.utils.js +80 -0
  82. package/dist/commands/ci/session-filter.utils.js.map +1 -0
  83. package/dist/commands/ci/trigger-test-run.core.js +3 -3
  84. package/dist/commands/ci/trigger-test-run.core.js.map +1 -1
  85. package/dist/commands/ci/upload-asset-chunk.command.js +3 -3
  86. package/dist/commands/ci/upload-asset-chunk.command.js.map +1 -1
  87. package/dist/commands/debug/index.d.ts.map +1 -1
  88. package/dist/commands/debug/index.js +6 -9
  89. package/dist/commands/debug/index.js.map +1 -1
  90. package/dist/commands/local/relevant-sessions.command.js +3 -3
  91. package/dist/commands/local/relevant-sessions.command.js.map +1 -1
  92. package/dist/commands/project/show.command.js +3 -3
  93. package/dist/commands/project/show.command.js.map +1 -1
  94. package/dist/commands/record/__tests__/login.command.spec.js +5 -3
  95. package/dist/commands/record/__tests__/login.command.spec.js.map +1 -1
  96. package/dist/commands/record/__tests__/session.command.spec.js +5 -3
  97. package/dist/commands/record/__tests__/session.command.spec.js.map +1 -1
  98. package/dist/commands/record/login.command.js +3 -3
  99. package/dist/commands/record/login.command.js.map +1 -1
  100. package/dist/commands/record/session.command.js +3 -3
  101. package/dist/commands/record/session.command.js.map +1 -1
  102. package/dist/utils/__tests__/resolve-project-identifier.spec.js +36 -32
  103. package/dist/utils/__tests__/resolve-project-identifier.spec.js.map +1 -1
  104. package/dist/utils/__tests__/select-project.spec.js +135 -47
  105. package/dist/utils/__tests__/select-project.spec.js.map +1 -1
  106. package/dist/utils/handle-auth-failure.d.ts +1 -0
  107. package/dist/utils/handle-auth-failure.d.ts.map +1 -1
  108. package/dist/utils/handle-auth-failure.js +5 -4
  109. package/dist/utils/handle-auth-failure.js.map +1 -1
  110. package/dist/utils/resolve-project-identifier.d.ts +12 -10
  111. package/dist/utils/resolve-project-identifier.d.ts.map +1 -1
  112. package/dist/utils/resolve-project-identifier.js +29 -18
  113. package/dist/utils/resolve-project-identifier.js.map +1 -1
  114. package/dist/utils/resolve-test-run-from-commit.d.ts +6 -2
  115. package/dist/utils/resolve-test-run-from-commit.d.ts.map +1 -1
  116. package/dist/utils/resolve-test-run-from-commit.js +10 -9
  117. package/dist/utils/resolve-test-run-from-commit.js.map +1 -1
  118. package/dist/utils/select-project.d.ts +37 -13
  119. package/dist/utils/select-project.d.ts.map +1 -1
  120. package/dist/utils/select-project.js +111 -41
  121. package/dist/utils/select-project.js.map +1 -1
  122. package/package.json +10 -9
  123. package/dist/commands/auth/unset-project.command.d.ts +0 -3
  124. package/dist/commands/auth/unset-project.command.d.ts.map +0 -1
  125. package/dist/commands/auth/unset-project.command.js +0 -27
  126. package/dist/commands/auth/unset-project.command.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="e5649cd0-a9d2-5719-85f9-89d147f580e4")}catch(e){}}();
2
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="ae6e7fd0-5bdc-5a0b-94e2-2a83edc7d8c3")}catch(e){}}();
3
3
 
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
5
  exports.imageUrlsCommand = void 0;
@@ -44,11 +44,11 @@ exports.imageUrlsCommand = {
44
44
  },
45
45
  screenshotName: {
46
46
  string: true,
47
- description: 'Screenshot name (e.g. "after-event-5" or "end-state")',
47
+ description: 'Screenshot name, exactly as listed in the screenshotName column of `agent test-run-diffs` for this replay diff (e.g. "after-event-5", "end-state", or "auxiliary-291-0-exit_animation")',
48
48
  demandOption: true,
49
49
  },
50
50
  },
51
51
  handler: (0, sentry_utils_1.wrapHandler)(handler),
52
52
  };
53
53
  //# sourceMappingURL=screenshot-image.command.js.map
54
- //# debugId=e5649cd0-a9d2-5719-85f9-89d147f580e4
54
+ //# debugId=ae6e7fd0-5bdc-5a0b-94e2-2a83edc7d8c3
@@ -1 +1 @@
1
- {"version":3,"file":"screenshot-image.command.js","sources":["../../../src/commands/agent/screenshot-image.command.ts"],"sourceRoot":"","names":[],"mappings":";;;;;AAAA,qDAGkC;AAClC,qDAAsD;AAEtD,+DAA2D;AAC3D,mEAA+D;AAS/D,MAAM,OAAO,GAAG,KAAK,EAAE,EACrB,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,IAAI,GACI,EAAiB,EAAE;IAC3B,IAAA,mBAAU,GAAE,CAAC;IACb,MAAM,MAAM,GAAG,MAAM,IAAA,8BAAqB,EAAC;QACzC,QAAQ;QACR,gBAAgB,EAAE,IAAI;KACvB,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,MAAM,IAAA,0BAAiB,EAAC,MAAM,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC;IAE3E,IAAI,IAAI,EAAE,CAAC;QACT,IAAA,sBAAS,EAAC,IAAI,CAAC,CAAC;QAChB,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IACxC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAChD,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACxC,CAAC;IACD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IACtC,CAAC;IACD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IAC9C,CAAC;AACH,CAAC,CAAC;AAEW,QAAA,gBAAgB,GAAoC;IAC/D,OAAO,EAAE,YAAY;IACrB,QAAQ,EACN,yJAAyJ;IAC3J,OAAO,EAAE;QACP,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,sBAAsB,EAAE;QAC/D,YAAY,EAAE;YACZ,MAAM,EAAE,IAAI;YACZ,WAAW,EAAE,oBAAoB;YACjC,YAAY,EAAE,IAAI;SACnB;QACD,cAAc,EAAE;YACd,MAAM,EAAE,IAAI;YACZ,WAAW,EAAE,uDAAuD;YACpE,YAAY,EAAE,IAAI;SACnB;KACF;IACD,OAAO,EAAE,IAAA,0BAAW,EAAC,OAAO,CAAC;CAC9B,CAAC","debugId":"e5649cd0-a9d2-5719-85f9-89d147f580e4"}
1
+ {"version":3,"file":"screenshot-image.command.js","sources":["../../../src/commands/agent/screenshot-image.command.ts"],"sourceRoot":"","names":[],"mappings":";;;;;AAAA,qDAGkC;AAClC,qDAAsD;AAEtD,+DAA2D;AAC3D,mEAA+D;AAS/D,MAAM,OAAO,GAAG,KAAK,EAAE,EACrB,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,IAAI,GACI,EAAiB,EAAE;IAC3B,IAAA,mBAAU,GAAE,CAAC;IACb,MAAM,MAAM,GAAG,MAAM,IAAA,8BAAqB,EAAC;QACzC,QAAQ;QACR,gBAAgB,EAAE,IAAI;KACvB,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,MAAM,IAAA,0BAAiB,EAAC,MAAM,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC;IAE3E,IAAI,IAAI,EAAE,CAAC;QACT,IAAA,sBAAS,EAAC,IAAI,CAAC,CAAC;QAChB,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IACxC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;IAChD,CAAC;IACD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;IACxC,CAAC;IACD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IACtC,CAAC;IACD,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IAC9C,CAAC;AACH,CAAC,CAAC;AAEW,QAAA,gBAAgB,GAAoC;IAC/D,OAAO,EAAE,YAAY;IACrB,QAAQ,EACN,yJAAyJ;IAC3J,OAAO,EAAE;QACP,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,sBAAsB,EAAE;QAC/D,YAAY,EAAE;YACZ,MAAM,EAAE,IAAI;YACZ,WAAW,EAAE,oBAAoB;YACjC,YAAY,EAAE,IAAI;SACnB;QACD,cAAc,EAAE;YACd,MAAM,EAAE,IAAI;YACZ,WAAW,EACT,yLAAyL;YAC3L,YAAY,EAAE,IAAI;SACnB;KACF;IACD,OAAO,EAAE,IAAA,0BAAW,EAAC,OAAO,CAAC;CAC9B,CAAC","debugId":"ae6e7fd0-5bdc-5a0b-94e2-2a83edc7d8c3"}
@@ -7,9 +7,9 @@ interface Options {
7
7
  includeReplayIds: boolean;
8
8
  includeDomDiffIds: boolean;
9
9
  includeAllDiffs: boolean;
10
- includeMatches: boolean;
11
10
  orderByReplayDiffs: boolean;
12
11
  json: boolean;
12
+ project?: string | undefined;
13
13
  }
14
14
  export declare const testRunDiffsCommand: CommandModule<unknown, Options>;
15
15
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"test-run-diffs.command.d.ts","sourceRoot":"","sources":["../../../src/commands/agent/test-run-diffs.command.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAiB3C,UAAU,OAAO;IACf,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACrC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,4BAA4B,EAAE,OAAO,CAAC;IACtC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,eAAe,EAAE,OAAO,CAAC;IACzB,cAAc,EAAE,OAAO,CAAC;IACxB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,IAAI,EAAE,OAAO,CAAC;CACf;AAwKD,eAAO,MAAM,mBAAmB,EAAE,aAAa,CAAC,OAAO,EAAE,OAAO,CAqD/D,CAAC"}
1
+ {"version":3,"file":"test-run-diffs.command.d.ts","sourceRoot":"","sources":["../../../src/commands/agent/test-run-diffs.command.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAgB3C,UAAU,OAAO;IACf,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACrC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,4BAA4B,EAAE,OAAO,CAAC;IACtC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,iBAAiB,EAAE,OAAO,CAAC;IAC3B,eAAe,EAAE,OAAO,CAAC;IACzB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC9B;AAoLD,eAAO,MAAM,mBAAmB,EAAE,aAAa,CAAC,OAAO,EAAE,OAAO,CAqD/D,CAAC"}
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="ac6db732-4e61-5384-b37b-3468ad45cc35")}catch(e){}}();
2
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="946d252c-7ec9-5eed-bab5-f9cb175d5dbf")}catch(e){}}();
3
3
 
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
5
  exports.testRunDiffsCommand = void 0;
@@ -13,14 +13,10 @@ const test_run_diffs_utils_1 = require("./test-run-diffs.utils");
13
13
  const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
14
14
  /** Give up polling the diffs summary after this long, rather than forever. */
15
15
  const SUMMARY_POLL_TIMEOUT_MS = 10 * 60_000;
16
- const handler = async ({ apiToken, testRunId, commitSha, dontWaitForTestRunToComplete, includeReplayIds, includeDomDiffIds, includeAllDiffs, includeMatches, orderByReplayDiffs, json, }) => {
16
+ const handler = async ({ apiToken, testRunId, commitSha, dontWaitForTestRunToComplete, includeReplayIds, includeDomDiffIds, includeAllDiffs, orderByReplayDiffs, json, project, }) => {
17
17
  if (testRunId != null && commitSha != null) {
18
18
  throw new cli_user_error_1.CliUserError("Pass either --testRunId or --commitSha, not both.");
19
19
  }
20
- const apiToken_ = await (0, client_1.resolveApiTokenWithOAuth)({
21
- apiToken,
22
- enableOAuthLogin: true,
23
- });
24
20
  const client = await (0, client_1.createClientWithOAuth)({
25
21
  apiToken,
26
22
  enableOAuthLogin: true,
@@ -34,19 +30,14 @@ const handler = async ({ apiToken, testRunId, commitSha, dontWaitForTestRunToCom
34
30
  status = (await (0, client_1.getTestRun)({ client, testRunId })).status;
35
31
  }
36
32
  else {
37
- const run = await (0, resolve_test_run_from_commit_1.resolveTestRunForCommitOrThrow)(client, apiToken_, commitSha);
33
+ const run = await (0, resolve_test_run_from_commit_1.resolveTestRunForCommitOrThrow)(client, commitSha, project);
38
34
  resolvedTestRunId = run.testRunId;
39
35
  status = run.status;
40
36
  }
41
- // --includeMatches implies --includeAllDiffs (matches are never part of the
42
- // selected subset, so they only make sense alongside the full set). Use the
43
- // effective value for both the request and the isSelected column. Computed
44
- // up-front so the header can be emitted even on the in-progress short-circuit.
45
- const allDiffs = (0, test_run_diffs_utils_1.resolveIncludeAllDiffs)({ includeAllDiffs, includeMatches });
46
37
  const columns = {
47
38
  orderByReplayDiffs,
48
39
  includeDomDiffIds,
49
- includeAllDiffs: allDiffs,
40
+ includeAllDiffs,
50
41
  includeReplayIds,
51
42
  };
52
43
  // Diffs are only meaningful once the run has finished with a verdict
@@ -75,18 +66,39 @@ const handler = async ({ apiToken, testRunId, commitSha, dontWaitForTestRunToCom
75
66
  const diffsSummaryOptions = {
76
67
  includeReplayIds,
77
68
  includeDomDiffIds,
78
- includeAllDiffs: allDiffs,
79
- includeMatches,
69
+ includeAllDiffs,
80
70
  orderByReplayDiffs,
81
71
  };
82
72
  let response = await (0, client_1.getTestRunDiffsSummary)(client, resolvedTestRunId, diffsSummaryOptions);
73
+ // A cold start finding the last computation already `failed` retriggers
74
+ // once, up front — before the poll deadline below is computed, so the fresh
75
+ // run always gets the full timeout. This is a one-shot decision made only
76
+ // here, not inside the poll loop: once we're polling, a `failed` result is
77
+ // reported and the command exits, it never retriggers again.
78
+ if (response.status === "failed") {
79
+ (0, common_1.logProgress)(`Diffs computation failed for test run ${resolvedTestRunId}; retriggering...`);
80
+ response = await (0, client_1.getTestRunDiffsSummary)(client, resolvedTestRunId, {
81
+ ...diffsSummaryOptions,
82
+ retrigger: true,
83
+ });
84
+ }
83
85
  // Poll until complete (or give up after the timeout, rather than forever).
84
86
  // A single line when we start waiting — no per-poll output.
85
87
  const summaryDeadline = performance.now() + SUMMARY_POLL_TIMEOUT_MS;
86
88
  if (response.status === "pending" || response.status === "processing") {
87
89
  (0, common_1.logProgress)(`Waiting for diff results for test run ${resolvedTestRunId}...`);
88
90
  }
89
- while (response.status === "pending" || response.status === "processing") {
91
+ while (response.status !== "complete") {
92
+ if (response.status === "failed") {
93
+ const reasonSuffix = response.reason != null ? ` (${response.reason})` : "";
94
+ (0, common_1.logNotice)(`Diffs summary computation failed${reasonSuffix} for test run ${resolvedTestRunId}. ` +
95
+ `Something may have gone wrong — try again later.`);
96
+ process.exit(1);
97
+ }
98
+ if (response.status !== "pending" && response.status !== "processing") {
99
+ (0, common_1.logNotice)(`Error: unexpected status "${String(response.status)}"`);
100
+ process.exit(1);
101
+ }
90
102
  if (performance.now() >= summaryDeadline) {
91
103
  (0, common_1.logNotice)(`Diffs summary for test run ${resolvedTestRunId} did not complete within 10 minutes ` +
92
104
  `(status: ${response.status}). Something may have gone wrong — try again later.`);
@@ -95,14 +107,10 @@ const handler = async ({ apiToken, testRunId, commitSha, dontWaitForTestRunToCom
95
107
  await sleep(2000);
96
108
  response = await (0, client_1.getTestRunDiffsSummary)(client, resolvedTestRunId, diffsSummaryOptions);
97
109
  }
98
- if (response.status !== "complete") {
99
- (0, common_1.logNotice)(`Error: unexpected status "${response.status}"`);
100
- process.exit(1);
101
- }
102
110
  const data = response.data ?? [];
103
- // The backend sets `index` to the priority rank by default, or the
104
- // within-replay position (with `total`) when orderByReplayDiffs is set.
105
- const rows = (0, test_run_diffs_utils_1.flattenDiffRows)(data, orderByReplayDiffs);
111
+ // The backend sets `index` to a global rank — a flat priority rank by default,
112
+ // or a replayDiff-grouped rank under orderByReplayDiffs; rows sort by it.
113
+ const rows = (0, test_run_diffs_utils_1.flattenDiffRows)(data);
106
114
  if (json) {
107
115
  (0, print_json_1.printJson)((0, test_run_diffs_utils_1.buildDiffsSummaryJson)(data, columns));
108
116
  }
@@ -125,7 +133,7 @@ const handler = async ({ apiToken, testRunId, commitSha, dontWaitForTestRunToCom
125
133
  };
126
134
  exports.testRunDiffsCommand = {
127
135
  command: "test-run-diffs",
128
- describe: "List replay diffs for a test run. Outputs TSV, one row per screenshot: replayDiffId, screenshotName, outcome, mismatch (plus optional columns depending on flags), or the same data with --json (nested by replay diff under --orderByReplayDiffs).",
136
+ describe: "List replay diffs for a test run. Outputs TSV, one row per screenshot diff: replayDiffId, screenshotName, index, outcome, mismatch (plus optional columns depending on flags), or the same data with --json (nested by replay diff under --orderByReplayDiffs).",
129
137
  builder: {
130
138
  apiToken: { string: true, description: "Meticulous API token" },
131
139
  testRunId: {
@@ -156,18 +164,18 @@ exports.testRunDiffsCommand = {
156
164
  description: "Return every diff instead of only the selected representative subset; adds an isSelected column",
157
165
  default: false,
158
166
  },
159
- includeMatches: {
160
- boolean: true,
161
- description: "Include matching screenshots (matches, known flakes), not just differences. Implies --includeAllDiffs.",
162
- default: false,
163
- },
164
167
  orderByReplayDiffs: {
165
168
  boolean: true,
166
- description: "Order rows by replay diff then event index (instead of by selection priority) and include the index/total columns",
169
+ description: "With --json, group screenshots by replay diff instead of a flat list; the index is then a replayDiff-grouped rank rather than a flat priority rank",
167
170
  default: false,
168
171
  },
172
+ project: {
173
+ string: true,
174
+ description: "Project to resolve --commitSha against (id, 'organization/name', or a bare name unique among your accessible projects). Cannot be combined with --testRunId (the run already determines the project). One-off override for this call only; when omitted, uses the token's project or the default set via `auth set-project`.",
175
+ conflicts: "testRunId",
176
+ },
169
177
  },
170
178
  handler: (0, sentry_utils_1.wrapHandler)(handler),
171
179
  };
172
180
  //# sourceMappingURL=test-run-diffs.command.js.map
173
- //# debugId=ac6db732-4e61-5384-b37b-3468ad45cc35
181
+ //# debugId=946d252c-7ec9-5eed-bab5-f9cb175d5dbf
@@ -1 +1 @@
1
- {"version":3,"file":"test-run-diffs.command.js","sources":["../../../src/commands/agent/test-run-diffs.command.ts"],"sourceRoot":"","names":[],"mappings":"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","debugId":"ac6db732-4e61-5384-b37b-3468ad45cc35"}
1
+ {"version":3,"file":"test-run-diffs.command.js","sources":["../../../src/commands/agent/test-run-diffs.command.ts"],"sourceRoot":"","names":[],"mappings":"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","debugId":"946d252c-7ec9-5eed-bab5-f9cb175d5dbf"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=test-run-diffs.command.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-run-diffs.command.spec.d.ts","sourceRoot":"","sources":["../../../src/commands/agent/test-run-diffs.command.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,148 @@
1
+ "use strict";
2
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="3c0e7f38-4e30-5837-84b8-3adebb23936a")}catch(e){}}();
3
+
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ const vitest_1 = require("vitest");
6
+ const test_run_diffs_command_1 = require("./test-run-diffs.command");
7
+ // Make wrapHandler a passthrough so handler errors propagate directly to tests
8
+ // rather than being swallowed by process.exit().
9
+ vitest_1.vi.mock("../../command-utils/sentry.utils", () => ({
10
+ wrapHandler: (fn) => fn,
11
+ }));
12
+ const mocks = vitest_1.vi.hoisted(() => ({
13
+ createClientWithOAuth: vitest_1.vi.fn(),
14
+ resolveApiTokenWithOAuth: vitest_1.vi.fn(),
15
+ getTestRun: vitest_1.vi.fn(),
16
+ getTestRunDiffsSummary: vitest_1.vi.fn(),
17
+ ensureTestRunFinished: vitest_1.vi.fn(),
18
+ assertTestRunComplete: vitest_1.vi.fn(),
19
+ resolveTestRunForCommitOrThrow: vitest_1.vi.fn(),
20
+ logNotice: vitest_1.vi.fn(),
21
+ logProgress: vitest_1.vi.fn(),
22
+ }));
23
+ vitest_1.vi.mock("@alwaysmeticulous/client", () => ({
24
+ createClientWithOAuth: mocks.createClientWithOAuth,
25
+ resolveApiTokenWithOAuth: mocks.resolveApiTokenWithOAuth,
26
+ getTestRun: mocks.getTestRun,
27
+ getTestRunDiffsSummary: mocks.getTestRunDiffsSummary,
28
+ }));
29
+ vitest_1.vi.mock("@alwaysmeticulous/common", () => ({
30
+ logNotice: mocks.logNotice,
31
+ logProgress: mocks.logProgress,
32
+ }));
33
+ vitest_1.vi.mock("../../utils/resolve-test-run-from-commit", () => ({
34
+ ensureTestRunFinished: mocks.ensureTestRunFinished,
35
+ assertTestRunComplete: mocks.assertTestRunComplete,
36
+ resolveTestRunForCommitOrThrow: mocks.resolveTestRunForCommitOrThrow,
37
+ }));
38
+ class ProcessExitError extends Error {
39
+ code;
40
+ constructor(code) {
41
+ super(`process.exit(${code})`);
42
+ this.code = code;
43
+ }
44
+ }
45
+ const runHandler = () => test_run_diffs_command_1.testRunDiffsCommand.handler({
46
+ apiToken: undefined,
47
+ testRunId: "tr-1",
48
+ commitSha: undefined,
49
+ dontWaitForTestRunToComplete: false,
50
+ includeReplayIds: false,
51
+ includeDomDiffIds: false,
52
+ includeAllDiffs: false,
53
+ orderByReplayDiffs: false,
54
+ json: false,
55
+ });
56
+ let logSpy;
57
+ let exitSpy;
58
+ (0, vitest_1.describe)("test-run-diffs command polling", () => {
59
+ (0, vitest_1.beforeEach)(() => {
60
+ vitest_1.vi.clearAllMocks();
61
+ mocks.createClientWithOAuth.mockResolvedValue({});
62
+ mocks.resolveApiTokenWithOAuth.mockResolvedValue("token");
63
+ mocks.getTestRun.mockResolvedValue({ status: "Success" });
64
+ mocks.ensureTestRunFinished.mockResolvedValue("Success");
65
+ mocks.assertTestRunComplete.mockReturnValue(undefined);
66
+ logSpy = vitest_1.vi.spyOn(console, "log").mockImplementation(() => { });
67
+ exitSpy = vitest_1.vi.spyOn(process, "exit").mockImplementation(((code) => {
68
+ throw new ProcessExitError(code);
69
+ }));
70
+ });
71
+ (0, vitest_1.afterEach)(() => {
72
+ logSpy.mockRestore();
73
+ exitSpy.mockRestore();
74
+ });
75
+ (0, vitest_1.it)("retriggers once up front when the run starts out failed, then reports success", async () => {
76
+ mocks.getTestRunDiffsSummary
77
+ .mockResolvedValueOnce({ status: "failed", reason: "TIMED_OUT" }) // cold-start check
78
+ .mockResolvedValueOnce({ status: "pending" }) // the retrigger call
79
+ .mockResolvedValueOnce({ status: "complete", data: [] }); // first poll
80
+ vitest_1.vi.useFakeTimers();
81
+ const handlerPromise = runHandler();
82
+ await vitest_1.vi.advanceTimersByTimeAsync(2_000);
83
+ await handlerPromise;
84
+ vitest_1.vi.useRealTimers();
85
+ (0, vitest_1.expect)(exitSpy).not.toHaveBeenCalled();
86
+ (0, vitest_1.expect)(mocks.getTestRunDiffsSummary).toHaveBeenCalledTimes(3);
87
+ (0, vitest_1.expect)(mocks.getTestRunDiffsSummary).toHaveBeenNthCalledWith(2, vitest_1.expect.anything(), "tr-1", vitest_1.expect.objectContaining({ retrigger: true }));
88
+ // The poll after retriggering carries no retrigger param of its own.
89
+ (0, vitest_1.expect)(mocks.getTestRunDiffsSummary).toHaveBeenNthCalledWith(3, vitest_1.expect.anything(), "tr-1", vitest_1.expect.not.objectContaining({ retrigger: true }));
90
+ });
91
+ (0, vitest_1.it)("does not retrigger a second time if the freshly retriggered run also fails", async () => {
92
+ mocks.getTestRunDiffsSummary
93
+ .mockResolvedValueOnce({ status: "failed", reason: "TIMED_OUT" }) // cold-start check
94
+ .mockResolvedValueOnce({ status: "pending" }) // the retrigger call
95
+ .mockResolvedValueOnce({ status: "failed", reason: "FAILED" }); // first poll fails too
96
+ vitest_1.vi.useFakeTimers();
97
+ const handlerRejection = (0, vitest_1.expect)(runHandler()).rejects.toThrow(ProcessExitError);
98
+ await vitest_1.vi.advanceTimersByTimeAsync(2_000);
99
+ await handlerRejection;
100
+ vitest_1.vi.useRealTimers();
101
+ (0, vitest_1.expect)(exitSpy).toHaveBeenCalledWith(1);
102
+ (0, vitest_1.expect)(mocks.logNotice).toHaveBeenCalledWith(vitest_1.expect.stringContaining("failed (FAILED)"));
103
+ // Exactly one retrigger for the whole invocation: the initial cold-start
104
+ // check plus the one retrigger call, nothing more.
105
+ (0, vitest_1.expect)(mocks.getTestRunDiffsSummary).toHaveBeenCalledTimes(3);
106
+ });
107
+ (0, vitest_1.it)("does not retrigger when the run isn't already failed", async () => {
108
+ mocks.getTestRunDiffsSummary.mockResolvedValue({
109
+ status: "complete",
110
+ data: [],
111
+ });
112
+ await runHandler();
113
+ (0, vitest_1.expect)(mocks.getTestRunDiffsSummary).toHaveBeenCalledTimes(1);
114
+ (0, vitest_1.expect)(mocks.getTestRunDiffsSummary).not.toHaveBeenCalledWith(vitest_1.expect.anything(), vitest_1.expect.anything(), vitest_1.expect.objectContaining({ retrigger: true }));
115
+ });
116
+ (0, vitest_1.it)("exits 1 immediately on an unrecognized status", async () => {
117
+ mocks.getTestRunDiffsSummary.mockResolvedValue({
118
+ status: "unexpected_bogus_status",
119
+ });
120
+ await (0, vitest_1.expect)(runHandler()).rejects.toThrow(ProcessExitError);
121
+ (0, vitest_1.expect)(exitSpy).toHaveBeenCalledWith(1);
122
+ (0, vitest_1.expect)(mocks.logNotice).toHaveBeenCalledWith(vitest_1.expect.stringContaining('unexpected status "unexpected_bogus_status"'));
123
+ });
124
+ (0, vitest_1.it)("exits 1 once the 10-minute deadline passes while still pending", async () => {
125
+ mocks.getTestRunDiffsSummary.mockResolvedValue({ status: "pending" });
126
+ const nowSpy = vitest_1.vi
127
+ .spyOn(performance, "now")
128
+ .mockReturnValueOnce(0) // t0
129
+ .mockReturnValueOnce(0) // summaryDeadline base
130
+ .mockReturnValueOnce(999_999_999); // deadline check inside the loop
131
+ await (0, vitest_1.expect)(runHandler()).rejects.toThrow(ProcessExitError);
132
+ (0, vitest_1.expect)(exitSpy).toHaveBeenCalledWith(1);
133
+ (0, vitest_1.expect)(mocks.logNotice).toHaveBeenCalledWith(vitest_1.expect.stringContaining("did not complete within 10 minutes"));
134
+ nowSpy.mockRestore();
135
+ });
136
+ (0, vitest_1.it)("prints TSV output once the computation completes", async () => {
137
+ mocks.getTestRunDiffsSummary.mockResolvedValue({
138
+ status: "complete",
139
+ data: [],
140
+ });
141
+ await runHandler();
142
+ (0, vitest_1.expect)(exitSpy).not.toHaveBeenCalled();
143
+ const stdout = logSpy.mock.calls.flat().join("\n");
144
+ (0, vitest_1.expect)(stdout.split("\n")[0]).toContain("replayDiffId");
145
+ });
146
+ });
147
+ //# sourceMappingURL=test-run-diffs.command.spec.js.map
148
+ //# debugId=3c0e7f38-4e30-5837-84b8-3adebb23936a
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-run-diffs.command.spec.js","sources":["../../../src/commands/agent/test-run-diffs.command.spec.ts"],"sourceRoot":"","names":[],"mappings":"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","debugId":"3c0e7f38-4e30-5837-84b8-3adebb23936a"}
@@ -6,44 +6,32 @@ export interface DiffRow {
6
6
  }
7
7
  /** Which optional columns the TSV output includes. */
8
8
  export interface DiffsSummaryColumns {
9
- /** Order by replay diff then event index; adds the index/total columns. */
9
+ /**
10
+ * Group the JSON output by replay diff (screenshots nested underneath) instead
11
+ * of a flat list. Either way the global `index` gives the ordering.
12
+ */
10
13
  orderByReplayDiffs: boolean;
11
14
  /** Add the domDiffIds column. */
12
15
  includeDomDiffIds: boolean;
13
- /**
14
- * Effective "all diffs" — true when --includeAllDiffs or --includeMatches is
15
- * set (see {@link resolveIncludeAllDiffs}); adds the isSelected column.
16
- */
16
+ /** Return every diff, not just the selected subset; adds the isSelected column. */
17
17
  includeAllDiffs: boolean;
18
18
  /** Add the base/head replay ID columns. */
19
19
  includeReplayIds: boolean;
20
20
  }
21
21
  /**
22
- * --includeMatches implies --includeAllDiffs: matches are never part of the
23
- * selected representative subset, so they only make sense alongside the full
24
- * set of diffs.
25
- */
26
- export declare const resolveIncludeAllDiffs: ({ includeAllDiffs, includeMatches, }: {
27
- includeAllDiffs: boolean;
28
- includeMatches: boolean;
29
- }) => boolean;
30
- /**
31
- * Flattens replay diffs into one list of rows. By default the backend's `index`
32
- * is a flat cross-replay-diff priority rank, so we sort by it (a flat order the
33
- * grouped response can't express). With orderByReplayDiffs the backend already
34
- * returns rows grouped by replay diff in event order, which we preserve.
35
- */
36
- export declare const flattenDiffRows: (data: DiffsSummaryReplayDiff[], orderByReplayDiffs: boolean) => DiffRow[];
37
- /**
38
- * Builds the TSV header. index/total are only meaningful with orderByReplayDiffs;
39
- * by default rows are already in priority order, so the index is omitted.
22
+ * Flattens replay diffs into one list of rows, sorted by the backend's global
23
+ * `index`. That index is a flat priority rank by default, or a replayDiff-grouped
24
+ * rank under orderByReplayDiffs — either way sorting by it yields the intended
25
+ * order (which the grouped response can't express positionally).
40
26
  */
27
+ export declare const flattenDiffRows: (data: DiffsSummaryReplayDiff[]) => DiffRow[];
28
+ /** Builds the TSV header. `index` is the global rank the rows are ordered by. */
41
29
  export declare const buildDiffsSummaryHeader: (columns: DiffsSummaryColumns) => string[];
42
30
  /**
43
31
  * Builds the JSON equivalent of the TSV, gated by the same columns. By default
44
- * it's a flat array (one object per screenshot, in the same priority order as
45
- * the TSV). With orderByReplayDiffs it nests one level — an array of replay
46
- * diffs, each with its screenshots grouped underneath (index/total then apply).
32
+ * it's a flat array (one object per screenshot, in global `index` order). With
33
+ * orderByReplayDiffs it nests one level — an array of replay diffs, each with its
34
+ * screenshots grouped underneath.
47
35
  */
48
36
  export declare const buildDiffsSummaryJson: (data: DiffsSummaryReplayDiff[], columns: DiffsSummaryColumns) => unknown[];
49
37
  /** Formats a single row's fields, gated by the same columns as the header. */
@@ -1 +1 @@
1
- {"version":3,"file":"test-run-diffs.utils.d.ts","sourceRoot":"","sources":["../../../src/commands/agent/test-run-diffs.utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,0BAA0B,CAAC;AAElC,2EAA2E;AAC3E,MAAM,WAAW,OAAO;IACtB,UAAU,EAAE,sBAAsB,CAAC;IACnC,UAAU,EAAE,sBAAsB,CAAC;CACpC;AAED,sDAAsD;AACtD,MAAM,WAAW,mBAAmB;IAClC,2EAA2E;IAC3E,kBAAkB,EAAE,OAAO,CAAC;IAC5B,iCAAiC;IACjC,iBAAiB,EAAE,OAAO,CAAC;IAC3B;;;OAGG;IACH,eAAe,EAAE,OAAO,CAAC;IACzB,2CAA2C;IAC3C,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAKD;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,yCAGhC;IACD,eAAe,EAAE,OAAO,CAAC;IACzB,cAAc,EAAE,OAAO,CAAC;CACzB,KAAG,OAA4C,CAAC;AAEjD;;;;;GAKG;AACH,eAAO,MAAM,eAAe,SACpB,sBAAsB,EAAE,sBACV,OAAO,KAC1B,OAAO,EAQT,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,uBAAuB,YACzB,mBAAmB,KAC3B,MAAM,EAQR,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,SAC1B,sBAAsB,EAAE,WACrB,mBAAmB,KAC3B,OAAO,EA2BT,CAAC;AAoBF,8EAA8E;AAC9E,eAAO,MAAM,aAAa,+BACI,OAAO,WAC1B,mBAAmB,KAC3B,CAAC,MAAM,GAAG,MAAM,CAAC,EAcnB,CAAC"}
1
+ {"version":3,"file":"test-run-diffs.utils.d.ts","sourceRoot":"","sources":["../../../src/commands/agent/test-run-diffs.utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,sBAAsB,EACtB,sBAAsB,EACvB,MAAM,0BAA0B,CAAC;AAElC,2EAA2E;AAC3E,MAAM,WAAW,OAAO;IACtB,UAAU,EAAE,sBAAsB,CAAC;IACnC,UAAU,EAAE,sBAAsB,CAAC;CACpC;AAED,sDAAsD;AACtD,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,kBAAkB,EAAE,OAAO,CAAC;IAC5B,iCAAiC;IACjC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,mFAAmF;IACnF,eAAe,EAAE,OAAO,CAAC;IACzB,2CAA2C;IAC3C,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAKD;;;;;GAKG;AACH,eAAO,MAAM,eAAe,SAAU,sBAAsB,EAAE,KAAG,OAAO,EAMvE,CAAC;AAEF,iFAAiF;AACjF,eAAO,MAAM,uBAAuB,YACzB,mBAAmB,KAC3B,MAAM,EAYR,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,qBAAqB,SAC1B,sBAAsB,EAAE,WACrB,mBAAmB,KAC3B,OAAO,EAyBT,CAAC;AAkBF,8EAA8E;AAC9E,eAAO,MAAM,aAAa,+BACI,OAAO,WAC1B,mBAAmB,KAC3B,CAAC,MAAM,GAAG,MAAM,CAAC,EAanB,CAAC"}
@@ -1,39 +1,30 @@
1
1
  "use strict";
2
- !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="5598c859-bc62-5533-ade9-4858ef879913")}catch(e){}}();
2
+ !function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="3c7fb585-bd4e-5f70-98d3-70c405509ce4")}catch(e){}}();
3
3
 
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
- exports.formatDiffRow = exports.buildDiffsSummaryJson = exports.buildDiffsSummaryHeader = exports.flattenDiffRows = exports.resolveIncludeAllDiffs = void 0;
5
+ exports.formatDiffRow = exports.buildDiffsSummaryJson = exports.buildDiffsSummaryHeader = exports.flattenDiffRows = void 0;
6
6
  const fmtMismatch = (v) => v != null ? v.toFixed(5) : "";
7
7
  /**
8
- * --includeMatches implies --includeAllDiffs: matches are never part of the
9
- * selected representative subset, so they only make sense alongside the full
10
- * set of diffs.
8
+ * Flattens replay diffs into one list of rows, sorted by the backend's global
9
+ * `index`. That index is a flat priority rank by default, or a replayDiff-grouped
10
+ * rank under orderByReplayDiffs — either way sorting by it yields the intended
11
+ * order (which the grouped response can't express positionally).
11
12
  */
12
- const resolveIncludeAllDiffs = ({ includeAllDiffs, includeMatches, }) => includeAllDiffs || includeMatches;
13
- exports.resolveIncludeAllDiffs = resolveIncludeAllDiffs;
14
- /**
15
- * Flattens replay diffs into one list of rows. By default the backend's `index`
16
- * is a flat cross-replay-diff priority rank, so we sort by it (a flat order the
17
- * grouped response can't express). With orderByReplayDiffs the backend already
18
- * returns rows grouped by replay diff in event order, which we preserve.
19
- */
20
- const flattenDiffRows = (data, orderByReplayDiffs) => {
13
+ const flattenDiffRows = (data) => {
21
14
  const rows = data.flatMap((replayDiff) => replayDiff.screenshots.map((screenshot) => ({ replayDiff, screenshot })));
22
- if (!orderByReplayDiffs) {
23
- rows.sort((a, b) => a.screenshot.index - b.screenshot.index);
24
- }
15
+ rows.sort((a, b) => a.screenshot.index - b.screenshot.index);
25
16
  return rows;
26
17
  };
27
18
  exports.flattenDiffRows = flattenDiffRows;
28
- /**
29
- * Builds the TSV header. index/total are only meaningful with orderByReplayDiffs;
30
- * by default rows are already in priority order, so the index is omitted.
31
- */
19
+ /** Builds the TSV header. `index` is the global rank the rows are ordered by. */
32
20
  const buildDiffsSummaryHeader = (columns) => {
33
- const fields = ["replayDiffId", "screenshotName"];
34
- if (columns.orderByReplayDiffs)
35
- fields.push("index", "total");
36
- fields.push("outcome", "mismatch");
21
+ const fields = [
22
+ "replayDiffId",
23
+ "screenshotName",
24
+ "index",
25
+ "outcome",
26
+ "mismatch",
27
+ ];
37
28
  if (columns.includeDomDiffIds)
38
29
  fields.push("domDiffIds");
39
30
  if (columns.includeAllDiffs)
@@ -45,9 +36,9 @@ const buildDiffsSummaryHeader = (columns) => {
45
36
  exports.buildDiffsSummaryHeader = buildDiffsSummaryHeader;
46
37
  /**
47
38
  * Builds the JSON equivalent of the TSV, gated by the same columns. By default
48
- * it's a flat array (one object per screenshot, in the same priority order as
49
- * the TSV). With orderByReplayDiffs it nests one level — an array of replay
50
- * diffs, each with its screenshots grouped underneath (index/total then apply).
39
+ * it's a flat array (one object per screenshot, in global `index` order). With
40
+ * orderByReplayDiffs it nests one level — an array of replay diffs, each with its
41
+ * screenshots grouped underneath.
51
42
  */
52
43
  const buildDiffsSummaryJson = (data, columns) => {
53
44
  if (columns.orderByReplayDiffs) {
@@ -62,7 +53,7 @@ const buildDiffsSummaryJson = (data, columns) => {
62
53
  screenshots: replayDiff.screenshots.map((screenshot) => screenshotToJson(screenshot, columns)),
63
54
  }));
64
55
  }
65
- return (0, exports.flattenDiffRows)(data, columns.orderByReplayDiffs).map(({ replayDiff, screenshot }) => ({
56
+ return (0, exports.flattenDiffRows)(data).map(({ replayDiff, screenshot }) => ({
66
57
  replayDiffId: replayDiff.replayDiffId,
67
58
  ...screenshotToJson(screenshot, columns),
68
59
  ...(columns.includeReplayIds
@@ -76,9 +67,7 @@ const buildDiffsSummaryJson = (data, columns) => {
76
67
  exports.buildDiffsSummaryJson = buildDiffsSummaryJson;
77
68
  const screenshotToJson = (screenshot, columns) => ({
78
69
  screenshotName: screenshot.screenshotName,
79
- ...(columns.orderByReplayDiffs
80
- ? { index: screenshot.index, total: screenshot.total ?? null }
81
- : {}),
70
+ index: screenshot.index,
82
71
  outcome: screenshot.outcome,
83
72
  mismatch: screenshot.mismatchFraction ?? null,
84
73
  ...(columns.includeDomDiffIds
@@ -93,9 +82,8 @@ const formatDiffRow = ({ replayDiff, screenshot }, columns) => {
93
82
  const fields = [
94
83
  replayDiff.replayDiffId,
95
84
  screenshot.screenshotName,
85
+ screenshot.index,
96
86
  ];
97
- if (columns.orderByReplayDiffs)
98
- fields.push(screenshot.index, screenshot.total ?? "");
99
87
  fields.push(screenshot.outcome, fmtMismatch(screenshot.mismatchFraction));
100
88
  if (columns.includeDomDiffIds)
101
89
  fields.push(screenshot.domDiffIds ?? "");
@@ -107,4 +95,4 @@ const formatDiffRow = ({ replayDiff, screenshot }, columns) => {
107
95
  };
108
96
  exports.formatDiffRow = formatDiffRow;
109
97
  //# sourceMappingURL=test-run-diffs.utils.js.map
110
- //# debugId=5598c859-bc62-5533-ade9-4858ef879913
98
+ //# debugId=3c7fb585-bd4e-5f70-98d3-70c405509ce4
@@ -1 +1 @@
1
- {"version":3,"file":"test-run-diffs.utils.js","sources":["../../../src/commands/agent/test-run-diffs.utils.ts"],"sourceRoot":"","names":[],"mappings":"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","debugId":"5598c859-bc62-5533-ade9-4858ef879913"}
1
+ {"version":3,"file":"test-run-diffs.utils.js","sources":["../../../src/commands/agent/test-run-diffs.utils.ts"],"sourceRoot":"","names":[],"mappings":"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","debugId":"3c7fb585-bd4e-5f70-98d3-70c405509ce4"}